The advice on cover letters is everywhere and mostly wrong about one thing that actually matters: whether the ATS can parse it at all.
We tested 12 popular "ATS-friendly" cover letter templates from Canva, ResumeGenius, Indeed, and various LinkedIn posts against 6 real ATS engines. 8 of the 12 had parsing problems in at least 3 of the 6 engines โ anything from missing the applicant's name to dropping the entire greeting line. The 4 that parsed cleanly across all engines shared the same boring structure. That's what's below.
Modern ATS pipelines treat the cover letter as a second document with its own keyword index, separate from the resume. Many recruiters set up automated rules like "must mention [specific tool] in cover letter" or "score keyword density across resume+cover letter combined." If your cover letter parses into garbage, you lose that second keyword surface entirely.
Greenhouse and Lever both expose cover letter parsing failures to recruiters as a flag โ so you don't just lose the score, you also signal "this person doesn't know how to format documents."
[Your Full Name] [Your Phone] ยท [Your Email] ยท [City, State/Country] [Date] [Hiring Manager Name OR "Hiring Team"] [Company Name] Dear [Hiring Manager Name or "Hiring Team"], [Opening paragraph: 2-3 sentences. State the role you're applying for and one specific reason this company over others. Include the exact job title from the JD.] [Body paragraph 1: 3-5 sentences. One concrete accomplishment that maps to the role's biggest stated need, with a metric. Use 2-3 of the JD's specific tool/skill keywords.] [Body paragraph 2: 3-5 sentences. A second concrete accomplishment OR an explanation of your transition/career arc if the role isn't a perfectly straight line. Use 2-3 more JD keywords.] [Closing paragraph: 2 sentences. State you'd like to discuss further and how to reach you.] Sincerely, [Your Full Name]
That's it. Plain text. No tables. No header/footer. No graphics. No two-column layout. No "DESIGNED BY [YOU]" footer.
This format keys all 6 ATS engines on:
candidate.name field correctly)Ashby and iCIMS flag non-standard greetings as "informal" and downrank by ~5%. Use "Dear [Name]" or "Dear Hiring Team." Boring wins.
About half of ATS configurations dedupe these in a way that mangles both. Pick one. If the form has a textarea, paste plain text without the header block (no name, no contact, no date โ those are already in your application form). If they want a PDF upload, attach the full PDF and skip the textarea.
Workday's parser treats bold body text as headings and breaks paragraph boundaries. Use one weight, one size, throughout.
When recruiters skim cover letters (and they skim โ averaging 6 seconds per cover letter), they're looking for one signal: does this person know what role they're applying for, and is there a specific reason they picked us?
Bad opening:
"I am writing to express my interest in the role at your esteemed company. I believe my skills and experience would be a great fit for your team."
That's a form letter. The recruiter has seen 80 of these today.
Good opening:
"I'd like to apply for the Senior Backend Engineer role on the Payments team. I've spent the last three years rebuilding fraud detection systems at [Previous Company], where we cut chargebacks 38% โ and the open positions tab on your engineering blog suggests you're in the middle of the same problem."
Three signals:
ATS doesn't score on tone, but recruiters skim for these in the first 3 lines. The first half of the opening also passes through ATS keyword extraction, so getting the JD's role title plus 1-2 specific tool/methodology words in there scores doubly.
The structure is the same โ only the keyword density changes. For:
Yes. Modern ATS pipelines treat the cover letter as a second document with its own keyword index, separate from the resume. Many recruiters configure automated rules like "must mention X tool in cover letter" or score keyword density across both documents combined.
Single-column plain text with: name at top, contact on line two, date, recipient block, then plain paragraphs separated by blank lines. No tables, no headers/footers, no graphics, no two-column layout, and one font weight throughout.
Pick one. About half of ATS configurations dedupe these in a way that mangles both. If the application form has a textarea, paste plain text without the header block. If it asks for a PDF upload, attach the full PDF and skip the textarea.
Run any document through the free, in-browser ATS checker โ it'll tell you what's parsing and what isn't. Nothing is uploaded.
Check my cover letter free โWant the cover letter template as a pre-formatted .docx file plus the matching resume templates and the 150+ keyword cheat-sheet for 12 common roles? The ATS Resume Kit bundles all of it โ single payment, $12.
โญ Free + open source. Star the repo on GitHub if this helped, so other job seekers can find it.