Resume Parser
PDF parsing

PDF Resume Parser

One endpoint for PDF resumes, from simple to creative layouts

Parse single-column and multi-column PDF resumes into structured JSON with one API call. PDF up to 5 MB. Parsing is synchronous and can take up to 60 seconds.

How it works

  1. 1

    Text extraction

    Text and its position on the page are extracted from the PDF's text layer. There is no OCR, so scanned image-only PDFs are not supported.

  2. 2

    Layout and section analysis

    The extracted text is analyzed for structure: section headers, bullet points and reading order, so content from sidebars and columns ends up in the right place.

  3. 3

    LLM-powered field extraction

    A large language model maps the content to fields: firstName, lastName, emailAddress, phoneNumber, workExperiences[], educations[], languages[] and more.

  4. 4

    Synchronous JSON response

    The result comes back in the same HTTP response. Parsing is synchronous and can take up to 60 seconds, so set your HTTP client timeout to at least 60 seconds.

Key Benefits

One endpoint

Send a PDF to POST /v1/parse and get JSON back. No multi-step workflow, no polling.

Multi-column layouts

Many resume templates use two columns, with contact info in a sidebar and experience in the main body. The parser uses the position of text on the page to keep sidebar content separate from job descriptions.

Readable output

Job titles in all caps are converted to title case, and descriptions come back as markdown with bullet points kept.

Failed parses are not charged

If a PDF can't be parsed, you get an error and no parse is billed.

Code examples

cURL examplecurl
# Parse a PDF resume (PDF only, max 5 MB)
curl https://api.resumeparser.cc/v1/parse \
  -H "Authorization: Bearer rp_live_..." \
  -F "[email protected]"

# Response: { "data": { firstName, lastName, emailAddress,
# phoneNumber, location, workExperiences[], educations[],
# languages[], linkedInLink, ... },
# "usage": { billedAs, freeRemaining, creditBalance } }
JavaScript example (server-side)javascript
const formData = new FormData();
formData.append('file', pdfBlob, 'resume.pdf');

const response = await fetch('https://api.resumeparser.cc/v1/parse', {
  method: 'POST',
  headers: { Authorization: 'Bearer rp_live_...' },
  body: formData,
});

const { data, usage } = await response.json();
console.log(data.firstName, data.lastName);
console.log(data.emailAddress);

for (const exp of data.workExperiences ?? []) {
  console.log(`${exp.title} at ${exp.organization}`);
  console.log(`  ${exp.startYear}-${exp.isOngoing ? 'present' : exp.endYear}`);
}

console.log(usage.freeRemaining, usage.creditBalance);

Technical Details

The parser reads the PDF's text layer together with the position of each piece of text, which helps with multi-column templates where naive top-to-bottom reading produces garbled output. The text is then passed to a large language model for field extraction. There is no OCR: a PDF without a text layer (for example a scanned paper resume) cannot be parsed. The maximum file size is 5 MB. The API is hosted on Hetzner in Helsinki, Finland; /v1/parse does not store the PDF or the parsed result, and resume text is processed by OpenAI (US) as a subprocessor.

Questions

Frequently asked questions

No. There is no OCR, so the PDF needs a text layer. Most PDFs exported from Word, Google Docs or LaTeX have one; a scanned paper resume usually does not.

The parser uses the position of text on the page, so content in a sidebar (typically contact info and skills) is kept apart from the main body (work experience and education). Test with samples of your own resumes to see how it handles your mix of templates.

It handles many creative layouts, but text embedded in images or graphics cannot be read. Test with representative samples from your applicant pool.

The maximum file size is 5 MB. Parsing is synchronous and can take up to 60 seconds, so set your HTTP client timeout to at least 60 seconds. The result comes back in the same response.

No, PDF only for now. Convert other formats to PDF before sending them.

Test with your most difficult PDFs

50 free parses per month. Send multi-column or creatively formatted resumes and compare the output against manual data entry.

Get API key