Resume Building
Recruiters Are Screening Resumes With ChatGPT: How LLM Screening Differs From Keyword ATS
By Pukar Khanal, Product Lead at ResumeAI
13 min readPublished
Pukar Khanal leads product at ResumeAI, working on AI resume parsing, ATS scoring, and semantic job matching. He writes about how applicant tracking systems read resumes and how job seekers get past them.
LLM resume screening ranks by meaning, not keyword counts. Some recruiters now paste resumes and job descriptions into LLM chat tools, or use LLM-powered screening features built into their hiring stack. Unlike keyword ATS filters, these reward a skill shown in context over a term repeated, which changes what a strong resume looks like.
ResumeAI is the free Resume AI platform that builds your resume and matches you to real jobs across the hidden job market. Below: how both systems read a resume, and how to write for both at once.
Key takeaways
- Presence versus meaning. Keyword systems reward the right term in the right field. Semantic systems reward the right term doing real work in a sentence.
- Synonyms are safer than stuffing. Name the job description's literal term once, then describe your real stack.
- Context sentences beat list tokens. Every skill you want credited should appear once inside a sentence that shows it working.
- Parse-clean formatting comes first. Every scorer reads the extracted text, not the layout you designed.
How do keyword ATS and LLM screening treat the same resume?
Same document, two very different readings. The table maps where the systems diverge and the writing move that covers both. Each LLM-behavior cell describes typical model behavior, not a guarantee. Tools and configurations differ.
| Dimension | Keyword ATS behavior | LLM screening behavior | What to do |
|---|---|---|---|
| Exact keyword match | The whole game. A recruiter-configured search looks for the literal term in your parsed fields. If the word is absent, your resume typically never surfaces for that search. | One signal among many. A model typically credits the concept whether or not the exact term appears, though the literal name is still the strongest, least ambiguous evidence you can give it. | Keep writing the literal tool and skill names the job description uses, once each, where they are true. Exact terms cost nothing and protect you under both systems. |
| Synonyms and adjacent tools | Typically invisible. A literal search for one term does not find its equivalent. A resume that only says EKS can miss a search for Kubernetes entirely. | Typically credited. Embeddings position text by meaning, so EKS lands near Kubernetes and REST experience reads as adjacent to GraphQL even when the literal words never overlap. | Name the JD's literal term once, then describe your real stack in your own words. A semantic scorer typically connects the equivalents, and the literal mention covers keyword search. |
| Keyword stuffing | Overrated even here. A search typically checks presence in the parsed fields. The first occurrence does the work, and repetition mostly pads the page. | Close to worthless. A model scores what the text means, and a repeated term adds almost no meaning after the first occurrence. A stuffed skills block typically reads as thin, not strong. | Delete the repeats. Spend the recovered space on one sentence per skill showing it in use. Context is what a semantic scorer can credit. |
| Quantified specifics | Mostly ignored. Numbers and outcomes are not search terms, so a keyword filter typically neither rewards nor punishes them. | Typically rewarded. A bullet that names the system, the action, and the measured outcome carries dense, specific meaning. That is what separates it from the boilerplate around it. | Quantify from your real work: the metric you moved, the scale you ran at, the before and after. Specifics help every reader, whether model, recruiter or interviewer. |
| Formatting and parsing | Critical. Field-based parsers typically mangle multi-column layouts and tables. Text that extracts out of order can detach skills from the searches meant to find them. | Still matters. A model only sees the extracted text. It is often more forgiving of messy input, but scrambled extraction still cuts skills off from the context that gave them meaning. | Stay single-column, with standard headings and no text boxes. Clean extraction comes before every scorer that will ever read you. |
| Vague buzzwords | Neutral noise. Terms like "results-driven" and "passionate" are rarely in anyone's search string, so they neither match nor block anything. | Typically scored down in effect. Boilerplate carries almost no specific meaning, so it matches a JD requirement weakly. A reviewer who asks a model to summarize you gets a summary of filler. | Replace each buzzword with the evidence it was gesturing at. If a phrase could sit on anyone's resume, it is not helping yours under either system. |
Keyword systems reward presence. Semantic systems reward meaning. Almost every writing move that helps under one system helps or is neutral under the other. So the answer to "which should I optimize for" is both at once.
How do keyword ATS filters rank your resume?
The classic pipeline has three parts, and none of them is a robot making hiring decisions.
- The ATS parses your file. It extracts text and sorts it into structured fields: name, titles, skills, dates.
- Knockout questions on the application form apply hard rules the employer set: work authorization, minimum experience, licenses.
- A recruiter searches the candidate pool for literal terms, and the system surfaces resumes whose parsed fields contain them. This is what people mean by "keyword matching."
The matching is literal. A search typically finds the exact term or nothing, so a resume that says only "EKS" can be invisible to a search for "Kubernetes." And the outcome is mostly ranking and sorting, not blanket auto-rejection. As our guide to getting past ATS explains, the common failure is a resume sitting unread at the bottom of a searchable pile because the searched terms never appear in it.
Keyword search is not dead. Recruiters still run literal searches every day, and the moves that serve them (exact tool names, standard headings, parse-clean formatting) still pay. What has changed is that a second kind of reader now sits next to the first.
How does LLM or semantic resume screening work?
It shows up in two forms. In the informal one, a recruiter pastes a resume and a job description into a chat tool and asks it to summarize the candidate, list the gaps, or rank a shortlist. In the built-in one, LLM- or embedding-powered scoring inside a screening tool ranks candidates by semantic similarity instead of term counts. Nobody has numbers we could verify on how widespread either is, so we claim only that both exist.
The shared mechanism is the embedding. Text goes in and a long list of numbers comes out: a vector that positions the text in a space organized by meaning. Texts that mean similar things get vectors that sit close together, even when the words differ. A bullet about EKS lands near a job description line about Kubernetes. REST experience sits next to GraphQL work. "Built data pipelines" lands close to a requirement that says ETL.
Scoring then measures meaning proximity, usually with a measure called cosine similarity, instead of counting how often a term appears. Every difference in the table above comes from that one change.
You can watch it happen. ResumeAI's free ATS embedding visualizer takes a pasted resume and job description and embeds every chunk into 768-dimensional semantic vectors with EmbeddingGemma. It projects both sides into one shared 2-D scatter using joint PCA, so points close together are close in meaning.
A line runs from each JD requirement to the resume chunk it matches best by cosine similarity, and hover tooltips show each similarity. Above the chart sits an overall semantic match score: the mean of the best similarity each requirement finds against any resume chunk. No signup, just a one-click Cloudflare Turnstile check against bots. Ten minutes with your own resume and a real posting teaches the mechanism better than any paragraph.
This describes how embedding-based scoring works in general and how ResumeAI's own tools work. What a specific third-party screening product scores, weights or ignores varies by vendor and configuration. We don't attribute behavior to named products we can't verify.
What changes about how you write your resume?
Synonyms are safer than stuffing
Under pure keyword search, the fear was the missed term, so candidates padded skills blocks with every variant of every tool. Semantic scoring flips that. Equivalent terms typically get credit whether or not they match literally. Repeating a keyword adds nothing after the first time, because presence was the signal and presence saturates at once. Use one literal mention of the JD's term plus an accurate description of your stack.
Context sentences matter more than list tokens
A bare "Kubernetes" in a skills list is one token of meaning. "Ran the migration of a monolith onto Kubernetes and cut deploy time" is a dense claim about what you did, at what scale, with what result. A semantic scorer has far more to match against a JD requirement. Skills lists still help with literal search, but they no longer carry the resume alone. Put every skill you want credited inside at least one sentence that shows it working.
Inflated generic claims score worse
Boilerplate self-description carries almost no specific meaning, so it matches specific requirements weakly. A recruiter who runs resumes through a chat tool gets back a summary of what you gave it. For a generic resume, that is a generic summary.
The convergence problem in the words that make your resume sound AI-written applies with extra force here. When many applicants submit the same model-flavored filler, the filler cancels out, and only the specifics are left to rank on.
Parse-clean formatting still comes first
Whatever reads your resume, a field parser feeding a keyword index or a model computing embeddings, reads the extracted text, not the layout you designed. If extraction scrambles your columns or detaches headings from their bullets, the meaning a semantic scorer would have credited arrives broken. Our ATS-friendly format guide covers the single-column, standard-heading layout that survives extraction. Everything else in this article depends on it.
Note
Published research on resume optimization is thinner than the marketing around it suggests. Our review of what studies do and do not show about optimized resumes and interview rates goes through it. Writing for meaning is an argument about how these systems score text. It is not a promise about interview rates.
How do you write bullets that survive both keyword and LLM screening?
The two systems disagree about mechanism but mostly agree about good writing. Six moves cover both.
- 1
Name the literal tool, then show it in context.
Write the exact term the job description uses once, which covers keyword search. Put it inside a sentence about what you built or ran, which is what a semantic scorer can credit.
- 2
Quantify the outcome.
The metric you moved, the scale you handled, the time you saved, pulled from your real work and never invented. Specific outcomes are dense meaning, and dense meaning is what ranks.
- 3
One skill in action per bullet.
A bullet that shows one skill doing one job reads cleanly to a model and to a human. Bullets that cram four technologies into one clause blur what any of them meant.
- 4
Cut the filler adjectives.
Self-descriptions add no checkable meaning. Every one you delete makes room for a specific that either kind of scorer can use.
- 5
Keep the format single-column and parse-clean.
No tables, no text boxes, no multi-column layouts. The text has to extract in order before any scorer, keyword or LLM, sees a word of it.
- 6
Test the parse and the match before applying.
Don't guess how software reads you. Look. A free checker shows you the extraction and the match against the specific job before you submit.
Most people skip the last one. ResumeAI's free ATS resume checker scores your resume against a specific job description with the same semantic scorer ResumeAI's recruiters see when they search the candidate pool. Equivalent stack experience counts as evidence even when the literal words differ. Run your resume against the job you want before you apply. The gaps it shows are the bullets to rewrite.
How we know this, and what we cited
Pukar Khanal, Product Lead at ResumeAI, wrote this article and last reviewed it on . ResumeAI is the free Resume AI platform that builds your resume and matches you to real jobs across the hidden job market. The team builds and runs semantic matching: the embedding visualizer above and the semantic scorer that ranks candidates on the recruiter side. The reasoning in this article comes from that work.
This post cites no external sources, by design. Statistics on recruiter LLM adoption circulate widely, but none fetch-verified at review time, so there are no adoption figures, survey percentages or statistics here. Claims about recruiter behavior are hedged ("some recruiters," "some screening tools," "a model typically"). Claims about embedding-based scoring rest on the systems ResumeAI runs, which you can inspect through the visualizer. For third-party tools, we stop at the mechanism and name no products.
Tools referenced in this article
- ResumeAI ATS embedding visualizer. Paste a resume and a job description and see both as EmbeddingGemma vectors in one shared 2-D scatter, with per-requirement connection lines and an overall semantic match score. cvai.dev/ats-embedding-visualizer
- ResumeAI free ATS resume checker. The same semantic scorer used on the recruiter side of the platform, scored against the job you are targeting. cvai.dev/ats-resume-checker
Frequently asked questions
Do recruiters use ChatGPT to screen resumes?
Some do — and it takes two distinct forms. The first is informal: a recruiter pastes a resume and a job description into a chat tool and asks it to summarize the candidate, list gaps, or rank a shortlist. The second is built-in: some screening and matching tools now use LLM or embedding-based scoring under the hood, ranking candidates by how closely their resume's meaning matches the job description rather than by literal keyword overlap. Adoption numbers circulate widely, but we could not verify any worth printing, so this article makes no claim about how common either form is — only that both exist, and that they reward different writing than keyword filters do.
How is LLM resume screening different from keyword ATS matching?
Keyword ATS matching counts literal terms: a recruiter-configured search looks for specific words across your parsed resume fields, and a resume that never contains the searched term typically does not surface. LLM and embedding-based screening compares meaning: text is converted into numeric vectors positioned by what it means, so a resume that says EKS can land near a job description that says Kubernetes even though the words differ. The practical consequences run in opposite directions — synonyms that a keyword search would miss typically get credit from a semantic scorer, while keyword stuffing that pads a term count adds almost nothing to a meaning-based score.
Should you optimize your resume for ChatGPT screening?
Not as a separate project — the resume that does well under LLM screening is largely the same resume that does well with keyword search and with human readers: literal tool names stated once, each skill shown in a sentence of real context, and outcomes quantified from your actual work. What you should not do is chase tricks, like hidden white-text instructions aimed at a model — the parsed text is visible to any human who opens the file, and a manipulation attempt on the record typically costs more than any ranking it might buy. Write for meaning, verify the parse, and you have covered both systems at once.
Does keyword stuffing still work with AI resume screening?
Against a semantic scorer, stuffing is close to worthless: a wall of repeated keywords carries less meaning than one sentence showing the skill in use, because the model scores what the text says about your work, not how often a term appears. Even against classic keyword search, repetition is overrated — a recruiter-configured search typically cares whether the term is present in your parsed fields, so the first occurrence does the work and the ninth adds nothing. And any human who reads a stuffed resume recognizes it immediately. The move that replaces stuffing: name the tool once, then spend the saved space showing what you did with it.
Do synonyms count in AI resume screening?
With semantic scoring, typically yes — that is the core difference. Embeddings position text by meaning, so equivalent and adjacent terms land near each other: EKS sits close to Kubernetes, REST experience reads as adjacent to GraphQL, and a bullet about data pipelines carries much of what a JD means by ETL. But keyword searches are still in use, and they are typically literal — a search for the exact term will not find your synonym. The safe play covers both: write the literal tool name the job description uses at least once, and let your context sentences carry the equivalence for any semantic scorer reading behind it.
Does resume formatting still matter for LLM screening?
Yes — formatting is upstream of every scorer, keyword or LLM. Before any model sees your resume, the text has to be extracted from your file, and extraction is where multi-column layouts, tables, text boxes, and graphics cause damage: sentences read out of order, headings detach from their bullets, and the meaning a semantic scorer would have credited arrives scrambled or incomplete. An LLM is often more tolerant of messy text than a rigid field parser, but tolerant is not immune — a bullet that parses out of order can lose the connection between the skill and the outcome that gave it meaning. Single-column, standard-heading, parse-clean formatting protects you under both systems.
How can you see how AI reads your resume?
Two free ResumeAI tools show you directly. The ATS embedding visualizer at cvai.dev/ats-embedding-visualizer takes a pasted resume and job description, embeds every chunk into 768-dimensional semantic vectors with EmbeddingGemma, projects both sides into one shared 2-D scatter with joint PCA, and draws a connection line from each JD requirement to the resume chunk it matches best by cosine similarity — with an overall semantic match score above the chart. No signup, just a one-click Turnstile check. The ATS resume checker at cvai.dev/ats-resume-checker runs the same semantic scorer used on the recruiter side of the platform, so the score you see reflects how candidates are actually ranked.
What to ask next
Common follow-ups, each linked to the page that answers it.
- How does classic keyword ATS ranking work, and how do you get past it?
- Which words make your resume sound AI-written to the humans reading it?
- What does a parse-clean, ATS-friendly resume format look like?
- Does resume optimization change interview rates? What does the research show?
- What does your resume look like as a 2-D embedding map against a real job description?
See how software reads your resume before a recruiter does.
Whether the next reader is a keyword search or a semantic scorer, the fix is the same resume: literal names, real context, quantified outcomes, clean parse. Check how yours scores against the job you want, then rebuild the weak bullets from your real work. No credit card required.
Related guides
Keep reading
- Resume Building13 minNormal vs. Optimized Resume: What the Research Actually Says About Your Interview OddsRead the guide
- Resume Building13 minApplicant Tracking System Keywords: What They Are and How to Find ThemRead the guide
- Resume Building13 minCanva Resume Templates and the ATS: What Actually BreaksRead the guide