Coding agent documentation index Fetch the complete documentation index at: https://docs.worklittle.com/docs-agent-manifest.json Use this file to discover all available pages before exploring further.
Create resumes
Generate a one-page hiring-ready resume (HTML, PDF, and/or DOCX) tailored to a job.
Overview
POST /jobs/resumes generates a one-page resume tailored to a job and returns it as HTML and PDF.
curl -s -X POST "https://api.worklittle.com/jobs/resumes" \
-H "Authorization: Bearer $WORKLITTLE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"job_id": "YOUR_JOB_ID",
"resume_text": "10 years frontend, React, design systems",
"instructions": "Emphasize platform engineering"
}'
The key needs the agent:tools scope. Only AI tokens are billed, once per call, whatever formats you request - see Pricing. MCP: create_resume takes the same JSON body. For letters, see Create cover letters.
Request body
Every field is optional. Send job_id to target a posting and resume_text or profile as the source of facts.
| Field | Type | Description | | --- | --- | --- | | `job_id` | string | Target job. The server loads the posting. | | `resume_text` | string | Existing resume as plain text. Primary source of facts. | | `profile` | object | Structured candidate fields (name, experience, education). | | `job_context` | object | Pre-fetched job fields or keywords, for example from `get_job_keywords`. | | `instructions` | string | Emphasis hints such as "highlight systems work". Not a place to paste the job description. | | `formats` | string[] | Any of `html`, `pdf`, `docx`. | | `format` | string | Single-value alias for `formats`: `html`, `pdf`, or `docx`. |
The output has no placeholders. Anything not in your input is left out, never invented.
Output formats
Cover letters use the same rules.
| You send | You get | | --- | --- | | Nothing | `html` and `pdf` | | `formats: ["html"]`, `format: "html"`, or `Accept: text/html` | `html` | | `format: "pdf"` or `Accept: application/pdf` | `html` and `pdf` | | `format: "docx"` or the Word MIME type in `Accept` | `html` and `docx` | | `formats: ["html","pdf","docx"]` | All three |
Precedence is body formats, then body format, then Accept, then the default. The response is always a JSON envelope, never raw PDF bytes.
The PDF is US Letter, one page, scaled to fit. The DOCX is the same HTML with tight margins and no auto-fit.
Response
{
"document_type": "resume",
"mode": "ready",
"formats": ["html", "pdf"],
"html": "<h1>…</h1>…",
"pdf_base64": "JVBERi0xLjQK…",
"pdf_mime": "application/pdf",
"pdf_filename": "resume.pdf",
"docx_base64": null,
"docx_mime": null,
"docx_filename": null,
"billing": { }
}
Fields for formats you did not request are null. billing holds the metered usage for the call.
Attach to an application
Send pdf_base64 as resume_file.content_base64 on submit_job_application. See Apply for jobs. The cover letter goes in its own fields, never in resume_file.
Errors
| Status | Cause | | --- | --- | | `400` | Missing JSON body, empty or invalid `formats`, or generation failed | | `401` | Missing or invalid API key | | `402` | Billing not set up or payment failed | | `403` | Key lacks `agent:tools` | | `406` | `Accept` lists only unsupported types | | `429` | Rate limit exceeded |
Legacy route: POST /v1/agent/tool with { "name": "create_resume", "args": { … } }.