# Job matching explained: scores and skills

> Job matching compares what you have done with what a posting asks for and turns the comparison into a ranking or a score. Two tools disagree because they hold different jobs, read your resume differently, weight the parts differently and treat missing facts differently.

Source: https://zorlya.com/blog/job-matching-explained-scores-skills-and-why-two-tools-give-different-results

By Zorlya. Published 2026-09-21. Research and data. 5 min read.

Job matching compares what you have done with what a posting asks for, then turns the comparison into a ranking or a score. Two tools can give the same resume different results because they hold different jobs, read your resume in different ways, weight the parts differently, and handle missing facts differently. None of those differences is a bug.

Job matching is the step between a pile of postings and a short list. AI job matching is the same step done with models that compare meaning and not only exact words. This post explains the signals behind a score, why scores disagree, and how to read one.

## What is job matching?

Job matching is a ranking problem. The tool has your profile on one side and many postings on the other, and it has to decide which postings come first. To do that it measures some number of signals, each one a different question about the pair.

The common signals are these.

| Signal | Question it asks | What it sees | What it misses |
|---|---|---|---|
| Keyword overlap | Do the same words appear in both? | Exact skills and tools named | Synonyms, and skills described without the keyword |
| Embedding closeness | Is the work described in similar terms? | Meaning, even with different words | Specific facts such as pay, place or years |
| Skills coverage | How many of the required skills do you have? | Named skills on both sides | The depth of a skill |
| Salary and location checks | Does the pay and place fit what you set? | Numbers and rules | Anything the posting leaves out |
| A model's reading | Does the work in the resume resemble the work in the posting? | Context and nuance | Consistency, since models can vary |

A tool that uses only the first row is easy to explain and easy to fool. What matters most is whether a tool tells you which signals it used.

## How do match scores get calculated?

A match score is usually a weighted average of several signals. Each signal gets a value, each has a weight, and the average becomes the number you see.

Zorlya scores four parts from 0 to 100. Resume fit starts from embedding closeness. When you refresh your matches, a model reads the shortlist, and resume fit blends its overall rating (65%) with its rating of the role and field (35%). Skills match counts a skill you have as one, and a skill you lack but have a neighbour for in the same category as 0.4. Salary fit compares the top of the posted range with the floor you set. Location fit reads remote, hybrid or on site against what you said you will take. The default weights are 40%, 30%, 20% and 10%, and each track, meaning each kind of role, carries its own ([how Zorlya scores a job](/blog/how-zorlya-scores-a-job)).

A fifth signal joins at 10% of the total when a posting states a seniority level, scoring how far that level is from the level your experience suggests.

## Why do two job matching tools give different results?

Five choices explain nearly every disagreement.

**They hold different jobs.** A tool can only rank what it reads. If one reads an employer's own system and another reads a copy on a board, the posting may differ in length, date and even wording. Many postings reach a tool more than once, and how duplicates are removed changes what you see ([how Zorlya removes duplicate postings](/blog/how-zorlya-removes-duplicate-postings)).

**They read your resume differently.** One tool takes the file as plain text. Another splits it into passages, one per role and one per skill group, and compares each. The same resume can give different results from these two even with identical jobs.

**They weight the parts differently.** A tool that counts salary heavily will rank a well-paid, loosely matching job above a close fit at a lower rate. Neither is wrong, but it answers a different question.

**They treat missing facts differently.** Most postings publish no salary. Scoring an unknown salary as an average of 50 pulls every score toward the middle. Zorlya leaves a part with nothing to measure out of the total and shares its weight among the parts that measured something. In our own test at the default weights, a job scoring 90, 95 and 100 on the other three parts came out at 84.5 with a neutral 50 and 93.1 with salary left out.

**They use different models.** Embedding models place text differently, and a language model's reading of a shortlisted job can vary.

## What do skills have to do with a match?

Skills are the most checkable part of a match, because both sides name them. Good tools normalise the names first, so "React.js", "ReactJS" and "React 18" count as one skill. After that, coverage is arithmetic: how many of the named skills you hold. Zorlya counts coverage in code, and full coverage scores 100 whatever a model thinks. Partial coverage, after you refresh, also weighs a model's reading of your skills at 30%.

A skill listed without work behind it earns a score it may not deserve, and a posting that names no skills gives the tool nothing to count. Zorlya then starts skills match from 50, since there is nothing to count, and says so. See [listing languages and skills on a resume honestly](/blog/listing-languages-and-skills-on-a-resume-honestly).

## How should I read a match score?

Read a match score as a sorting aid, not a verdict. A short routine helps.

- **Look at the parts before the total.** A high total with a low location part usually means the work fits and the arrangement does not.
- **Read the reason.** A reason should name something from your resume and something from the posting. If it could fit any job, it tells you nothing.
- **Compare tools on the parts, not the totals.** Two totals of 78 and 64 may rest on different weights. The same part scores are easier to compare.
- **Check the posting yourself.** Your own reading of the duties is the final test ([how to read a job posting](/blog/how-to-read-a-job-posting)).

## Questions people ask

### What is a good job match score?

There is no universal threshold, because every tool scales its numbers differently. In Zorlya you can set a minimum score in your matching preferences, and the reasons under a score matter more than the number. Use the score to decide what to read first.

### Does a low match score mean I should not apply?

No. A low score can come from a missing salary, a posting with few skills named, or a location rule you set. Read the parts and the reason. A role with a low total and a strong resume fit may still be worth a cover letter.

### Is AI job matching the same as an ATS ranking?

No. An applicant tracking system stores applications for an employer, and what it does with your resume is set by that employer ([what an applicant tracking system does with your resume](/blog/what-an-ats-does-with-your-resume)). A matching tool works for you, before you apply.

## What we know and what we do not

Zorlya scores four parts plus an optional seniority signal, shows the four parts, and writes a reason for each job it keeps when you refresh your matches. It leaves a part out when it has nothing to measure. We do not know how any other tool weights its parts unless it says so, and we do not claim our order beats theirs. A score is not a prediction of an offer.
