Curriculo Docs
Build hiring workflows on Curriculo
The Curriculo API turns raw hiring material (resumes, job requirements, interview recordings) into structured, decision-ready data. One REST API, one bearer key from the Developer Console, no ATS login required.
$5 free credit, one key, no ATS login
Base URL https://api.curriculo.me/public
curl -X POST https://api.curriculo.me/public/detect-language/ \
-H 'Authorization: Bearer key_abc123_yoursecret' \
-H 'Content-Type: application/json' \
-d '{"text": "Ingeniera de software con diez años de experiencia"}'import requests
resp = requests.post(
"https://api.curriculo.me/public/detect-language/",
headers={"Authorization": "Bearer key_abc123_yoursecret"},
json={"text": "Ingeniera de software con diez años de experiencia"},
)
print(resp.json())const resp = await fetch("https://api.curriculo.me/public/detect-language/", {
method: "POST",
headers: {
Authorization: "Bearer key_abc123_yoursecret",
"Content-Type": "application/json",
},
body: JSON.stringify({ text: "Ingeniera de software con diez años de experiencia" }),
});
console.log(await resp.json());Response
{ "language": "es", "confidence": 1.0, "flores": "spa_Latn" }Use Curriculo as the AI layer for your own ATS, job board or recruiting workflow. Your product keeps candidates, jobs, status and the recruiter UI. The Curriculo API does the language, evaluation, interview and media work behind it. It is a RESTful API that gives programmatic access to the same resume, evaluation, language and interview engines that run inside the Curriculo product.
What do you want to do?
- APIBuild into my productParse resumes, score candidates against a job, translate and summarise interviews from your own code. One bearer key from the Developer Console.
- MCPUse it in Claude, ChatGPT or CursorWork your hiring pipeline from Claude, ChatGPT, Cursor and other clients. Part of Curriculo ATS, with its own sign-in.
- Email AgentAutomate my hiring inboxConnect your hiring inbox and resume emails sent to a job's apply address become scored applicants, with sends and calendars automated.
Make your first call
- Create an account. Sign in at console.curriculo.me. Your account is provisioned on first sign-in, and a one-time $5.00 free credit is added.
- Create an API key. In the Console, open API keys and choose Create API key. The key looks like
key_<id>_<secret>and is shown once. It cannot be recovered later, so store it somewhere safe. - Call an endpoint. Run the request at the top of this page with your key. Language detection costs $0.001 per request and answers in under a second.
The Quickstart walks through the same steps, then parses a resume.
Resume parsing can take up to 90 seconds per document. Set your HTTP client timeout above five minutes, because a 30-second timeout will abandon calls that would have succeeded.
Try before you write code. The synchronous operations are runnable from the Console's documentation page: paste your key, attach a real resume and read the response.
Capabilities
| Capability | Operation | What it does |
|---|---|---|
| Parse a resume | POST /parse/ | PDF or DOCX in, structured JSON out: contact details, roles, dates, skills. Up to 10 documents per request. |
| Evaluate a candidate | POST /evaluate/ | Score resumes against a job: fit analysis, gaps, suitability. Send the job as pasted text, a JD document, or a registered job_id. |
| Register a job | POST /jobs/ | Optional and free. Store a job description once and reuse the returned job_id across a backlog of resumes. |
| Translate | POST /translate/ | Translate one string, up to 200 strings, or whole PDF and DOCX documents, into any of 202 languages. |
| Detect language | POST /detect-language/ | A language code (ISO 639-1, or FLORES-200 when there is none) for one text or up to 200 in a batch. |
| Summarise an interview | POST /summary/ | A transcript, transcript document or recording in; highlights, red flags, skills and a hire recommendation out. |
| Transcribe | POST /transcribe/ | A recording in, a transcript out, with no summary. |
| Prompt a resume | POST /prompt/ | Generate, edit, translate or ask questions about the resume pinned to your credential, in plain language. Stateful. |
| Screening interview | POST /screening-interview | Invite candidates to a hosted, recorded screening and receive each signed answer, with transcript and recording link, on your server. |
Long work (a resume backlog, an hour-long recording) runs in the background: see Background processing and callbacks. Every request field for every operation is in the API reference.
Core concepts
- AuthenticationSend your Console key as a bearer token. One key authorises every operation, immediately. There are no per-endpoint credentials, no scopes and nothing to enable.
- Async and callbacksParse, evaluate, summary, transcribe and translate also run in the background: POST /{op}/async answers 202 with a task_id at once. Poll the task or receive a signed callback.
- BatchingThere is no separate batch endpoint: the list is the batch. Up to 10 documents per request for parsing and evaluation, up to 200 texts for translation and language detection.
- Limits and errors600 requests per minute per key, 2,000 per IP address, a 300-second request timeout. Heavy work runs on capacity shared across the service. Errors are JSON with the HTTP status that matters.
Error formats, status codes, request IDs and retry guidance are on Errors. Content types and size limits are on Requests and responses.
Pricing
Prepaid, per request, from a single balance. $0.001 to detect a language, $0.01 per resume parsed or evaluated, and a one-time $5.00 free credit to start. Failed requests are never charged. See every price.
Integrations for recruiting teams
Curriculo ATS, the hiring product your team signs in to, also connects to the tools your team already uses. These are separate products from the public API, with their own sign-in.
- Curriculo ATS MCP server: work your hiring pipeline from Claude, ChatGPT, Cursor and other clients.
- Email Agent: connect your hiring inbox and the agent ingests resume emails sent to a job's apply address into scored applicants, automates sends and manages calendars.
- Slack through MCP: use Curriculo ATS from Slack with an MCP-capable assistant.
Account and base URL
| Environment | Base URL | Credential |
|---|---|---|
| Production | https://api.curriculo.me/public | Console key key_<id>_<secret> |
Every operation lives under that one base URL. Point your client at that base and append the operation path, for example https://api.curriculo.me/public/parse/. Production is the only published environment, and new accounts start with a $5.00 free credit, so you can test on production with your own documents.
| Header | Value | Required |
|---|---|---|
Authorization | Bearer key_<id>_<secret>, your Console API key | Yes |
Content-Type | application/json or multipart/form-data, depending on the operation | Yes, on requests with a body |
console.curriculo.me is where an account starts and where it is managed: sign-in, API keys, usage and billing. Your API key does hiring work. It deliberately cannot mint keys or change billing, so a leaked key can never escalate into account control. See Developer Console.
Requests are JSON or multipart/form-data; responses are JSON, except the edge's own 413 (oversized request) and 404 (path outside /public/) pages. Synchronous operations end in a trailing slash (/parse/). Background task paths (/parse/async, /parse/tasks/{task_id}) and screening paths (/screening-interview) are documented without one. There is no API version header and no version in the path, and additive changes (new optional fields, new operations) ship without breaking existing calls.
What next?
- Parse your first resume: Quickstart, account, key and first call in three steps.
- Score resumes against a job: Evaluate a candidate.
- Send many documents at once: Batching, how lists work, each endpoint's ceiling, and per-item errors.
- Process a backlog or a long recording: Background processing and callbacks, long work without holding a connection open.
- Plan for volume: Rate limits, per-key and per-IP ceilings, shared capacity, and the request timeout.
- Generate a typed client: Client SDKs.
- Budget the work: Pricing and billing, the price of each operation, free credit and top-up.
- Add AI to your own ATS: For ATS builders, which Curriculo API fits which step of your ATS, with an example integration.
FAQ
What is the base URL of the Curriculo API?
https://api.curriculo.me/public. Every operation lives under it, and production is the only published environment.
How do I authenticate?
Send a Developer Console key as a bearer token: Authorization: Bearer key_<id>_<secret>.
Is there a batch endpoint?
No. The list is the batch: send several documents or strings in one request and every result comes back in order.
What happens with long work?
Use the async lane, /{op}/async, and poll the task or receive a signed callback.
Updated