Pull keywords from a job description
Updated 26 October 2026. A job description is not a keyword list until something decides which words count. The match report on the ResumeATS builder does that with a fixed extractor. You can do a slower version by hand. Either way, the output is a candidate list, not a set of words you must paste into the resume.
What the extractor keeps
It reads the job box and the resume as text. Dates in the form are not part of the resume text. Tokens are letter, number, and symbol runs that may include plus, hash, and slash, so “A/B” and “C++” stay one token. A token is dropped if it is a stopword, if it is only digits, or if it is shorter than three characters and not on a short-skill exception list. The stopword list is grammar plus posting filler. It includes the, and, with, required, requirements, experience, team, work, years, role, qualifications, preferred, ability, and need, among others. “Required” will not show up as a missing skill. “Experience” will not either.
Short tokens survive when they are on the exception list or when they look like an acronym. The exception list includes sql, aws, gcp, crm, kpi, seo, api, sap, erp, bi, ai, ui, ux, qa, hr, pm, ml, nlp, etl, ci, and cd. A token of two to six letters that was typed in all capitals is also kept, which is why SQL survives even before it is lowercased for counting. A bigram is kept only when two kept tokens sit next to each other with a single space between them. A period, a comma, or a line break blocks the pair. “Lead scoring” counts. The last word of one sentence glued to the first word of the next does not.
Every kept unigram and bigram from the job description is a job term. A term is matched when the resume count is at least one. It is missing when the resume count is zero. It is over-used when the resume count is greater than three. Over-used terms are still matched. The percent is matched terms divided by all job terms, rounded to the nearest whole number. Repeating a word does not raise the percent. The chips under the bar are capped: matched shows at most 16, missing shows at most 16, and over-used shows at most 12. The sentence above the chips is the full count. If you only read the chips, you will miss terms that sorted past the cut.
A worked posting, counted
Load the sample. Jordan Avery is a marketing-operations resume: three roles, HubSpot and Salesforce in the bullets, SQL and Tableau at Brightline, and 18 skills. Replace the job box with this posting and nothing else:
Product Operations Analyst We are hiring a Product Operations Analyst to support the product team. You will write SQL against our warehouse, build Looker dashboards, and document Salesforce workflows. Experience with HubSpot is a plus. You will track onboarding metrics, partner with support, and present findings to product managers. Figma and Amplitude experience is required.
The line under the bar reads 8 of 36 job terms matched, 28 missing, 2 over-used, 22%. Matched, with the resume counts: product 1, operations 4, dashboards 2, hubspot 4, looker 2, salesforce 2, sql 2, workflows 1. Over-used: operations 4 and hubspot 4. The word product matches because the Coastline role says “product launches,” which is not the same job as product operations. Operations matches the titles, the certification name, and the skill “marketing operations.” Those hits are real strings. They are weak evidence.
Missing terms are sorted by how often they appear in the posting, then alphabetically. The first ones are analyst, operations analyst, product operations, and support, each twice. Then, once each: amplitude, build, build looker, document, document salesforce, figma, findings, hiring, looker dashboards, managers, metrics, onboarding. That is the 16 chips the box will show. Still missing, and not shown as chips, are onboarding metrics, partner, plus, present, present findings, product managers, salesforce workflows, track, track onboarding, warehouse, write, and write sql. The line still says 28 missing. Warehouse is a real noun in this posting and it is past the chip cap. If you edit from the chips alone, you will not see it.
Which missing terms are worth an edit
Ignore verbs and filler the stopword list did not catch. Build, document, write, track, present, partner, hiring, plus, and findings are not search terms a recruiter types. Support is ambiguous. Managers is the ordinary word, not a title you should invent. The tools in the missing list are Figma and Amplitude. They are not on the sample, in bullets or in skills. Add either one only if you have used it and can say how. Clicking a missing chip puts the word in the skill field when it does not look like a job title. It does not add the skill. Press Enter only if the word is true. A title-shaped phrase such as “operations analyst” jumps to the job-title field of the first role instead. Do not retitle Jordan, or yourself, to collect the bigram.
By hand, without the tool, highlight nouns that are tools, methods, credentials, or the job title, and skip adjectives. Then search your own resume for those nouns before you add any. SQL, Looker, Salesforce, HubSpot, and dashboards are already on this sample. Writing them again would feed the over-used list, which starts at four mentions. HubSpot and operations are already there. The stuffing guide is the rule for repeats. The match-report guide uses a shorter posting that lands at 14 of 15, or 93%, and shows the opposite problem: one real gap, Kubernetes, and several terms already repeated.
A practical pass
- Paste the whole posting, including the requirements, into the job box. A responsibilities-only paste hides the tools that sit under “required.”
- Read the count line first. Note matched, missing, over-used, and the percent together.
- Open missing. Treat the chip list as the first 16, not the full set, whenever the line’s missing count is higher than 16.
- Keep tools, credentials, and a title you have actually held. Drop verbs, “plus,” and accidental overlaps such as product launches versus a product-operations title.
- Put a kept term in one bullet that proves it, and once in skills. Do not add a fourth copy of a term that is already over-used.
22% on this posting does not mean the sample is a weak resume. It means most extracted strings from this particular posting are absent, and many of those strings are not skills. The useful edit is Figma or Amplitude if they are true, or a decision to skip the role. It is not a paragraph that repeats “product” until the percent moves.
Related reading: check a resume against a job description and resume keywords without stuffing. Paste a posting into the ResumeATS builder.
Questions
What did the product-operations posting score against the sample?
8 of 36 job terms matched, 28 missing, 2 over-used, shown as 22%. Matched terms include sql, looker, salesforce, hubspot, dashboards, and workflows. Operations and hubspot are over-used at 4 each. Figma and Amplitude are missing.
Why are some missing terms not shown as chips?
The missing list renders at most 16 chips, after sorting by frequency in the posting and then alphabetically. The count line still reports the full 28. On this posting, warehouse is among the terms past that cap.
Does “required” show up as a keyword?
No. Required, experience, team, work, and years are stopwords. They are removed before terms are counted. A short acronym such as SQL is kept because it is on the short-skill list.