How ATS resume parsing actually works (and what breaks it)
Most advice about applicant tracking systems (ATS) is folklore: "the robot rejects 75% of resumes", "use white text keywords", "never use columns". As engineers we can do better than folklore. An ATS is a piece of software with a pipeline, and once you know the pipeline, the failure modes become predictable. The pipeline, simplified Most ATS products (Greenhouse, Lever, Workday, Taleo and others)…
Applicant tracking systems (ATS) are often misunderstood, with many believing they reject 75% of resumes. However, the reality is more nuanced. An ATS is essentially a software pipeline that transforms uploaded files into searchable candidate profiles. To understand how ATS parsing works and what can go wrong, it helps to break the process into its key steps.
The first step is text extraction from the file format, typically PDF or DOCX. This step can be fraught with issues, as the original document layout is lost in this conversion. Multi-column layouts, tables, and headers can all lead to disordered or missing text in the parsed output. To mitigate this, it's crucial to maintain clean, single-column layouts with standard fonts and plain text inputs.
Save your documents from a real word processor and avoid fancy templates, icons, or scanned images, as these pose parsing challenges. A simple test is to copy and paste the file into a plain text editor to see how the parser will interpret it.
The second step involves section segmentation, where the parser identifies experience, education, and skills sections using recognizable headings. Common headings like "Experience," "Work Experience," "Education," and "Skills" generally work, but creative or inconsistent headings can confuse the parser. Dates are also important, as they help the parser create a chronological timeline and calculate years of experience. Keeping dates in a consistent format (e.g., "Mar 2022 – Present") improves the reliability of this step.
Entity extraction follows, where the parser identifies key pieces of information such as names, employers, job titles, and dates. This step typically combines rule-based approaches with some machine learning. Practical tips include listing each role with its title, company, and dates on a predictable line, using conventional job titles, and spelling out acronyms at least once. Consistent formatting of dates and roles also aids in accurate extraction.
Finally, the parsed data becomes searchable through keyword matching. Recruiters often use boolean queries (e.g., "React AND TypeScript AND GraphQL") to find candidates. This step emphasizes the importance of using the exact terminology from the job description in your resume. Achievements should be framed with the same vocabulary and include measurable results (e.g., "Migrated 14 services from VMs to Kubernetes, cutting deploy time from 40 to 6 minutes").
White-text hiding keywords, creative wording, and embellished descriptions do not help and may even be flagged by some systems.
In summary, to optimize your resume for an ATS, focus on a simple, clean layout, use standard headings, format dates consistently, and employ the terminology used in the job description. After parsing, remember that the final reader is a human recruiter, so weave in concrete achievements and results alongside the keywords. A well-prepared resume that passes the ATS parsing stage is more likely to catch the eye of the human reviewer.
Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.