Two hundred applications. A handful of rejections, mostly silence. It feels personal, but a lot of the time no person was involved: an applicant tracking system (ATS) parsed your resume into fields, scored it against the job, and filed it below the cutoff before a recruiter opened it.

The good news is that most ATS failures aren’t about your experience; they’re about formatting and keywords, and both are fixable in an afternoon.

What an ATS Actually Does

An ATS ingests your file, tries to pull out structured data (name, titles, dates, skills), and matches it against the job description. If it can’t parse a section, that section effectively doesn’t exist. If the skills the posting asks for don’t appear in words it recognizes, you look unqualified even when you’re not.

Fix the Formatting First (Free)

Before keywords, make sure the machine can read you at all:

  • No columns, tables, or text boxes. Multi-column layouts scramble when parsed: your bullet points can end up interleaved with your job titles. Use a single-column layout.
  • No images, icons, or logos for anything that carries meaning. An ATS can’t read text baked into a graphic.
  • Standard section headers it recognizes: “Experience,” “Education,” “Skills.” Cute headers like “Where I’ve Made an Impact” get ignored.
  • A normal font and simple bullet characters.
  • Save as a text-based file: a normal .docx, or a PDF exported from text (not a scanned or image-exported PDF). If the ATS can’t select the text, it can’t read it.

Then Match the Keywords

This is where most people lose points. The ATS looks for the specific terms in the posting, and it is dumb about synonyms:

  • Mirror the posting’s exact words. If it says “Kubernetes,” don’t only write “k8s.” If it says “accounts receivable,” don’t only write “AR.” Include the full term at least once.
  • Pull the hard skills, tools, and titles straight from the job description and make sure each relevant one appears naturally in your experience or skills section.
  • Spell out acronyms once (“Search Engine Optimization (SEO)”) so you match whichever form the posting uses.
  • Don’t keyword-stuff. A hidden wall of terms or white-on-white text gets flagged and read by a human later, and it backfires. Weave the terms into real accomplishments.

If you would rather not do this by hand

Tuning a resume to a specific posting by hand is slow. ATS Resume Fixer takes your resume and a job description, scores the match, and flags the missing keywords and formatting problems. $1 per check, no subscription. Same endpoint works over x402 for agents building job-application tooling.

Tailor Per Job, Not Once

The single biggest lever is that a resume tuned to this posting beats a generic one every time. You don’t rewrite your history; you reorder and re-word so the terms this employer searches for are present and prominent. Ten minutes per application, and you clear the first gate far more often.

What people get wrong about this

Can an ATS read a PDF?

A text-based PDF, yes. A PDF that’s really an image (scanned or exported as a picture) often can’t be parsed. If you can’t select the text with your cursor, neither can the ATS. Use a .docx or a proper text PDF.

Is keyword stuffing worth the risk?

No. It may squeak past the parser, but a recruiter sees it and it reads as desperate or dishonest. Match the real terms honestly.

Do I need a fancy template?

The opposite. Simple, single-column, standard-header layouts parse best. Design flourishes are what break ATS parsing.

Where the keywords are actually read from

A detail that changes how you place them: an ATS does not usually score a flat blob of text. It parses your resume into fields (job titles, employers, dates, education, skills), and a recruiter's search frequently runs against particular fields rather than the whole document.

The consequence is that identical words carry different weight depending on where they sit. A technology named inside a bullet under a real job, with dates attached, lands in your experience history and can be credited with duration. The same word in a comma-separated list at the bottom lands in a skills field with no context and no timeline.

This is why a dense skills section is weak on its own and strong as reinforcement. If a tool matters, it should appear at least once inside the role where you actually used it; that is the copy a recruiter filtering for “three years of X” can find.

Stuffing is detected, and it fails in a specific way

The old trick of pasting the job description into the document in white text still circulates. It does not work, and it is worth understanding why the failure is worse than simply being ignored.

Parsers read the text layer, not the rendering. Invisible text is fully visible to the system and, more importantly, to the human who opens your resume in a viewer that shows it. What began as a trick to pass a filter ends as a document that reads as deliberately deceptive, a much worse outcome than a low keyword score.

Repetition has diminishing returns for a similar reason. Listing a skill eight times does not multiply your relevance in any modern system, and it produces copy that a person can see is padded the moment they read it. The version that survives both audiences is the boring one: name the technology where you used it, once, with enough surrounding detail that the claim is checkable.

Somewhere to keep the keywords

Doing this per application generates a lot of notes. The Job Hunt Tracker has a tab built for exactly that: paste a posting's keywords, mark what is already on your resume, and see the match and the gaps next to the application it belongs to. Pairs with the free Resume Keyword Matcher extension. $12.

Where to put your effort

Most “no responses” are a formatting-and-keywords problem, not a you problem. Clean up the layout, mirror the posting’s exact terms, and save a text-based file: that’s 80% of it, free. When you want the missing keywords found for you against a specific job, run it through the $1 ATS checker, or explore the full $1 tools catalog.

Related: how to get your resume past an ATS and the ATS-friendly resume format that actually parses.