Resume Parsing API: How to Turn Resume Files into Structured JSON

A resume parsing API extracts information from a resume and returns it as structured data that software can use. Instead of requiring users or operations teams to retype every employer, job title, and degree, a product can upload a document and work with the extracted fields.

Resume parsing is useful in applicant tracking systems, job boards, talent marketplaces, and internal candidate databases. It is also a data-ingestion problem: the output must be validated before it becomes part of a trusted record.

How resume parsing works

A resume mixes headings, dates, prose, and visual layout. A parser attempts to identify sections such as employment and education, recognize relevant entities, and organize the extracted information into a machine-readable result.

An illustrative JSON result could look like this:

{"info":{"name":"Alex Kim"},"experiences":[{"job_title":"Backend Engineer","company_name":"Example Labs"}]}

This is a simplified example, not a universal schema. Providers differ in how they represent dates, nested objects, inferred labels, and missing fields.

File formats and processing models

Input support varies by API. Some products accept multiple document formats; others accept a narrower set of files. Before building an upload screen, check accepted MIME types, size limits, file-count rules, and whether scanned images are supported.

For example, ProfileOut’s Profile Parsing API accepts one PDF, PNG, JPEG, or TIFF resume file per request, up to 10 MiB. It does not currently accept DOCX files, raw-text request bodies, or batch uploads.

The API processes files asynchronously. After upload, the application saves a request_id, checks the job status, and reads the parsed result after completion. A successful upload response is not the same as a completed extraction.

What should your application validate?

Do not assume every resume contains a complete identity, work history, or education section. Some documents omit dates; others have overlapping jobs, unusual layouts, or ambiguous school names.

A useful validation layer checks whether expected objects and arrays exist, whether dates can be parsed, and whether important fields are present. Keep unrecognized or missing values separate from confirmed values. If the product makes decisions using extracted information, allow users or reviewers to correct the record.

Parsing is not identity verification

Resume parsing structures what a document says. It does not independently prove that each employer, qualification, or date is accurate. Nor does an extracted email address automatically establish that the mailbox is deliverable today.

That distinction matters when combining parsed documents with external profile retrieval or contact enrichment. Use explicit source labels so downstream systems know whether a field came from a resume, an external profile, or an inference.

A practical integration checklist

Test ordinary PDFs, scanned files, multi-column layouts, and resumes with missing sections. Confirm the processing timeout, polling interval, failure response, and result-retention rules. Map the response into your application model rather than assuming it matches another API’s JSON exactly.

If you’re adding resume ingestion to a product, review ProfileOut’s Profile Parsing API and its response examples before building the upload flow.

Put your next idea into practice.

Explore ProfileOut’s APIs or talk with us about your people-data workflow.