AI APIs for ATS builders
On this page
This page is for product and engineering teams building recruiting software. Curriculo turns CVs, job requirements and interviews into structured, decision-ready data. You send a document or a recording; you get back clean fields, a fit score, a translation, a transcript or a hiring summary.
The API is not another dashboard your users must log into. Your product keeps candidate records, the job workflow and the recruiter UI. Curriculo does the AI, language and media work behind it, through one key from the Developer Console.
What the API does
| Capability | What you send | What you get back |
|---|---|---|
| Parse CV | One or more CVs (PDF or DOCX) in a single request. | The full résumé as clean, structured data: name, contact details, work history, education, skills. Values stay in the CV's own language and script. |
| Evaluate candidate | One or more CVs (PDF or DOCX) and the job, as text, a document or a registered job_id. | A suitability score with written reasoning, matched skills, gaps and summary points, for each CV. |
| Translate | Up to 200 strings, or PDF and DOCX documents. | Translations in the order you sent them, into any of 85 languages. One failed item never collapses the batch. |
| Detect language | One text, or up to 200. | The language of each, so you can route a CV or message before acting on it. |
| Interview summary | A transcript, a transcript document (PDF or DOCX), or a recording (video or audio). | Highlights, red flags, skills mentioned, and a recommendation with reasoning. Recordings come back with their transcript. |
| Transcribe | A recording. | The transcript only. |
| Résumé assistant | A CV once, then plain-language instructions. | A working résumé you can question, edit or render in another language without re-uploading. |
| Screening interview | Candidate emails, questions and your callback URL. | Curriculo emails each candidate, hosts the recorded interview, transcribes each answer and POSTs it, signed, to your server. |
Large backlogs and long recordings run as background tasks: send links or uploads, get a task_id at once, and collect the result by polling or by signed callback.
The API is not a second ATS.
POST /jobs/stores a job only as a description to evaluate CVs against. There is no listing, no pagination, no organisation and no pipeline.
Example ATS integration
| Step | Your system | Curriculo |
|---|---|---|
| 1. Job context | Stores the job, and registers it once with POST /jobs/ (free) or sends job_details inline. | Uses it to score candidates. |
| 2. Intake | Sends CVs to /parse/ and /evaluate/, or links to /parse/async and /evaluate/async for a backlog. | Returns structured CVs and evaluations, in order. |
| 3. Screening | Calls POST /screening-interview with candidate emails, questions and a callback_url. | Sends invites, hosts the recording, transcribes answers. |
| 4. Results | Verifies X-Curriculo-Signature, then stores transcripts, evaluations and recording links. | POSTs signed results as candidates finish. |
| 5. Interviews | Sends recordings or transcripts to /summary/. | Returns highlights, red flags and a recommendation. |
Multilingual by default
- Send CVs in any language. Parsing and evaluation read the document as written, with no pre-processing on your side.
- Nothing is silently rewritten. Parsed values come back in the CV's own language and script.
- Choose the output language. Evaluation, interview summaries and the résumé assistant each accept a
languagesetting. - Detect before you route. Branch a workflow before any human reads the document.
See Languages.
Getting started
- Create your account at console.curriculo.me. Sign-up is self-serve, and a $5.00 free credit covers your first calls.
- Generate an API key on the API keys page. It works immediately for every operation. The key is shown once, so store it somewhere safe.
- Try each capability from the interactive documentation with a real CV or transcript.
- Hand the key to your engineering team. Each capability is a single request, so integration is small and self-contained.
The full walkthrough is in the Quickstart.
Volume, speed and limits
| What | Value | Why it matters |
|---|---|---|
| Document size | Up to 10 MB | Covers essentially every real CV, including scanned and design-heavy ones. |
| CV processing time | 40 to 90 seconds | Real AI analysis, not keyword matching. Treat it as a background job, not a page load. |
| Throughput | Roughly 2 to 4 CVs per minute | An estimate. Heavy work runs three operations at a time on capacity shared across the service, so throughput varies with load. |
| Translation in one call | 200 strings, 50,000 characters | A full careers page or CV in a single request. |
| Interview transcripts | 200,000 characters | Comfortably fits a long panel interview, verbatim. |
| Recordings | Up to 100 MB on a synchronous /summary/ upload; up to 1 GB or 2 hours by link | Long interviews go through the async lane. |
| Request rate | 600 requests per minute, per key | Exceeding it returns 429. |
See Rate limits and Batching.
What to expect operationally
- Each request stands alone. One document failing never affects another, and re-sending a failed document is always safe.
- Errors are explicit. A rejected request tells you why. See Errors.
- Failed requests are not billed. Neither are failed background tasks or failed screening invites.
- Usage is visible per key. Issue separate keys to separate environments or teams.
- Know what is stored. Synchronous parse, evaluate, translate, detect-language, summary and transcribe calls keep nothing. Registered jobs, the résumé assistant, background tasks and screening interviews keep data. See Data handling.
Billing
Prepaid and per request, with no subscription: $0.01 for most operations, $0.001 for language detection, $0.002 per minute of audio for recordings, and $0.02 per screening invite sent. A list of CVs in one request is one charge. Full table in Pricing and billing.
Curriculo inside your AI assistant
Separately from the API, teams on Curriculo ATS can work their hiring pipeline from Claude, ChatGPT, Cursor and other clients. It is a different product with its own sign-in, and an API key does not reach its tools. See the MCP documentation.
Updated