A lot of advice about an ATS friendly resume format is written as if there were a machine grading your design. Scoring does exist. Greenhouse's candidate FAQ describes a feature called Talent Matching, in which "AI compares your application to the job's requirements and assigns a match score", and the same page says it "does not automatically advance or reject candidates". What is compared there is your application against the requirements, not your layout against a house style. Applicant tracking systems generally take your file, extract the text, and try to fill in fields: name, email, employers, titles, dates, education. Most of what people call ATS optimization comes down to one question. When the text comes out of your file, is it still readable and still in the right order?
That question has a definite answer for your specific resume, and you can get it in about a minute. This post covers what the parser is doing, what Greenhouse documents as the things that break it, and how to test your own file instead of trusting a score.
What actually happens to your file
Greenhouse publishes a support article on unsuccessful resume parses, and it is the most useful document in this entire subject because it describes the failure case plainly. Read what it is describing, though. It opens "When you add a candidate to Greenhouse Recruiting, you can upload a resume to try and quickly fill in the information for their candidate profile", so the flow it documents is a recruiter adding somebody, not you submitting your own application. In that flow, if a resume fails to parse, the hiring team has to input the candidate's details manually, and the resume itself stays attached to the candidate's profile.
That is worth reading twice, because it is not what the folklore says. In the flow Greenhouse documents, a parse failure is not a rejection. It means somebody retypes the fields by hand, and the file is still there. Greenhouse does not publish the same detail for a resume you upload yourself, so treat that case as undocumented rather than as documented to behave the same way.
You will also see a figure quoted, usually around three quarters, for how many resumes an ATS rejects before a human sees them. The two write-ups linked at the end of this post, from UnchartedCareer and JobCannon, trace it to a 2012 sales pitch by a resume-optimization vendor called Preptel and report that no methodology, survey or sample size was ever published. The number drifts between seventy and eighty-eight percent depending on who is repeating it. Both are career blogs, and neither traces the number to a primary document. That is the point rather than a hole in them: nobody on either side of this can show you the study. Meanwhile the vendor article above describes a parse failure as manual data entry, not as rejection. Treat the number as folklore, and do not take a replacement number from us, because we do not have one either.
What is genuinely true is smaller and more practical: a resume that does not parse arrives as fields somebody has to fill in by hand, and that depends on someone caring enough to do it. That is a real cost, and it is worth avoiding. It is just not the guillotine it gets described as.
It is also worth knowing where filtering happens. The questions on the application form are structured data: a recruiter can sort and filter on them directly. Your resume is unstructured text that a person, or a screen like the Talent Matching one above, still has to read. The fields you typed are the part that filters cleanly, so they deserve as much care as the file you attached.
What Greenhouse documents as parse breakers
Greenhouse's article lists these among the causes of an unsuccessful parse. Because this is the vendor describing its own system, it is worth more than any listicle:
- The file is too large. Greenhouse cannot parse resumes larger than 2.5MB. Note that its upload limit is 100MB, so the file can be accepted and still be unparseable. One cause is an image embedded at full resolution.
- Spacing between letters. Greenhouse names "a resume with spaces between the
letters" directly. Our own extraction harness finds the same effect from
ordinary typographic tracking: measured with
pdftotext, 0.10em turnsSUMMARYintoSUMMA RYand 0.12em intoS U M M A RY, and a parser segmenting by headings then matches neither. - Graphics, photos and word art, which the article lists without saying what they do to the text around them.
- Resumes uploaded as an image rather than a document. A screenshot or a scan saved into a PDF has no text layer to extract unless it was run through OCR.
- Complex layouts and columned designs. Simple extraction follows the order the text was written into the file, not the order your eye reads the page, so two columns can interleave into nonsense. Layout-aware extractors handle it better, and you do not get to pick which one the employer runs.
- Headers and footers containing contact information. Contact details in a word processor header may or may not survive. Putting them in the body costs nothing and removes the question.
- Incomplete job titles. Greenhouse's own example is
Sr. Account Execinstead ofSenior Account Executive. Writing the title out leaves less to interpret.
Greenhouse's supported formats article lists .doc, .docx, .pdf, .rtf and .txt for resumes and cover letters. Other systems publish their own lists, and forms generally state their accepted types next to the upload control. Read that rather than guessing.
The one minute test that replaces a third-party score
There is a whole category of tool that will give your resume an "ATS score". The problem is not that nothing ever scores you. Talent Matching does, against a job's requirements. The problem is that the tool scoring you has seen neither those requirements nor the employer's system: you uploaded a file to a website, you did not hand it a login for the company's applicant tracking system. Three of the vendors that sell these scores say in their own copy that there is no official applicant tracking system score to look up. And neither of the candidate-facing surfaces these posts document shows you a number: Greenhouse's candidate portal shows at most a status flag or a named stage the employer chose to share, and Workday shows whichever label the employer configured. Here is the check that does correspond to what a parser does.
Open your PDF, select all, copy, and paste into a plain text editor. Not Word. Something with no formatting at all: TextEdit in plain text mode, Notepad, or the text box in any online form.
Then read what appeared. That output, or something very close to it, is what the parser receives.
You are looking for four failures:
- Missing text. If a section did not come through, it is most likely an image rather than text. A font problem, as in item 3, can do it too.
- Scrambled order. If your skills column has interleaved itself into your employment history, a two column layout is doing exactly what Greenhouse warns about.
- Garbled characters. Some export paths embed fonts without a usable character map, and the copied text comes out as symbols or with letters dropped. Re-export from a different tool and test again.
- Run-on rows. Tables can flatten so that a whole row becomes one line, or cells arrive in an order nobody intended.
If the paste reads cleanly, top to bottom, with your name first and your jobs in
order, the layout is not what is breaking extraction. That is what this test
covers, and it says nothing about file size, accepted extensions, or an upload
that failed. Command line users can run pdftotext resume.pdf - for a close
equivalent. It is not identical, which is why our own checker runs pdftotext both
with and without -layout and compares the reading order the two produce.
The format that survives extraction
Nothing here is about looking plain. It is about the text layer being unambiguous.
- One column. Every multi column problem disappears at once.
- Real text, not pictures of text. Including your contact details, which should never be inside an icon or a graphic.
- Conventional section headings. Experience, Education, Skills, Projects. A parser that segments by heading has to recognize the heading, and Greenhouse's parse-failure article names resumes "without clear sections and differing formats throughout each section" as one of its causes. Save the creative naming for the cover letter.
- Contact details in the body, at the top of the first page.
- Consistent dates. Pick one form, such as
Jan 2023 - Present, and use it everywhere. A parser computing tenure needs to find a start and an end. - One employer, title and date range per role, on their own lines rather than merged into a sentence.
- Bullets as real list characters, not images or unusual glyphs.
- A sensible file size. Under a megabyte is easy to hit once no photo is embedded.
- A useful filename, because a human is going to see it in a folder.
Keywords, without the fabrication
Matching the posting's vocabulary is legitimate, for one boring reason: a recruiter searching a pile of applications searches for words, and the words they have in front of them are the ones in the posting they wrote. If the posting says "Kubernetes" and your resume says "container orchestration", a keyword search misses you even though you are qualified.
The rule that keeps this honest is simple. Use the posting's wording for things you have actually done. Never add a skill you do not have, and never inflate a title. Beyond the ethics, it fails in the obvious place, which is the interview where somebody asks you about it.
This is the line ApplyEze is built on. It tailors a resume and a cover letter per posting from your verified experience, matching the language of the role without inventing credentials, then completes the application in a browser you can watch. Tailored, never fabricated, is a product constraint rather than a slogan.
What to stop worrying about
Font choice, within reason. Whether you used a template. Whether the file is "beautiful". A single column, real text, standard headings and a clean paste test cover what the format itself can control. The file size, the accepted extensions and the form fields you fill in are the rest of it, and they are handled above. The remaining effort belongs on the content, and on applying to enough of the right roles that one parse quirk is not the story of your search.
When you are done here, the two companion posts on reading a Workday application status and a Greenhouse application status cover the other end of the same pipeline.
Sources
- Greenhouse Support, Unsuccessful resume parse: https://support.greenhouse.io/hc/en-us/articles/200989175-Unsuccessful-resume-parse
- Greenhouse Support, Supported formats for resumes, cover letters and other candidate uploads: https://support.greenhouse.io/hc/en-us/articles/360052218132-Supported-formats-for-resumes-cover-letters-and-other-candidate-uploads
- Greenhouse Support, MyGreenhouse FAQ for Candidates, on Talent Matching: https://support.greenhouse.io/hc/en-us/articles/43418495049499-MyGreenhouse-FAQ-for-Candidates
- UnchartedCareer, The "75% of resumes are auto-rejected" myth, traced to its source, on Preptel and the drift between 70, 75 and 88 percent: https://unchartedcareer.com/blog/the-75-of-resumes-are-auto-rejected-myth-traced-to-its-source
- JobCannon, ATS myth: the Preptel 75 percent figure: https://jobcannon.io/research/stats/ats-myth-preptel