AI Resume Parser & Candidate Data Extraction
Turn a resume — plain text, PDF, image, or a URL to one — into structured candidate data.
The problem
Applicant tracking systems, recruiting CRMs, and staffing tools all hit the same first step: a resume arrives as unstructured text or a file, and someone has to turn it into searchable, structured fields before it's useful.
Who it's for
Applicant tracking systems, recruiting CRMs, and staffing or HR tools that need to turn a submitted resume into structured, searchable candidate data.
Use cases
- Populating an ATS candidate record automatically from an uploaded resume
- Normalizing resumes from different formats and sources into one consistent schema
- Estimating a candidate's seniority level from resume content for initial routing or search
What it does
Send a resume as plain text, a publicly fetchable file URL, or base64-encoded file data (PDF, image, or plain text), and get back normalized JSON: contact details, a work-history array (company, title, dates, description), education, a skills list, an estimated seniority level, and a confidence score.
Example
Request
POST /parse
{ "text": "Jane Doe\njane.doe@example.com | (555) 123-4567 | Austin, TX\n\n..." }
Response
{
"contact": { "name": "Jane Doe", "email": "jane.doe@example.com", "phone": "(555) 123-4567", "location": "Austin, TX" },
"work_history": [
{ "company": "Acme Corp", "title": "Senior Software Engineer", "start_date": "2021-06", "end_date": "present", "description": "Built and operated backend services." }
],
"education": [
{ "institution": "State University", "degree": "B.S.", "field": "Computer Science", "graduation_date": "2019-05" }
],
"skills": ["TypeScript", "Cloudflare Workers", "API design"],
"estimated_seniority_level": "senior",
"confidence": 0.84
}
Pricing
A free tier covers light testing. Paid tiers scale by monthly request volume, with overage priced per additional parse beyond your plan's included volume.
Privacy commitment. Resumes contain real personal data by definition. This API does not store submitted content beyond what’s needed to process the request — no database, no logging of resume content, no retention of any extracted field once the response is returned.
Check confidence before trusting a result. Unusual formatting, multi-column layouts,
tables, and scanned images can all produce partially wrong or incomplete output.
estimated_seniority_level in particular is a best-effort inference from context, not an
authoritative label.
