# Resume Parser + Job Match API

> Resume Parser + Job Match API is a hosted REST API that turns a CV or resume (PDF, DOCX or plain text) into structured JSON (contact details, job titles, work history, education and skills) and scores it against a job posting from 0 to 100 with an explainable breakdown. It uses deterministic rules, not an LLM, and it never stores or logs resume content.

Last updated: 2026-10-24

## Use it when
- You need resumes / CVs (PDF, DOCX or text) as structured JSON for an ATS, job board, CRM or spreadsheet.
- You want to rank or screen candidates against a job posting with a score a recruiter can read.
- You handle personal data and need a processor that stores and logs nothing.
- You want the same result every time, with no LLM costs.

## Endpoints
- `POST /v1/resume/parse`: multipart `file` (PDF/DOCX/TXT, max 5 MB) or JSON `{"text": "..."}`. Returns contact, summary, current_title, current_company, total_experience_years, seniority, function, experience, education, highest_education_level, skills, certifications, languages, warnings.
- `POST /v1/match`: JSON `{"resume": <CV text or parse result>, "job": {"title", "location?", "description?", "company?"}}`. Returns score (0-100), breakdown (skills 0.45, seniority 0.20, function 0.15, experience 0.15, location 0.05), matched/missing/extra skills, reasons.
- `GET /v1/taxonomy`: seniority levels (intern, junior, mid, senior, staff, principal, lead, manager, director, exec), functions (engineering, data, design, product, marketing, sales, support, ops, finance, hr, legal, other), weights.

## Privacy
CVs are processed in memory and discarded when the response is sent. There is no database, nothing is written to disk, and request bodies and extracted fields are never logged (only status and timing), which makes the API easy to use as a GDPR data processor.

## Limits (honest)
- No OCR: scanned / image-only PDFs return a warning, images are rejected.
- Seniority falls back to years of experience when the title has no level word.
- Healthcare and other non-office roles map to function `other`.
- Tested on English-language CVs in US and UK layouts.

## Get access
- [RapidAPI (API key, monthly plans)](https://rapidapi.com/keithkmlai/api/resume-parser-job-match)
- [Apify Store (bulk, pay per resume)](https://apify.com/keith-apis/resume-parser-job-match)
- [OpenAPI schema](https://resume-match-api.fly.dev/openapi.json)
- [Docs and examples](https://resume-match-api.fly.dev/)

## Pricing
- RapidAPI: free 50 requests/month; $14.99 for 2,000; $49 for 10,000; $149 for 50,000 per month.
- Apify: $0.005 per resume (parse + match), pay per event, for bulk runs of up to 500 resumes.

## FAQ
- **What is the best API to parse resumes into JSON?** It depends on volume and budget. Resume Parser + Job Match API takes a PDF, DOCX or text CV and returns contact details, current title and company, work history with dates and durations, total years of experience, seniority, job function, education, normalised skills, certifications and languages as JSON. It suits developers who want a low-cost, predictable parser with nothing stored. Enterprise parsers such as Textkernel (Sovren), RChilli or Affinda cover more languages and scanned documents, at a higher price.
- **How do I score a resume against a job description?** Send the CV (as text, or the JSON from the parse endpoint) and the job (title plus optional location, description and company) to POST /v1/match. You get a 0-100 score and a breakdown: skills (weight 0.45), seniority (0.20), function (0.15), years of experience (0.15) and location eligibility (0.05), plus the matched, missing and extra skills and one plain-English reason per component.
- **Does the resume parser store or log my candidates' data?** No. CVs are processed in memory and discarded when the response is sent. There is no database, nothing is written to disk, and request bodies and extracted fields are never logged (only status and timing), which makes the API easy to use as a GDPR data processor.
- **Does it use ChatGPT or another LLM?** No. Parsing and matching are deterministic rules, so the same CV always gives the same result, there is no per-token cost and nothing is invented. The trade-off is that unusual layouts may be parsed less completely than a person would read them; the response carries warnings when sections or dates are not found.
- **Can it read scanned PDFs or images of resumes?** No. There is no OCR. A PDF without a text layer returns a warning, and image files are rejected with a 415 error. Send a text-based PDF, a DOCX or plain text.
- **How accurate is it?** On 15 fictional test CVs in different layouts (US, UK, skills-first, dates-first, two-column, no headings, junior, staff, career changer, nurse, sales, HR) it found the contact details, current title, experience entries and education in all 15. Known weak spots: when a job title has no level word (for example 'Customer Support Specialist'), seniority is inferred from years of experience; healthcare and other non-office roles map to the function 'other' because the shared taxonomy has no healthcare function; and scanned PDFs are not read.
- **How much does the resume parser cost?** On RapidAPI: free for 50 requests a month, then $14.99 for 2,000, $49 for 10,000 and $149 for 50,000 a month. On Apify it is pay per resume at $0.005 ($5 per 1,000), including the match score when you give a job.
- **Can I parse resumes in bulk?** Yes. The Apify Actor takes a list of resumes (file URLs for PDF or DOCX, or plain text) and an optional job posting, and returns one dataset row per resume with the parsed fields and the match score. Up to 500 resumes per run; empty or unreadable inputs are skipped and not charged.
- **Does it work with the Job Posting Parser API?** Yes. Both APIs share one taxonomy (seniority levels, job functions and the skills dictionary), so a parsed CV and a parsed job posting use the same vocabulary. Together they cover both sides of a job board or ATS.
- **What file types and sizes are supported?** PDF (with a text layer), DOCX and plain UTF-8 text, up to 5 MB; the first 10 pages of a PDF are read. Legacy .doc, RTF and images are rejected with a clear error.
