Your client's brief says "Salesforce administrator, 3+ years." Your ATS runs the search, returns 40 CVs, and you shortlist from that pool. What you don't see is the candidate who spent four years as a "CRM systems lead" configuring the exact same platform, doing the exact same work, but never once typed the word "Salesforce" because her old employer white-labelled the tool internally. Your ATS filtered her out before you ever opened her CV. That's not a hypothetical edge case — it's what keyword matching does every single day, quietly, without telling you what it missed.

This is the core limitation of keyword-based screening: it matches strings, not meaning. A traditional ATS scans a CV for the literal terms in your search — "Salesforce," "3 years," "administrator" — and ranks or excludes based on presence or absence. It has no concept of synonyms, no sense of adjacent skills, and no way to recognise that "led a team of six developers" and "managed a development team" describe the same thing. If the candidate's CV doesn't contain your exact vocabulary, the system treats them as a non-match, regardless of how well-suited they actually are.

Where keyword screening breaks down

The failure mode compounds at volume. Say a role comes in for a "senior project manager" with "stakeholder management" experience. Your ATS searches those terms. It misses the candidate who wrote "client relationship lead," the one who described "cross-functional delivery" instead of "project management," and the one who used "PMP" as a stand-alone credential without ever writing out "project manager" in their job title. Each of these is a plausible, sometimes strong, candidate — filtered out not because they lack the skill, but because they described it differently.

Multiply that across every open role on your desk. If you're running five active briefs and each keyword search silently drops 15–20% of relevant candidates due to phrasing mismatches, you're not screening a smaller pool — you're screening the wrong pool, and you don't know it. The client's brief and the candidate's CV are two different documents written by two different people with two different vocabularies. Keyword matching assumes they'll happen to overlap. Often they don't.

How semantic matching closes the gap

Semantic matching, the approach tools like CV Matcher use, works differently. Instead of scanning for exact strings, it processes the CV and the brief for meaning — understanding that "CRM systems lead" and "Salesforce administrator" sit in the same skills cluster, that "stakeholder management" and "client relationship lead" describe overlapping capabilities, and that a candidate who "migrated a legacy billing system to a cloud platform" has relevant experience for a brief asking for "cloud migration," even without that exact phrase appearing anywhere on the CV.

In practice, here's what that looks like on a live role. You input the client brief — the actual language from the client, not a keyword list you've translated it into. The tool processes every CV in the pile against that brief holistically: title, responsibilities, tools mentioned, career trajectory, not just an isolated skills section. It then returns a ranked shortlist with a rationale for each match — not just "matched" or "didn't match," but why: which experience aligns, which skills are adjacent rather than exact, and where the gaps are. You review that ranked list rather than a filtered one, which means the CRM lead, the client relationship lead, and the cross-functional delivery candidate all surface for your review instead of disappearing before you see them. That's also where it's worth trying this against your own pile rather than taking the claim on faith — you can Start Free Trial and run a current brief through it alongside your usual ATS search to see what each approach surfaces.

The practical difference: your longlist gets bigger and more accurate at the same time. You're not lowering your bar by including more CVs — you're correcting for the fact that your original keyword search was too narrow to reflect the brief's actual intent.

Where your judgment still matters

None of this replaces the qualification call, and it shouldn't. Semantic matching tells you a candidate's experience is conceptually relevant — it can't tell you if they're actually available for the client's start date, why they left their last role, or whether their communication style will land with this particular hiring manager. It can't detect that "led a team of six" meant leading six people for three weeks during someone's parental leave, not a sustained management role. It can't gauge motivation, salary expectations, or the soft mismatch that shows up in the first two minutes of a call and nowhere on paper. A 20-minute qualification call still does the job no algorithm can: reading tone, probing the gaps in a story, and testing whether the candidate can actually talk through the work they claim on their CV. Semantic matching earns you the time to make that call — it doesn't replace the judgment you bring to it.

What to try on your next role

Next time a brief lands, run it through a semantic match before you touch your keyword search. Paste in the client's actual language — the messy, unedited version, not the tidied-up boolean string you'd normally build. Compare the shortlist against what your ATS keyword search would have returned for the same role. Look specifically at who appears in one list and not the other, and read those CVs yourself. You'll likely find at least a handful of candidates your keyword search would have dropped silently — and that's the pool worth knowing about before you tell your client who's on the shortlist.