The parser is dumber than you think

I see it every single day in Greenhouse. A candidate uploads a beautifully designed resume. They bought it on Etsy for fifteen dollars. It has custom fonts and a neat sidebar. Plus a tiny pie chart showing Python proficiency. They think it makes them stand out. It does, but for all the wrong reasons. When I click their profile, the parsed text is garbage. It looks like a corrupted file from 1998. The system read straight across the columns. It mashed their job titles into their contact info. I have to manually download the PDF. Most recruiters won't bother. They just move on to the next candidate. You just lost your shot at an interview. All because of a pretty template. It is a heartbreaking mistake. You spent hours perfecting the design. You tweaked the colors until they were perfect. You aligned every single pixel. And the machine just chewed it up and spit it out. Design does not matter if the data is lost.

The truth about applicant tracking systems is simple. They are glorified filing cabinets with a search bar. They do not make hiring decisions. They do not auto-reject you for missing keywords. They just extract text. If your formatting prevents that extraction, you become invisible. It is that simple. Fix your format. Get more interviews. I have reviewed over two thousand resumes this year. The ones that get through are boring. They are plain text. They follow the rules. Let me show you exactly how to build one. We are going to strip away the nonsense. We will focus entirely on readability. The machine needs to read it first. Then the human can appreciate your experience. If you follow these steps, you will never worry about parsing errors again. Your application will actually reach a human being.

Why columns are killing your callbacks

People love two-column resumes because they save space. You cram skills on the left. Experience goes on the right. It feels like a smart way to fit everything on one page. But parsers like Workday and Taleo read straight across. They do not understand vertical dividers. The parser hits your document. It reads your skill right into your job title. The result is a total mess. The recruiter searches for your title. Your profile does not show up. You are effectively hiding your own experience. It is a self-inflicted wound. You paid a designer to make you invisible. Stop doing this immediately.

Stick to a single-column layout. It might look a bit boring to you. It might feel like a step backward. But it works perfectly every single time. The parser reads top to bottom. It reads left to right. Exactly as intended. Your job titles stay intact. Your dates align correctly. You actually show up in search results. I cannot tell you how many great engineers I almost missed. Their two-column layout broke the parser completely. I only found them because I was doing a manual audit. Do not rely on recruiters doing manual audits. Most of them do not have the time.

I cannot stress this enough. The goal is not to win a design award. The goal is to get read by a human. If the machine cannot parse it, you lose. The human never sees it. Keep it simple. Use standard margins. Let the content speak for itself. A clean, single-column format screams professionalism. It shows you understand how the system works. It shows you respect the recruiter's time. You make their job easier. They will appreciate that. And they will actually read your experience.

Tables and text boxes are invisible

Another massive mistake is using tables. I get why you do it. Tables keep everything perfectly aligned. They make your dates line up beautifully. But older systems like Taleo strip out tables entirely. They just delete the content inside them. I once saw a candidate use a hidden table. His entire work history was inside it. The parsed profile was completely blank. We almost passed on him. A coordinator noticed the attached file. He was a perfect fit for the role. But the system almost threw him away. Do not let a table ruin your chances.

Text boxes are just as bad. Microsoft Word treats text boxes as floating objects. Many parsers skip them completely. Your contact info is in a header text box. The ATS might not even know your name. Use standard margins and tabs instead. It takes a little more effort to format. But it guarantees your data survives. It actually makes it into the system. I have seen resumes where the entire summary was in a text box. The parser just skipped right over it. The candidate looked like they had no summary at all. It is a completely avoidable error.

Stop trying to outsmart the word processor. Use the tab key. Use the enter key. That is all you need. If you are using a template that relies on text boxes, throw it away. It is a trap. It looks good on your screen. It looks terrible in iCIMS. You want your resume to be bulletproof. Bulletproof means no hidden formatting tricks. It means plain text structured with basic spacing. It is not glamorous. But it gets you hired.

Fonts and file types matter

Stop using custom fonts from the internet. The ATS might not have that font installed. It substitutes it with something else. This ruins your spacing. Or worse, it fails to read the text entirely. Stick to standard system fonts. Arial, Calibri, or Times New Roman. They are safe. They are readable. They do not break parsers. I know you want to show off your typography skills. Save that for your portfolio website. Your resume needs to be a plain text workhorse. It needs to function flawlessly on any machine.

File types matter just as much. PDF is usually the best choice. But only if it is a text-based PDF. You export your resume as an image. You save it as a PDF. The ATS sees a blank page. Always highlight the text in your PDF before submitting. If you can highlight it, the parser can read it. It is a simple test. Do it every time. I have seen candidates upload JPEGs. It never ends well. The system just archives them immediately. They never even get a rejection email.

If an application specifically asks for a Word document, give them a Word document. Do not argue. Do not upload a PDF anyway. Some ancient government or banking systems still require .doc files. They have their reasons. Usually, it is because their parser is twenty years old. Play by their rules. Give them the format they request. It is the easiest way to pass the first filter. Fighting the system only hurts you. Adapt to their requirements and move forward.

The exact structure that works

Keep your hierarchy dead simple. Name and contact info at the top. No photos. No physical addresses. Just your city, email, phone, and LinkedIn URL. Follow that with a brief summary. Or jump straight into experience. Use standard section headers. Work Experience, Education, Skills. Do not use cute headers like My Journey. The parser looks for standard keywords. If you call your experience section 'What I Have Built', the ATS might ignore it. It will not know where to put your job history. You will end up with a blank profile.

Use a consistent format for your experience section. Company Name, Job Title, Dates. Put the dates on the right side using tabs. Do not use spaces. Use standard date formats like Month Year. Weird abbreviations confuse the system. I have seen Ashby flag a senior engineer. It calculated zero years of experience. They formatted their dates as 22-24. Do not make that mistake. Write out the full year. It takes two extra seconds. It saves you from an automated rejection. Precision is everything here.

Bullet points are your best friend. But keep them standard. Use a simple black dot. Do not use checkmarks, arrows, or custom icons. Some parsers turn custom icons into weird wingdings characters. Your beautiful list of achievements suddenly looks like a ransom note. Stick to the basics. Focus on the content of the bullet, not the shape of it. The machine only cares about the text. The human only cares about the impact. Nobody cares about your custom arrow icon. It is a distraction.

The keyword myth debunked

Let us talk about keywords. There is a massive misconception out there. People think the ATS automatically rejects resumes that lack specific keywords. That is simply not true. The ATS is just a database. It parses your resume and indexes the text. A human recruiter then searches that database. If the recruiter searches for 'Python' and you do not have it, you do not show up. But the machine did not reject you. The human just did not find you. You have to understand this distinction. It changes how you write.

This means you should not stuff your resume with invisible keywords. I have seen candidates put a block of white text at the bottom of their resume. They paste the entire job description in white font. They think it tricks the ATS. It does not. When the ATS parses the text, it strips the color. That block of white text shows up as normal black text in my dashboard. It looks ridiculous. It is an instant rejection from me. Do not try to game the system. It always backfires.

Instead, weave the keywords naturally into your bullet points. If the job requires AWS, mention how you used AWS in your last role. Do not just list it in a skills section. Context matters to the human reading it. The ATS will index the keyword either way. But the human needs to see how you applied it. Write for the machine to get found. Write for the human to get hired. That is the only strategy that actually works. It requires actual effort. But it pays off.

Examples

Here is exactly how a parser sees your formatting choices. Notice how the pretty version completely breaks the data extraction. It is a disaster.

The Two-Column Disaster
Skills: Python Experience: Google Java Software Engineer SQL 2022 - Present
How the ATS Reads It
Skills: Python Experience: Google Java Software Engineer SQL 2022 - Present
The Single-Column Fix
Google | Software Engineer | 2022 - Present Skills: Python, Java, SQL
Last winter I reviewed resumes for a senior ML role. One candidate had a gorgeous resume built in Figma. The ATS parsed their name as PORTFOLIO. Their email became a string of random symbols. I had to manually open the original file.

Walk-away

Stop overthinking your design. Start thinking about the machine reading it. Here is what you actually need to remember.

  1. Use a single-column layout to ensure the parser reads your text correctly.
  2. Avoid tables, text boxes, and columns entirely.
  3. Stick to standard section headers like Work Experience and Education.
  4. Save your file as a text-based PDF and verify you can highlight the text.
  5. Use standard system fonts like Arial or Calibri to prevent rendering errors.
I once interviewed a candidate rejected by our automated system three times. He finally reached out to me directly on LinkedIn. I checked his profile in Lever. His entire resume was a single flattened JPEG. The system literally saw a blank page. It auto-archived him immediately.

Build a clean, ATS-friendly résumé in 5 minutes. Free, one-page, no watermarks, no credit card.

Open the editor →

Frequently asked questions

Should I use a PDF or a Word document?

Use a PDF unless the application specifically requests Word. Just make sure it is a text-based PDF. Do not use an image. Try highlighting the text to check.

Do ATS systems auto-reject resumes without the right keywords?

No. That is a myth sold by resume writers. The ATS just parses and searches. A human recruiter runs the search. They decide who to reject.

Can I use color on my ATS resume?

Yes, color is fine. The parser will just ignore it. It only extracts the text. Just make sure the contrast is high enough. A human still needs to read it easily.

What is the best font size for an ATS resume?

Stick to 10 to 12 points for body text. Anything smaller becomes unreadable. The human recruiter will eventually look at it. Make their job easy.

Are resume templates from Canva ATS friendly?

Usually, no. Many Canva templates use heavy graphics and columns. Text boxes break parsers too. If you use Canva, stick to simple text layouts.

Related

— Lin Zhao. ML infra hiring lead at a frontier AI lab; reviewed 2000+ ATS-screened resumes through 2025.