Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

ATS Optimization Guide

Applicant Tracking Systems (ATS) are software used by companies to manage job applications. Your resume must be ATS-friendly to get past the initial filter and reach a human recruiter.

What is an ATS?

An ATS is software that:

  1. Parses your resume into a structured profile
  2. Indexes keywords and skills
  3. Ranks candidates based on relevance to the job
  4. Filters out low-scoring resumes before human review

Common ATS platforms: Greenhouse, Lever, Workday, Taleo, iCIMS, BambooHR, Ashby

Reality check: At large companies, 75%+ of resumes are rejected by ATS before a human sees them.

How ATS Parses Your Resume

What ATS Sees

When you upload a PDF or Word doc, the ATS extracts:

  • Contact information (name, email, phone)
  • Work history (company, title, dates, description)
  • Education (school, degree, dates)
  • Skills (matched against a database)
  • Keywords from the full text

What ATS Struggles With

  • Tables — Content may be read column-by-column instead of row-by-row
  • Multiple columns — Text order gets scrambled
  • Headers/footers — May be ignored entirely
  • Text boxes — Often invisible to ATS
  • Images and icons — Completely ignored
  • Graphics and charts — Not parsed
  • Unusual fonts — May not render correctly
  • Special characters — May be misread

ATS-Friendly Formatting Rules

Layout

✅ DO:
- Single-column layout
- Standard section headers
- Content in the body (not headers/footers)
- Simple, clean structure

❌ DON'T:
- Multi-column layouts
- Tables for layout
- Text boxes
- Headers/footers for critical info
- Graphics or icons

Section Headers

Use standard, recognizable headers:

✅ Use These❌ Avoid These
EducationAcademic Background
ExperienceProfessional Journey
SkillsTechnical Toolbox
ProjectsThings I’ve Built
SummaryAbout Me

Fonts

Use standard, widely-supported fonts:

  • Safe: Arial, Calibri, Helvetica, Georgia, Times New Roman, Garamond
  • Risky: Custom or decorative fonts (may not parse correctly)

File Format

  • PDF — Generally safe, preserves formatting
  • .docx — Also well-supported by most ATS
  • Avoid: .jpg, .png, .pages, .txt (limited formatting)

Pro tip: Some older ATS handle .docx better than PDF. If applying to a large company with an older system, .docx might be safer.

Keyword Optimization

How to Find the Right Keywords

Step 1: Analyze the Job Description

Read the job posting and highlight:

  • Required skills and technologies
  • Programming languages mentioned
  • Frameworks and tools
  • Soft skills and methodologies
  • Industry-specific terms

Step 2: Categorize Keywords

Job Description Keywords:

MUST-HAVE (mention at least once):
- Python, Java
- REST APIs
- PostgreSQL
- Git
- Agile

NICE-TO-HAVE (mention if you have them):
- Kubernetes
- AWS
- Microservices
- CI/CD

CONTEXTUAL (weave into bullets):
- "scalable systems"
- "cross-functional teams"
- "performance optimization"
- "code review"

Step 3: Mirror the Language

If the job says “containerization,” don’t just say “Docker” — say “Docker containerization.” If the job says “test-driven development,” don’t just say “testing” — say “TDD.”

Where to Place Keywords

Priority locations (highest ATS weight):

  1. Skills section
  2. Job titles
  3. Bullet points (experience)
  4. Project descriptions
  5. Summary (if included)

Lower priority: 6. Education details 7. Certifications

Keyword Density

  • Use each important keyword at least once
  • Don’t keyword-stuff (repeating the same word 10 times)
  • Use variations: “JavaScript” and “JS,” “Machine Learning” and “ML”
  • Include both acronyms and full forms: “CI/CD” and “Continuous Integration/Continuous Deployment”

Tailoring for Specific Roles

Why Tailoring Matters

A generic resume might score 40-50% match on ATS keywords. A tailored resume can score 70-90% match.

How to Tailor

Step 1: Create a “master resume” with everything

All experiences, projects, skills — the full picture.

Step 2: For each application, create a tailored version

  1. Read the job description carefully
  2. Identify key requirements and keywords
  3. Reorder skills to match priority
  4. Adjust bullet points to emphasize relevant experience
  5. Add/remove projects based on relevance
  6. Update summary (if included) to match role

Tailoring Example

Job: Backend Engineer at Stripe

Emphasize: Python, Java, API design, distributed systems, databases, payment systems
De-emphasize: Frontend frameworks, CSS, UI/UX

Skills section:
Languages: Python, Java, Go, SQL
Backend: REST APIs, gRPC, Microservices, Event-Driven Architecture
Databases: PostgreSQL, Redis, Kafka, DynamoDB
Infrastructure: AWS, Docker, Kubernetes, CI/CD

Job: Frontend Engineer at Airbnb

Emphasize: React, TypeScript, UI/UX, performance, accessibility
De-emphasize: Backend infrastructure, DevOps

Skills section:
Languages: TypeScript, JavaScript, HTML/CSS, Python
Frontend: React, Next.js, Tailwind CSS, Jest, Cypress
Tools: Webpack, Vite, Storybook, Figma
Concepts: Responsive Design, Accessibility, Performance Optimization

Tailoring Checklist

For each application:

  • Read the full job description
  • Identify 10-15 key keywords
  • Ensure keywords appear in your resume
  • Reorder skills by relevance
  • Adjust bullet points for relevance
  • Include most relevant projects
  • Update file name: FirstName_LastName_Company_Role.pdf

ATS Testing Tools

Free Tools

  1. Jobscan (jobscan.co) — Compares your resume against a job description, gives match score
  2. Resume Worded (resumeworded.com) — ATS compatibility check and scoring
  3. Skillsyncer (skillsyncer.com) — Keyword matching and suggestions

Manual Testing

  1. Copy-paste test: Copy your resume text from the PDF and paste into a plain text editor. If the text comes out scrambled, ATS will have the same problem.

  2. Plain text readability: Can you read and understand your resume as plain text? If not, simplify the formatting.

  3. Section detection: Are section headers clearly identifiable? ATS uses them to categorize content.

Common ATS Mistakes

1. Using Creative Templates

Those fancy resume templates from Canva or graphic design sites? Most are ATS nightmares.

Why: They use tables, text boxes, columns, and graphics that ATS can’t parse.

Fix: Use simple, clean templates. Look for “ATS-friendly” specifically.

2. Putting Skills in Graphics

❌ Skill bars: Python ██████████ 95%
❌ Skill clouds: [Python] [Java] [React]
❌ Pie charts showing proficiency

Fix: List skills as plain text: “Python, Java, React”

3. Using Icons and Symbols

❌ 📧 email@example.com
❌ 📱 (555) 123-4567
❌ 🔗 linkedin.com/in/name

Fix: Use plain text: “email@example.com | (555) 123-4567”

4. Abbreviations Without Full Text

If the ATS is looking for “Kubernetes” and you only wrote “K8s,” you might miss the match.

Fix: Write both on first use: “Kubernetes (K8s)” or include both in your skills section.

5. Creative Job Titles

If your official title was “Code Wizard” but you were a Software Engineer, the ATS won’t match “Code Wizard” with “Software Engineer.”

Fix: Use standard titles. If your official title was unusual, you can clarify: “Code Wizard (Software Engineer)”

6. Missing Dates

ATS often uses dates to calculate experience. Missing dates can:

  • Cause parsing errors
  • Make you appear to have gaps
  • Result in incorrect experience calculations

Fix: Include month and year for all positions and education.

7. Non-Standard Date Formats

❌ "2024 to present"
❌ "Since Jan 2024"
❌ "2024-ongoing"
✅ "Jan 2024 - Present"
✅ "January 2024 - Present"

8. Missing Contact Information

Believe it or not, some resumes lack email or phone number.

Fix: Always include: Name, Email, Phone, Location (city/state), LinkedIn

ATS Keyword Template

Use this template to track keywords for each application:

JOB TITLE: _______________
COMPANY: _______________

REQUIRED SKILLS (must include):
1. _______________
2. _______________
3. _______________

PREFERRED SKILLS (include if you have):
1. _______________
2. _______________
3. _______________

KEYWORDS TO INCLUDE:
- _______________
- _______________
- _______________

MY RESUME MATCHES:
Skills section: _______________
Experience bullets: _______________
Projects: _______________

MATCH SCORE (estimate): ____/100

Advanced ATS Strategies

1. Use Both Acronyms and Full Terms

"CI/CD (Continuous Integration/Continuous Deployment)"
"REST (Representational State Transfer)"
"ML (Machine Learning)"

2. Include Synonyms

"Built" and "Developed" and "Implemented"
"API" and "Application Programming Interface"
"Frontend" and "Client-side" and "UI"

3. Mirror Job Description Structure

If the job description lists requirements in a specific order, mirror that order in your skills section.

4. Include Soft Skills Contextually

Don’t list “leadership” as a skill. Instead: “Led a 5-person team to deliver the project 2 weeks ahead of schedule”

5. Add Industry Terms

Include relevant industry terminology:

  • For fintech: “PCI compliance,” “payment processing,” “KYC”
  • For healthcare: “HIPAA,” “EHR,” “clinical workflows”
  • For e-commerce: “conversion optimization,” “inventory management,” “A/B testing”

Key Takeaways

  1. Format matters — Simple, single-column, standard headers
  2. Keywords are crucial — Mirror the job description
  3. Test your resume — Use ATS testing tools
  4. Tailor each application — Generic resumes get filtered out
  5. Both humans and machines read your resume — Design for both
  6. PDF is generally safe — But .docx works too
  7. Content > Formatting — A well-written plain resume beats a fancy unreadable one