Resumes and CVs to structured JSON

Resume Parsing API: Extract Candidate Data from CVs to JSON

POST a resume PDF, Word file or scan and get structured JSON back: contact details, work history, education and skills, each with a confidence score. No retyping into your ATS, no OCR engine to host.

One API reads native PDFs, DOCX and scanned resumes through the same endpoint, so every candidate submission parses the same way. Try it on a resume now. Last updated July 2026.

  • Contact, experience, education, skills
  • PDF, DOCX and scanned resumes
  • Confidence score on every field
  • US data handling
Try it on a resume, no signup

PDF, JPG, PNG, BMP, HEIC, TIFF

Upload a document to extract

Upload a resume and see the structured JSON in the browser.

SOC 2 Type II
256-bit encryption
US data handling
REST and JSON
1 call
resume in, JSON out
PDF + DOCX
and scanned resumes
JSON
contact, experience, skills
Confidence
scored per field
// The short answer

What a resume parsing API does

A resume parsing API converts a resume or CV file into structured JSON your software can store and search. You send a PDF, Word document or scanned image to an HTTPS endpoint, and the API returns named fields: the candidate's contact details, a list of jobs with employer, title and dates, their education, and a skills list, with a confidence score on each value. It replaces the manual step where a recruiter reads a resume and retypes it into an applicant tracking system. Because the output is a predictable JSON object, an ATS, a job board or an internal HR tool can ingest thousands of resumes automatically, deduplicate candidates, and make every field searchable. The same call handles a clean PDF and a photo of a printed CV, because the API runs OCR first when the file is an image.

What you get back

  • Contact: name, email, phone, location.
  • Experience: employer, title, dates.
  • Education: school, degree, dates.
  • Skills: a normalized list.
// The output

The fields a resume parser returns

A parser maps the free-form sections of a resume to a fixed schema. These are the fields you get back and can write straight into candidate records.

Contact
Full name, email, phone, location, and profile or portfolio links.
Work experience
A list of positions, each with employer, job title, start and end dates, and the description text.
Education
Institution, degree, field of study, and dates for each entry.
Skills
A list of extracted skills, which dedicated parsers normalize to a taxonomy.
Certifications and languages
Named certifications and spoken or written languages where the resume lists them.
// Sample response

What the JSON looks like

POST the resume, read this back. Your ATS reads it directly with no manual entry.

resume.json
{
  "name": "Jordan Ellis",
  "email": "[email protected]",
  "phone": "+1 415 555 0132",
  "location": "Austin, TX",
  "experience": [
    {
      "employer": "Northwind Labs",
      "title": "Senior Engineer",
      "start": "2021-03",
      "end": "present"
    }
  ],
  "education": [
    {"school": "UT Austin", "degree": "BS Computer Science"}
  ],
  "skills": ["Python", "SQL", "AWS"],
  "confidence": 0.97
}

The exact keys are yours to shape. The document OCR API lets you define the fields you want returned, and the same three calls are shown in Python and other languages.

// Resume parsers, compared

The main resume parsing APIs

Dedicated parsers lead on resume-specific field depth and taxonomies. A general extraction API fits when resumes are one of several document types you process. Vendor facts verified July 2026.

Parser Pricing Notable Best for
DocuOCR Per page, published plan US data handling, one API for resumes and every other document type Teams parsing resumes alongside invoices, forms and IDs
Affinda Per document, tiered 100+ fields, 56+ languages, JSON output Global, multi-language resume volume
Textkernel (Sovren) Enterprise quote Semantic parsing + matching, ~29 languages, absorbed the Sovren parser Staffing and job-matching platforms
RChilli Per document, tiered 140+ fields, 40+ languages, taxonomy IDs ATS vendors wanting normalized taxonomies
HireAbility (ALEX) Per document / quote 200+ fields, does not store candidate data Privacy-strict recruiting workflows

The honest split: if resumes are your whole product, a dedicated parser ships deeper resume taxonomies (normalized job titles, a skills ontology) out of the box. If you already run documents through an extraction pipeline and resumes are one more type, one API with a schema you control and US data handling keeps the stack simpler. See the wider document data extraction software overview for how the general approach works across document types.

// How it works

From a resume file to candidate records in four steps

1. Upload

POST the resume PDF, DOCX or image with your API key as a Bearer token.

2. Read

The API runs OCR on scans and analyzes the layout to find each resume section.

3. Map to fields

Sections become named fields: contact, experience, education, skills, each scored for confidence.

4. Store

Read the JSON, write candidate records to your ATS, and route low-confidence fields to review.

// Where teams use it

Who uses a resume parsing API

Applicant tracking systems

An ATS parses every uploaded resume into candidate records automatically, so recruiters search and filter instead of retyping.

Staffing and recruiting

Agencies ingest thousands of CVs into a searchable database, deduplicate candidates, and match them to open roles faster.

In-house HR teams

A careers page turns each application into a structured profile the moment it lands, cutting manual data entry for talent teams.

Job boards

A board parses uploaded resumes to auto-fill applications and improve search across listings.

HR automation

A workflow tool reads resumes on submit and pushes clean data to downstream steps like screening questions or scheduling.

Compliance-aware hiring

Teams that need US data handling keep candidate files controlled while still automating the extraction step.

// Frequently asked

Resume parsing API FAQ

What is a resume parsing API?
A resume parsing API reads a resume or CV file and returns the candidate data as structured JSON your software can use. Instead of a recruiter retyping a name, email, work history and skills into an applicant tracking system, you POST the PDF or DOCX to the API and get back named fields: contact details, employers and titles with dates, education, and a skills list. It turns an unstructured document into database-ready records in one call.
How does resume parsing work?
The API detects the file type, runs OCR if the resume is a scan or image, then uses layout analysis and a model to identify each section and map it to fields. Contact block becomes name, email and phone; the experience section becomes a list of jobs with employer, title and dates; the education section becomes schools and degrees. The output is a JSON object your ATS or HR system reads directly, with a confidence score on values so you can flag low-confidence data for review.
What is the best resume parsing API?
It depends on what you optimize for. Dedicated parsers lead on resume-specific depth: Affinda returns 100-plus fields across 56-plus languages, RChilli returns 140-plus fields with taxonomy IDs, HireAbility extracts 200-plus fields and does not store candidate data, and Textkernel (which absorbed the Sovren parser) does semantic matching. A general document extraction API like DocuOCR is the better fit when you parse resumes alongside other documents and want one API, full control of the schema, and US data handling rather than a separate resume-only vendor.
Can a resume parser read PDF and Word resumes?
Yes. A good resume parsing API accepts PDF, DOCX, DOC, RTF and image files (PNG, JPG, TIFF) through the same endpoint. For a native PDF or Word file it reads the embedded text; for a scanned or photographed resume it runs OCR on the page first. The output is the same structured JSON either way, so candidates who submit a photo of a printed CV parse the same as those who upload a clean PDF.
What fields does a resume parser extract?
A resume parser extracts contact fields (full name, email, phone, location, links), a work history list (employer, job title, start and end dates, description), education (institution, degree, field, dates), a skills list, certifications, and languages. Dedicated parsers add normalized taxonomies, such as standardized job titles and a skills ontology, so two resumes that say the same thing in different words map to the same code.
How accurate is resume parsing?
Accuracy is high on clean, conventionally formatted resumes and drops on heavily designed templates, multi-column layouts, tables and scanned images. That is why a confidence score on each field matters: you accept high-confidence values automatically and route low-confidence ones to a human. No parser is perfect on every layout, so the practical measure is how much manual data entry it removes, which for standard resumes is most of it.
How much does a resume parsing API cost?
Most resume parsers bill per document parsed, with volume tiers, and enterprise pricing is usually by quote. You pay per resume, not per field, so the price scales with hiring volume. A general document extraction API like DocuOCR bills per page on a published plan, roughly $14 to $20 per 1,000 pages, and a one-page resume is one page, which is predictable when you also process other document types on the same account. A free tier lets you test parsing before you pay.
Is a resume parsing API compliant for US hiring?
That depends on how you deploy it, not on the parser alone. In the US, watch two things: data handling (where candidate files are stored and for how long, which is why some teams prefer a parser that does not retain data and one with US data handling), and fairness (a parser extracts what the resume says, so keep hiring decisions with people and use the structured output to reduce manual error, not to auto-reject candidates). Confirm the vendor terms and your own EEOC obligations before you go live.

Parse your first resume in minutes

Generate an API key, POST a resume, and read structured candidate JSON back. No engine to host, US data handling, and a free tier to test parsing before you pay per page.