← Field notes
ATS field notesApril 27, 20267 min read

What an ATS actually rejects, with examples from real resumes

Most resumes get filtered before a human sees them. Here is what the filter looks for, with line-by-line examples from resumes our roaster scored in the bottom 25%.

A recruiter at a mid-size tech company told us their applicant tracking system rejected 71% of inbound resumes before a human opened one. Their team is four people. They get 600 to 900 applications per posting. The math forces the filter. The filter is not a person reading carefully. It is a parser, a keyword check, and a small set of rule-based gates.

Most candidates think the rejection is about quality. It is usually about parsing.

We have scored 4,200 resumes through the Title Bump roaster. The bottom quartile fails for the same six reasons. Each one is fixable in under 20 minutes. None of them require a rewrite.

1. The PDF was a screenshot of a Word doc

The single most common rejection cause we see. A candidate exported their resume from Canva, Figma, or a design tool, and the file is technically a PDF but the text is rasterized. The ATS reads the file, finds no extractable text, and either logs zero parsed content or marks the application incomplete.

Sample from a Title Bump roast (Senior Designer, 9 years experience):

Parsed text: "" (empty) Detected skills: 0 Detected job history: 0

The candidate had been applying for 11 weeks. She had not heard back from a single employer. The resume looked great when humans opened it. The ATS could not read a word of it.

Fix: Open the PDF in Preview or Acrobat. Try to select a paragraph of text. If your cursor highlights nothing, the file is an image. Re-export from a tool that produces real text. Google Docs, Microsoft Word, and Pages all produce ATS-readable PDFs by default.

2. The contact info was inside a header or footer

Most ATS parsers ignore content placed in the document header, footer, or text boxes. If your name, email, and phone live there, you become an anonymous resume. The system has no way to associate the application with you.

Sample from a roast (Marketing Manager, 6 years experience):

Parsed name: "Resume_Final_v3" Parsed email: not found Parsed phone: not found

The actual file had her name and contact info at the top, in an attractive header. The parser did not see the header. It pulled "Resume_Final_v3" from the filename instead.

Fix: Move name, email, phone, city, and LinkedIn URL into the body of the document. First line. Plain text. Skip the icons next to each one. Some parsers misread Unicode envelope and phone glyphs as junk characters and discard the whole line.

3. Job titles were creative instead of standard

ATS keyword matching looks for industry-standard role titles. "Growth Wizard," "Code Sherpa," and "Customer Happiness Captain" do not match anything the system is indexing. The candidate gets filtered out of every keyword-driven query the recruiter runs.

Sample from a roast (Software Engineer, 4 years):

Parsed titles: "Code Wrangler," "Bug Slayer," "Senior Code Wrangler" Inferred role: unknown Match score against "Senior Software Engineer" search: 11%

His actual work was Senior Software Engineer. His startup let him pick his own title. The pick cost him three years of search visibility.

Fix: Use the standard title in your resume. Add the creative one in parentheses if it matters to you. "Senior Software Engineer (Code Wrangler)" parses as Senior Software Engineer and indexes correctly.

4. Skills were buried inside paragraphs

Many parsers look for a discrete skills section. They do not extract skills from prose bullets. A candidate who lists "managed migration from Postgres to Snowflake using dbt and Airflow" inside a job-experience bullet often gets zero credit for Postgres, Snowflake, dbt, or Airflow.

Sample from a roast (Data Engineer, 7 years):

Inline skills detected in bullets: 14 Skills extracted by parser: 3

The recruiter's keyword search for "Snowflake" returned 200 candidates. Our roasted candidate was not in that 200, even though Snowflake appeared three times in his bullets.

Fix: Add a "Technical Skills" or "Tools" section near the top. List your tools as a comma-separated string. Keep the prose bullets too. The skills section is for the parser. The prose is for the human.

5. Date formats the parser cannot understand

Date parsing is the second most common silent failure we observe. "2019 to present" parses correctly. "2019 - present" sometimes does. "April '19 - now" usually does not. Failed date parsing breaks the system's ability to compute years of experience, which is the gate for nearly every senior role keyword filter.

Sample from a roast (Product Manager, 12 years total):

Parsed years of experience: 0 Resume actual years of experience: 12

She had used a clean format ("'14 - '17, '17 - '21, '21 - now") that humans read in two seconds. The parser read zero years. Every "Senior PM" filter she applied to rejected her on experience.

Fix: Use four-digit years and the en-dash or word "to." "2014 to 2017" or "2014 – 2017" both parse. "2014 - present" works. "Present" is universally understood. Avoid abbreviated years and ambiguous symbols.

6. Two columns

Two-column resumes look elegant. Most parsers read them in the wrong order or merge content from both columns into one stream of nonsense. The result is a parsed text file where your senior PM job at Stripe is glued to a sidebar bullet about your fraternity service award from 2009.

Sample from a roast (Senior Designer, 11 years):

First parsed line: "President of Sigma Chi 2008 to 2012 led..." Buried at line 47: "Senior Product Designer at Stripe..."

Recruiters who scan parsed-text views read top to bottom. They saw "President of Sigma Chi" first. They moved on.

Fix: Single column. Always. Visual interest comes from typography, not layout. The parser sees one column of text. Make sure that text is in the order a human would want to read it.

What this means for your job search

The six failures above account for an estimated 60 to 75% of all silent-rejection cases we see in the bottom quartile of roast scores. None of them are about your experience. They are about file format, parsing, and how you laid out the page.

Before you tweak another bullet, run your resume through a parser test. Open the file. Select all text. Copy it. Paste it into a plain text editor. What you see is approximately what the ATS sees. If it reads like a coherent professional history, you are clear of the parsing trap. If it reads like a word salad with your job titles in the wrong order, fix that first.

You can spend three months rewriting bullets that no machine ever read. Or you can spend 20 minutes fixing the file. The candidates who recover fastest from a long search almost always do the second thing first.


The Title Bump roaster runs the same parsing checks on your resume in 60 seconds. Free. We will tell you which of these six failures, if any, are firing on yours. Run a free roast.

Title Bump

Want to know what your resume looks like to a parser?

The Title Bump roaster runs the same parsing checks above on your resume in 60 seconds. Free. We tell you exactly which silent failures, if any, are firing.