How Resume Matching Works on Expertini
SOLUTIONS · EXPERTINI ATS

How Resume Matching Works on Expertini

Semantic matching versus keyword search, explained with real before/after examples.

3 min read · Updated July 2026 · Expertini Editorial

Resume matching on Expertini reads for what a candidate actually did, not whether their CV happens to contain the exact words a recruiter typed into a search box. This page shows the mechanical difference with concrete examples.

Watch the 30-second overview — no sign-up needed

01The keyword-matching failure mode

A search for "project manager" + "Agile" + "Scrum" silently excludes a candidate who wrote "led sprint planning and delivery for a cross-functional product team" — the same experience, described in different, equally valid words. This pattern disproportionately hurts career-changers, second-language candidates, and anyone whose CV wasn't written to game a specific search query.

02What semantic matching does instead

Dimensions are derived from the job description's actual language, and a CV is evaluated against each for documented evidence regardless of exact phrasing — "reduced page load time by 40% through backend query optimisation" and "improved application performance through database tuning" score similarly against a "performance optimisation" dimension, because both are evidence of the same thing.

03Resume Score, specifically

The standalone Resume Score tool uses cosine-similarity vector matching between a CV and a job description to give a quick, self-serve fit score — distinct from the full CMS pipeline (which runs on a submitted application with dimension-level Gemini extraction), useful for a candidate or recruiter checking fit before a formal application exists.

04What this means for how you write job descriptions

Semantic matching moves the quality burden from the candidate's vocabulary to the employer's job description — which is where it belongs, but it means a sloppy JD now costs you directly. Because the scoring dimensions and their weights are derived from your posting's actual language, a JD that buries real requirements in boilerplate ("dynamic self-starter," "fast-paced environment") produces dimensions that measure boilerplate. The practical fix is simple: state each requirement explicitly, and label its importance with must-have / preferred / nice-to-have language, since those phrases map directly to the scoring weights. The Job Description Builder drafts in exactly this structure by default, and the Employer Tips page has a fuller checklist.

05Common misconceptions, corrected

"Semantic matching means the AI decides who gets hired" — no; matching orders a list and cites its evidence, and every decision that follows is a recruiter's. "It's just fancier keyword search" — no; keyword search requires string overlap, while semantic extraction reads "oversaw the transition of a legacy customer database to a new CRM platform" as data-migration experience despite zero shared vocabulary with the JD. "Candidates can game it by stuffing skills" — the opposite: an unsupported word list reads as no evidence, while a specific, outcome-described sentence reads as strong evidence. If anything, semantic matching rewards exactly the writing a good human reviewer rewards — which is why our Resume Guide tells candidates to write one honest resume, not an "ATS version."

Engineering notes

Platform architecture & operations

A1How this is architected in the platform

How Resume Matching Works on Expertini is not a bundle of point products — it is a slice through one platform. The platform is deliberately server-rendered: every view is prepared by the application server and shipped as complete HTML, with no client-side framework, no third-party CDN scripts, and no build pipeline between the data and the page. What renders is what the server computed — the property that makes the interface auditable.

All persistence runs on a single search-native document store; every query carries the organisation's identifier as a mandatory filter at the lowest query layer. Tenant isolation is therefore structural — a property of how every request is composed — rather than a policy that relies on application code remembering to check.

Every capability referenced on this page resolves to a registered tool or connector: the tools directory and the integrations catalogue are renderings of the same registries the application enforces at runtime, so what this page describes and what the product gates can never drift apart.

A2Operational and audit posture

Screening is deterministic and published — the same inputs produce the same outputs, hard requirements block rather than average away, and the methodology is public on the research page. Actions that touch external systems are explicit and journalled per event; usage reporting aggregates the same journals the actions write, not a parallel telemetry system.

Anything that leaves the request path — notification fan-out, webhook delivery, activity journalling, mail — runs in fire-and-forget background threads. A slow external endpoint can never make the interface hang, and a failed side effect is logged rather than silently retried into inconsistency.

Everything written is yours to take: CSV exports and the Data Export app cover the same stores the product itself reads. The exit is as open as the entrance — by design, not concession.

Frequently asked questions

Do candidates need to tailor their resume with keywords from my job posting?
No — and telling them to is outdated advice on this platform. The matching reads for evidence of what someone did, in whatever words they naturally used. What genuinely helps is specificity: concrete outcomes give the extraction something to cite.
What happens if my job description is vague?
You get vague matching — the dimensions are derived from your JD's language, so imprecise requirements produce imprecise scoring. Five minutes spent labelling requirements as must-have / preferred / nice-to-have measurably sharpens the shortlist.
Is Resume Score the same as CMS scoring?
No. Resume Score is a fast cosine-similarity check with no AI call — good for a pre-application sanity check. CMS is the full dimension-level extraction and deterministic scoring pipeline that runs on real applications in your pipeline.

At a glance

  • Reads for evidence of a skill, not string overlap
  • Fair to career-changers and second-language candidates by construction
  • Resume Score uses cosine-similarity vectors for a quick standalone check
  • Full CMS pipeline runs dimension-level extraction on a real application
  • JD language directly drives dimension quality — precision pays
  • Keyword-stuffing reads as absence of evidence, not presence

See how resume matching works on expertini on your own hiring.

Bring a real job description to a 30-minute demo — free trial included.

Book a demo
Expertini AI
Online now
Hi! I'm Expertini's AI Product Expert. Ask me anything about our solutions, get guidance on any of our Hiring Tools, or just tell me what you're trying to do — I'll point you in the right direction. For account-specific issues, email support@expertini.com.