Resume Parser - CV to JSON
Pricing
from $80.00 / 1,000 parsed resumes
Resume Parser - CV to JSON
Parse resumes and CVs (PDF, Word, images, 13 formats) into structured JSON: contact details, work experience, education, languages, normalized skills and the candidate photo. Bulk-friendly, pay per parsed resume.
Pricing
from $80.00 / 1,000 parsed resumes
Rating
0.0
(0)
Developer
HireLayer
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
What does Resume Parser do?
Resume Parser turns resumes and CVs into clean, structured JSON. Paste resume URLs and get back, for each candidate:
- Contact details: full name, email, phone number (E.164), LinkedIn, GitHub and other URLs
- Work experience: company, job title, description, contract type, dates, location and duration
- Education: degree, school, level (EQF), dates and location
- Languages with CEFR-based levels
- Skills, mapped to a taxonomy of 11,000+ skills with stable IDs
- Candidate photo: the face is detected and cropped from the resume (
face_url) - Location with geocoded coordinates, mobility, availability, driving licences
- The full text of the resume, OCR included, ready for search or for AI matching
It reads 13 formats: PDF, DOC, DOCX, ODT, PPT, PPTX, ODP, XLS, RTF, TXT, JPG, PNG and BMP, including two-column layouts, infographic resumes and scanned documents. Resumes in English, French and other languages are supported.
Resume Parser is powered by the HireLayer resume parsing API, built for ATS, job boards and recruiting teams. Processing runs in the EU.
Why use it?
- Bulk processing: parse hundreds of resumes in one run and export the results to JSON, CSV or Excel.
- Fill your ATS or CRM automatically: connect it to Make, Zapier, n8n or your own code with the Apify API.
- Screen faster: feed the parsed text to the AI Candidate Matcher or the AI Candidate Ranker.
- Pay only for results: a resume that cannot be read is not charged.
How to use it
- Click Try for free.
- Paste public resume URLs, one per line (direct download links from your ATS, S3, Google Drive or Dropbox work).
- Click Start. Each resume takes about 35 seconds; several are processed in parallel.
- Open the Candidates table or export the dataset.
Input
| Field | Description |
|---|---|
resumeUrls | Public URLs of resume files, under 4.5 MB each. |
storeFiles | Off by default: nothing is kept after parsing and the photo link expires after 10 minutes. Turn it on to keep hosted links to the file and photo (info_resume.url, info_resume.face_url). |
maxConcurrency | Resumes processed at the same time (default 3, up to 10). |
{"resumeUrls": ["https://hirelayer.co/benchmark/resume-parser-2026-10/cv2-two-page-en.pdf"]}
Output
One dataset item per resume. Extract of a result:
{"input_url": "https://hirelayer.co/benchmark/resume-parser-2026-10/cv2-two-page-en.pdf","status": "success","info_candidate": {"full_name": "DANIEL OKAFOR","email": "daniel.okafor@example.com","job_title": "Senior Backend Engineer","experience_level": "More than 10 years","location": { "city": "London", "country": "United Kingdom", "country_code": "GB" }},"info_resume": { "language": "EN", "face_url": null, "text": "DANIEL OKAFOR\nSenior Backend Engineer\nLondon…" },"work_experiences": [{"company_name": "Deliveroo","job_title": "Senior Backend Engineer","start_date": "2022-01-01","end_date": null,"currently_active": true}],"educations": [{ "degree_title": "MSc Advanced Computer Science", "school_name": "The University of Manchester" }],"languages": [{ "language": "English", "level": "Native or Bilingual (C2)" }],"skills": [{ "skill_title": "Python", "skill_type": "Software skill", "status": "normalized" }],"warnings": []}
warnings lists the steps that were skipped for this resume (OCR, photo, geocoding, occupation codes) or flags a document that may not be a resume.
A resume that cannot be processed (unreachable URL, unsupported or empty file) gives an item with "status": "error" and an error message, and is not charged. The complete field list is in the HireLayer Resume Parser documentation.
Pricing
You pay per successfully parsed resume ($0.08 per resume), plus nothing else. Set a maximum cost per run in the run options: the Actor stops before going over it.
Use it from code
curl -X POST "https://api.apify.com/v2/acts/hirelayer~resume-parser/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"resumeUrls": ["https://example.com/resume.pdf"]}'
The Actor is also available to AI agents through the Apify MCP server.
FAQ
Is my data stored? By default nothing is kept after parsing: not the file, not its text, not the result. Only the candidate photo stays reachable for 10 minutes behind face_url. Results stay in your Apify dataset, which you control. You are responsible for having a lawful basis to process candidate data.
Can I call the API directly? Yes. For high volumes or an ATS integration, HireLayer offers the same parser as a REST API with monthly plans.
Need help or a feature? Open an issue in the Issues tab or write to contact@hirelayer.co.