Jobspiq
AI & Matching
Engineering
2026-08-12 5 min read

Beyond Keyword Matching: How Jobspiq Matches Engineers to Jobs, and How We Check It

How Jobspiq goes beyond keywords (embeddings, penalties, thresholds), and the results of our weekly evaluation on hand-labelled candidate–job pairs, including its limits.

Jobspiq Engineering
Semantic Search & Machine Learning
#Semantic Search#Vector Matching#Evaluation#Machine Learning
Dataset Scope140 hand-labelled candidate–job pairs (117 scored in the latest run)
TimeframeWeekly runs, 24 August – 12 October 2026
Target GeographyIndia tech jobs
Data through: 12 October 2026 (weekly evaluation run)Last updated: 2026-10-12

Executive Summary & Key Takeaways

  • Keyword search misses near-matches and ranks by word frequency; Jobspiq scores meaning with 768-dimensional embeddings (nomic-embed-text-v1.5), then applies stack, experience and skill adjustments.
  • Stack mismatches cut a score by 45%; each year short of the required experience cuts it by 20%; each matched core skill adds 0.05 and each missing one subtracts 0.10.
  • Jobs below 0.45 are hidden; alerts default to a 0.70 threshold that candidates can set between 0.50 and 0.95.
  • In the latest weekly evaluation (117 labelled pairs), 90% of shown jobs and 88% of alert-level matches were judged relevant, and 14% of hidden jobs were ones a person labelled relevant. Rank correlation was 0.60.

Correction (12 October 2026): an earlier version of this article showed a chart of “match accuracy” percentages and described the weighting of core skills incorrectly. We could not support those figures, so they have been removed and the article rewritten from how the matcher actually works and from our own evaluation results.

Keyword search treats a job as a bag of words. A search for “Python backend” can return a senior distributed-systems role, a data-entry job that mentions Python scripting, and a sales-engineering role, all ranked by how often the words appear. It also misses near-matches: an engineer who has built systems on Pulsar and RabbitMQ is a reasonable fit for a role that names Kafka, but a literal filter will not connect them.

How Jobspiq scores a match

  1. Meaning, not words. Candidate profiles and job postings are turned into 768-dimensional vectors with nomic-ai/nomic-embed-text-v1.5 (using the search_query: prefix for candidates and search_document: for jobs). The closeness of the two vectors is the starting score.
  2. Penalties for the wrong kind of job. When a candidate’s technology stack differs from the job’s and their background does not already cover it, the score is cut by 45% (90% when one side is a corporate or non-engineering track). A domain-compatibility penalty applies when the candidate’s and the job’s domains are far apart.
  3. Experience fit. Each year a candidate is short of the required experience cuts the score by 20% (capped at 85%). Each year of over-qualification cuts it by 18% (capped at 70%).
  4. Skills. Each of the job’s core skills the candidate has adds 0.05 to the score (up to +0.15). Each core requirement they are missing subtracts 0.10 (up to −0.30).
  5. Optional reranking. A cross-encoder (BAAI/bge-reranker-base) can re-score the strongest matches.

Jobs scoring below 0.45 are hidden. Alerts are sent above a threshold that defaults to 0.70 and that each candidate can set anywhere from 0.50 to 0.95.

How we check it

Penalties and thresholds in a matcher are tuned by hand, so we measure them. Each week a scheduled job re-scores a fixed set of hand-labelled candidate–job pairs against the live engine. Each pair was labelled by a person: 3 = should send an alert, 2 = relevant, 1 = borderline, 0 = wrong. The latest run (12 October 2026) scored 117 of the 140 pairs:

  • Shown jobs: 90% of jobs the engine would show were labelled at least borderline relevant.
  • Alerts: 88% of alert-level matches were labelled relevant or better.
  • Missed jobs: 14% of the jobs the engine hid were ones a person had labelled relevant.
  • Rank agreement: the Spearman correlation between engine score and human label was 0.60. Over the eight weekly runs since 24 August it has ranged from 0.60 to 0.71.

What this does and does not show

  • The sample is small. 117 scored pairs can show a regression, but they are not a precise accuracy figure.
  • There is no keyword baseline. We have not run keyword search against the same labelled pairs, so we do not claim a comparison with it.
  • It moves. The score changes week to week as the matcher and the job data change, which is why we track it.

Direct Answers & Core Concepts

What is semantic job matching?

Semantic job matching compares the meaning of a candidate profile and a job posting using vector embeddings instead of exact words, so related skills and phrasing can match even when the keywords differ.

How does Jobspiq check its matching quality?

A weekly job re-scores 140 hand-labelled candidate–job pairs. In the 12 October 2026 run (117 scored pairs), 90% of shown jobs were judged at least borderline relevant and 88% of alert-level matches were judged relevant. The sample is small and there is no keyword-search baseline.

Research Methodology & Sources

A fixed set of 140 hand-labelled candidate–job pairs (labels 0–3) is re-scored weekly against the live matching engine. Shown-job precision counts labels of 1 or more; alert precision counts labels of 2 or more; the missed-job rate is the share of below-threshold jobs labelled 2 or more; Spearman compares engine score with human label.
Primary Data Sources
  • Jobspiq weekly evaluation runs (24 August – 12 October 2026)
  • Matching engine parameters from the production code
Dataset Limitations: Small sample (117 scored pairs). No keyword-search baseline was run, so no comparison is claimed. Results change as the matcher and job data change.

Cite this Research & Open Datasets

Open Access (CC BY 4.0)

Journalists, researchers, and engineers may freely cite this dataset and findings with attribution to Jobspiq.

Jobspiq Engineering. (2026). Beyond Keyword Matching: How Jobspiq Matches Engineers to Jobs, and How We Check It. Jobspiq Research & Market Intelligence. https://jobspiq.in/blog/why-keyword-search-fails-engineering-hiring
Underlying Aggregated Dataset:

Frequently Asked Questions

It matches literal words, so it can rank unrelated roles that mention a skill and miss near-matches that use different names for similar technology.

See how Jobspiq matches opportunities to your profile

Upload your resume to test 768D semantic resonance scoring against thousands of verified engineering roles.

Test Semantic Matching

Related Research & Guides

View all insights