Parse job application emails
To parse job application emails, forward them to a ParsedMail inbox whose schema lists the candidate fields you need, such as name, email, phone, role applied for, years of experience, skills and location. ParsedMail reads the email and the attached CV and returns typed JSON that creates the candidate in Greenhouse, Lever or Workable.
Email received
Fields described as
candidate name, email, phone, role applied for, current job title, years of experience, skills as a list, location, willing to relocate (true or false), earliest start date, LinkedIn URL
JSON delivered to your webhook
{ "candidate_name": "Tomasz Wiercinski", 0.99 "email": "[email protected]", 0.99 "phone": "+16145550193", 0.95 "role_applied_for": "Senior Data Analyst (DA-114)", 0.98 "current_job_title": "Data Analyst", 0.96 "years_of_experience": 6, 0.90 "skills": [ "SQL", "Python", "Power BI", "Forecasting" ], 0.91 "location": "Columbus, OH", 0.87 "willing_to_relocate": true, 0.93 "earliest_start_date": "2026-12-01", 0.90 "linkedin_url": "https://linkedin.com/in/twiercinski-example" 0.95 }
Applications still arrive by email
Even teams with an applicant tracking system receive many applications by email. Smaller job boards and niche sites forward candidates as notification emails, referrals come from employees, agencies send profiles, and candidates write to jobs@ with a CV attached. Each of these has to be typed into the ATS by a recruiter or coordinator, and the first screen often happens in the mailbox, where nothing is searchable later.
ParsedMail reads the email and the CV together and returns the same candidate fields every time. Recruiters get structured profiles in the ATS and spend their time on the conversation with the candidate.
Reading the CV attachment
Most of the useful information is in the attachment. ParsedMail reads PDF CVs with a text layer, as well as TXT, HTML and other text files, and merges them with the cover email. Scanned CVs and images are read on paid plans. Each PDF page counts as one page on your plan, so a two-page CV and a short email use one email and two pages. Up to 8 files per email are read, which covers a CV, a cover letter and a few certificates. Details are on the page about parsing email attachments.
Word documents are not read directly. Ask candidates for PDF, which most job ads already do.
A candidate schema for screening
| Field | Type | Use |
|---|---|---|
| candidate_name, email, phone | string, email, phone | Candidate record |
| role_applied_for | string or enum | Match to the open job |
| years_of_experience | integer | Screening filter |
| skills | list | Tags in the ATS |
| willing_to_relocate | boolean | Location rules |
| earliest_start_date | date | YYYY-MM-DD |
| linkedin_url | url | Profile link |
Only extract what you need to decide on the next step. The model uses what the candidate wrote and returns null for anything that is not there, so a missing relocation answer stays unknown instead of becoming false.
Creating candidates in Greenhouse, Lever and Workable
ParsedMail delivers each parsed application as a signed webhook. From there:
- Greenhouse. An n8n workflow or a small service uses the Harvest API to add a candidate and an application to the job that matches
role_applied_for. - Lever. Zapier catches the webhook and uses its Lever step to create an opportunity with the contact details, tags from
skillsand the source. - Workable. Make receives the webhook and creates the candidate in the matching job through an HTTP step to the Workable API.
- A hiring sheet. Small teams append each candidate to Google Sheets or Excel, as described on the email to spreadsheet page.
The webhook includes the attachment list with file names and page counts. Many teams keep the original CV in their ATS by forwarding the email there as well, so ParsedMail supplies the fields and the ATS keeps the document.
Fair and careful screening
Parsing is not screening. Use the extracted fields to organize and route applications, and keep hiring decisions with people. Do not add fields for protected characteristics such as age, gender, nationality or marital status, and do not ask the parser to score candidates on them. Fields like years of experience can be misread when a CV lists overlapping jobs, so treat lower confidence scores as a reason to look, not to reject. On Growth and Scale, the human review queue holds applications under your threshold until a recruiter checks them.
Duplicates, spam and retention
- Applied twice. The same email sent twice, by Message-ID or by identical sender, subject and body within 30 days, is marked
duplicateand not charged. A new application from the same person for another role is parsed normally. - Job board notifications. Allowed senders can limit an inbox that only receives board notifications to those boards. A public jobs@ address should stay open to everyone.
- Personal data. Raw emails are kept for 30 days on Starter and 90 days on Growth. Scale lets you set retention up to 365 days or zero, which helps when your privacy policy promises short storage of applicant data. Emails are never used for model training.
Recruiting teams that also handle candidate questions on the same address can split them with classification on Growth and Scale, using a schema like the one for parsing support emails.
Frequently asked questions
Can it read the CV attached to an application email?
Does it work with Word documents?
Can it match the application to the right job?
Does ParsedMail rank or reject candidates?
How many applications fit in a plan?
Related
See your own email as JSON
Paste one into the demo, describe the fields and look at the result. No account needed.