Resume keywords: how ATS matching works and where each term goes
Resume keywords match through exact-text recruiter searches over parsed fields, and most systems do not resolve synonyms. The mechanics, with a worked example.
Resume keywords work because recruiters run literal text searches over the parsed fields of every resume in their applicant tracking system, and your resume either contains the searched term or it does not. Most systems match exact strings and do not resolve synonyms, so a search for "stakeholder management" will not surface a resume that says "managed vendor relationships," even though a human would call those the same skill.
Keyword matching is step two of a two-step machine. Step one is parsing, and if the parse failed, your keywords do not exist no matter how well you chose them. The format spec covers step one. This post covers step two: who searches, what counts as a match, where terms have to sit, and a worked example you can copy the method from.
Who searches for keywords, and where do they search?
Two mechanisms run on the employer side.
Recruiter searches. A recruiter filling a role runs boolean queries over the parsed candidate database, something like "demand generation" AND HubSpot AND (SEO OR "search engine optimization"). The query runs against extracted fields, never against your original file. If the parser missed a term, or the recruiter's phrasing differs from yours, you are absent from the result set, with no rejection email and no signal. This silent miss is one of the quiet reasons applications go unanswered.
Automated match scores. Many systems also compute a keyword-overlap score between your parsed resume and the job description, which recruiters use to sort the applicant list. Knockout questions gate the whole pipeline before any of it runs.
Both mechanisms take their vocabulary from the job description. The hiring manager wrote the posting, the recruiter builds the query from the posting, and the scoring engine compares against the posting. The posting is the keyword source of truth, every time.
Do ATS systems match synonyms?
Mostly no. Exact-string matching is the default behavior. Some products apply stemming, so "managing" matches "managed." A few maintain abbreviation lists that equate "SEO" with "search engine optimization." None of that is dependable across employers, and you never know which system is reading you. Plan for the dumbest matcher:
- Mirror the posting's exact phrase. If it says "paid social," write "paid social," even if your team called it "social media advertising."
- Spell out and abbreviate, once each. "Search engine optimization (SEO)" puts both forms in the index for the price of one line.
- Treat titles as keywords. "Marketing Manager" needs to appear as a title you held or in your summary line. A search on the title is usually the recruiter's first query.
Where do keywords need to appear on the resume?
Both places: the skills section and the experience bullets. Each covers a failure the other cannot.
The skills section, because extraction from prose is unreliable. In one resume from our failure catalog, a data engineer's bullets named 14 tools and the parser extracted 3 of them into the searchable skills field. A comma-separated skills list is the one format parsers extract with near-perfect reliability, so it is the format that guarantees a term enters the index.
The bullets, because the search is only the front door. After a query hits, a recruiter opens the profile and reads. A term that lives only in the skills list, with no bullet showing the work behind it, reads as padding. Some systems also weight matches found inside dated job blocks, which is how a term starts counting toward "years of experience with X."
The rule: every core keyword appears once in the skills list and once or twice inside bullets attached to real work.
Does keyword density matter? Do stuffing tricks work?
No system publishes a density target, and the tricks age badly.
- Stuffing looks like stuffing. Recruiters read parsed-text views. A 40-term skill dump with no experience behind it, or the same phrase repeated in every bullet, reads as spam in that view and gets closed.
- White text fails structurally. Parsed text strips formatting. Your invisible keyword block becomes plainly visible text in the recruiter's view, so the trick ends up displaying the attempt to everyone who opens the profile.
- Keywords you cannot defend cost you screens. A match that books a phone screen you fail on the first question converts nothing and burns a company you may want later.
Coverage beats repetition: the posting's core terms, each placed once where the parser reads reliably and once where the human sees proof.
A worked example: extracting keywords from a job description
Here is a hypothetical posting excerpt, written for this example, no real company behind it:
We are hiring a Marketing Manager to own demand generation across paid and organic channels. You will run lifecycle email campaigns in HubSpot, manage a monthly paid social budget across Meta and LinkedIn, own SEO and content strategy, and report on pipeline in Google Analytics and Salesforce. You will run A/B tests on landing pages and present channel performance to leadership. 5+ years of B2B marketing experience required.
The 10-term match list a candidate should extract, and where each lands:
| Term | Where it goes |
|---|---|
| Marketing Manager | Job title line, or the first sentence of the summary |
| demand generation | Summary, plus one bullet with a pipeline result |
| HubSpot | Skills list, plus the lifecycle email bullet |
| lifecycle email | Skills list ("lifecycle email marketing"), plus a campaign bullet |
| paid social | Skills list, plus a budget bullet ("managed monthly paid social spend across Meta and LinkedIn") |
| Meta Ads / LinkedIn Ads | Skills list, named as platforms, plus that same bullet |
| SEO | Skills list ("search engine optimization (SEO)"), plus an organic-growth bullet |
| Google Analytics | Skills list, plus the reporting bullet |
| Salesforce | Skills list, plus the reporting bullet |
| A/B testing | Skills list, plus the landing page bullet |
Two notes on the leftovers. "B2B marketing" belongs in your summary sentence ("marketing manager with seven years in B2B software"), because recruiters search industry terms too. And the "5+ years" requirement gets answered by your parsed dates, not by any keyword, which is the format spec's job: four-digit years the system can count.
This extraction takes about ten minutes per posting, and it is the first half of tailoring. Doing the whole pass in 20 minutes per job is its own method.
FAQ
How do ATS keywords work? Recruiters run exact-text searches, often boolean queries, over the parsed fields of every resume in their system, and scoring engines compare parsed resumes against the job description. Your resume surfaces when it contains the searched terms as written. Most systems do not resolve synonyms, so the posting's own vocabulary is the target.
Should keywords go in the skills section or the work experience? Both. Parsers extract a comma-separated skills list reliably but miss most terms inside prose, so the skills section gets you into the index. The recruiter who opens your profile then needs to see each skill used in a dated bullet, or the match reads as padding.
Do ATS systems detect keyword stuffing? The dependable detector is the recruiter, who reads a parsed-text view where repetition and skill dumps are obvious. Hidden-text tricks fail the same way: parsing strips formatting, so white-text keywords display as ordinary visible text in the recruiter's view.
How many keywords does a resume need? There is no magic count. Extract the 8 to 12 core terms from the specific posting, place each once in the skills section and once or twice in honest experience bullets, and stop. Coverage of the right terms matters; repetition of any term does not.
Do resume keywords work if the resume does not parse? No. Keyword matching runs on parsed fields, so a rasterized PDF, a two-column layout, or contact info lost in a header can erase keywords you wrote. Fix parsing first, then keywords.
See which keywords survive the parse
The Resume Roaster shows you the skills and terms an ATS extracts from your file, in about 60 seconds, free, no signup. If the tools you use every day are missing from the parsed output, no recruiter search will ever find you.