Resume parser API
Every applicant-tracking system needs to turn a free-form resume into fields it can search and rank, and every resume is laid out differently. The AIDataParser resume parser API reads a candidate's PDF and returns normalized JSON: full name, email, phone, location, a chronological work-history array, education, skills, and links. Instead of maintaining fragile section-detection heuristics, you describe the shape you want and let the model map the document onto it.
Because the extraction is schema-first, your ATS receives the same structure whether the resume is a single-column classic, a two-column designer template, or a plain-text export. Nested arrays capture each job — company, title, start and end dates, and bullet-point responsibilities — so you can build searchable candidate profiles, auto-populate application forms, or feed a matching model clean features.
For recruiting-tech builders and AI sourcing agents, this removes the worst part of resume ingestion. One POST with the resume URL or upload returns structured data in seconds, one credit per document, and the confidence flag tells you when a heavily-designed resume needs a human glance. No candidate data is retained beyond the request, which keeps privacy reviews simple.
Fields you can extract from a resume
namestringCandidate full name.
emailstringContact email.
phonestringContact phone.
locationstringCity / region.
skillsarrayList of skills.
experiencearrayJobs: company, title, dates.
educationarrayDegrees and institutions.
Example request
POST the resume by URL, upload, or base64, with a JSON Schema describing the output you want.
curl -X POST https://aidataparser.com/v1/parse/document \
-H "Authorization: Bearer adp_live_..." \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com/resume.pdf",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"email": {
"type": "string"
},
"phone": {
"type": "string"
},
"skills": {
"type": "array",
"items": {
"type": "string"
}
},
"experience": {
"type": "array",
"items": {
"type": "object",
"properties": {
"company": {
"type": "string"
},
"title": {
"type": "string"
},
"start_date": {
"type": "string"
},
"end_date": {
"type": "string"
}
}
}
}
}
}
}'Example response
The data field is guaranteed to match your schema.
{
"object": "parse.document",
"data": {
"name": "Dana Ortiz",
"email": "dana.ortiz@example.com",
"phone": "+1 415 555 0132",
"skills": [
"Python",
"React",
"PostgreSQL"
],
"experience": [
{
"company": "Acme Corp",
"title": "Senior Engineer",
"start_date": "2023-01",
"end_date": "present"
}
]
},
"confidence": "high",
"review_needed": false,
"credits_charged": 1,
"credits_remaining": 49
}FAQ
Which resume file types are supported?
Text-based PDFs today, plus image formats for scanned or photographed resumes. Convert Word documents to PDF before sending; DOCX-native ingestion is on the roadmap.
Does it handle two-column and creative resume layouts?
Yes. Because extraction is model-driven rather than template-based, multi-column and heavily-styled resumes map onto the same JSON schema as plain ones.
Is candidate data stored?
No. Documents are parsed in-request and not retained, which keeps GDPR and candidate-privacy reviews straightforward for recruiting products.