Applicant tracking systems are the most misunderstood piece of the job market. Half the advice online treats them like magical gatekeepers and the other half as irrelevant. The truth is simpler: modern ATS platforms do two things — parse your resume into structured fields so a recruiter can search it, and apply the filters the recruiter configured. That's it.
Get the parsing right and your content reaches a human. Get it wrong and even a strong candidacy disappears into a junk bucket. This guide covers what parsers actually look at, the ten rules that matter, and the five popular myths you can stop worrying about.
How ATS platforms actually work in 2026
The dominant platforms — Workday, Greenhouse, Lever, Taleo, iCIMS, SmartRecruiters, Ashby — all follow the same pipeline:
- Ingest. You upload a PDF or DOCX. The system pulls text out of it (via PDF.js, Tika, or a hosted service).
- Parse. A model splits the text into sections (Experience, Education, Skills, etc.) and extracts structured fields — job titles, companies, dates, schools, named skills.
- Store. The structured data goes into a searchable database. Your raw resume file sits alongside as a blob the recruiter can still open.
- Filter. Recruiters set up searches ("has Python", "5+ years experience", "education contains engineering") or auto-rules (knockout questions like "are you authorized to work in the US?").
The critical thing to understand: no modern ATS rejects your resume for having colour, columns, or a serif font. That was a meaningful concern in 2012. Today, the parsing layer handles complex layouts competently. What breaks is content — not formatting — and specifically content the parser can't map to a structured field.
The 10 rules that actually matter
1. Use real section headings
Call them what the parser expects: Experience (or Work Experience, Professional Experience), Education, Skills, Projects, Certifications. Clever alternatives — "My Journey", "What I've Been Up To", "Things I'm Good At" — confuse the section detector and the relevant content ends up in the wrong field or no field at all.
2. Put dates in parseable format
Two formats work universally: Jan 2022 – Present or 01/2022 – Present. Avoid "summer 2023 to late 2024", year ranges without months (parsers guess badly), or prose inside the date field ("contract ending this fall"). Current jobs: Present or Current, not blank.
3. Name your company and title on separate lines, clearly
Standard pattern, top to bottom in each experience entry:
Senior Software Engineer Stripe San Francisco, CA · Remote Jan 2022 – Present
Most parsers read this pattern reliably. Variations that break things: company name on the same line as the job title separated only by a comma; city/state with no separator; dates wrapped in prose.
4. Use standard bullet characters
Round bullets (•), hyphens (-), or em-dashes all work. Fancy unicode shapes (★, ▶, ✓) sometimes render as ? in the parsed text. Keep it boring.
5. Don't bake text into images
Most parsers don't OCR. If your name, contact info, or skill bars are part of an image, the parser sees nothing. The same goes for company logos with embedded company names — the company name must appear as actual text elsewhere in the bullet.
6. Match the job description's exact phrasing at least once
Recruiters search the structured database with literal strings. If a posting says "stakeholder management", use those exact words somewhere in your resume — not "cross-functional alignment" or some synonym. The parser doesn't do semantic matching; the search feature doesn't either. Mirror 3-5 phrases verbatim from the posting. Not dozens — recruiters spot keyword-stuffing.
7. Write a skills section with named, searchable items
Group skills by category so a human scans them quickly, but list each item as a discrete noun. Good:
Languages: Python, TypeScript, Go, SQL Frameworks: React, Next.js, Django Infra: AWS, Kubernetes, Terraform, PostgreSQL
Bad: prose paragraphs ("I have extensive experience with modern web technologies including but not limited to…"). The parser can't reliably extract named skills from prose.
8. Avoid tables for structural layout
CSS columns and flexbox are fine — the parser sees the underlying text order. Actual HTML <table> elements for layout (common in older Word templates) confuse parsers: they flatten cells in unpredictable order, and your bullets may end up mixed with dates from a different job.
9. Save as PDF, not DOCX, unless the form asks for DOCX
PDFs render identically on every parser's machine. DOCX renders depend on which Word version and fonts are available — line breaks can shift, special characters can swap, headers and footers sometimes get dropped. If the application form accepts PDF, use PDF. Always.
10. Name the file like a recruiter would search for it
FirstName-LastName-Resume.pdf. Recruiters often save hundreds of resumes to one folder for a single role. Cute filenames (final-v7-REAL.pdf, resume.pdf) get lost. This doesn't affect parsing but it affects whether a human finds you later.
The 5 myths you can stop worrying about
Myth 1: "ATS can't read columns"
False since about 2018. Every EasyResumeAI template, including sidebar and two-column layouts, parses cleanly in the 6 major ATS platforms we test against. Parsing now follows reading order (left column top-to-bottom, then right column), which matches what a human reader does.
Myth 2: "Your resume needs to be black-and-white and use Times New Roman"
Colour is fine. Sans-serif fonts (Inter, Arial, Helvetica) are fine and arguably cleaner. The parser reads Unicode; it doesn't care about font-family. The 12-font-family pedigreed-serif rule was 2008 advice that never died.
Myth 3: "You need to match 80% of the keywords"
No. Recruiters use ATS search the way everyone uses any database — they type a few specific queries, not a weighted match score. Match the 3-5 requirements that are genuinely must-haves (usually in the job posting's bullets under "What you bring" or "Requirements"). Everything else is filler.
Myth 4: "Your resume gets scored 0-100 by the ATS"
Some third-party resume-scoring sites give you a number, but those scores don't exist inside Workday or Greenhouse. What the actual ATS shows the recruiter is your parsed resume, your answers to screening questions, and whether you match their saved searches. There's no global score.
Myth 5: "Apply with a 'stealth' white-text keyword block"
Don't. Any recruiter who opens your resume will see it (Ctrl+A highlights everything), and most systems flag it automatically now. It's a short path to an instant no. The 2018 trick that briefly worked is dead; the reputational cost if caught is permanent.
How to actually test your resume against ATS
Best tests, in order of signal-to-noise:
- Save as PDF, then copy-paste the text. If the extracted text reads in the right order, with section headings intact, a parser will do at least as well.
- Upload to any ATS you can test freely — Greenhouse and Lever both have demo environments, and LinkedIn Easy Apply runs a parser you can sanity-check against.
- Run it through our free ATS checker — paste your resume and (optionally) the job description, get an instant rule-based score with a prioritized fix list. No sign-up, no email capture. The authenticated ATS playground is a deeper AI-powered version that uses the same parsing libraries as the major platforms.
Skip the 0-100 scoring sites. They measure their own opinion of what an ATS cares about, not what any actual ATS cares about.
When ATS isn't the bottleneck
One thing worth naming: for most jobs, the ATS isn't rejecting you — the recruiter is, based on what they see after the parser does its job. You can have a perfectly ATS-clean resume and still get filtered out for weak bullet content, wrong experience level, or a location the company isn't hiring for. The rules above keep you reachable. Your content decides whether staying reachable turns into an interview.
For that half of the equation, see our resume writing guide. For role-specific worked examples, browse 20+ resume examples by role. If you need a cover letter that mirrors the same ATS keywords automatically, our cover letter generator handles that step.