How Sonder scores

A score you can
reason with.

Four components, visible weights, and the CV evidence behind every recommendation. A starting point for your judgement.

Arjun Mehta · fictional sample
Senior Backend Engineer requirement

Every point accounted for

40 + 17 + 20 + 5 = 82.

  • Must-have skills40%40 / 40

    All three must-haves (java, spring boot, microservices) found in the CV, each with a line to point at.

  • Role match30%17 / 30

    57% similar on title, skills and context, compared field by field inside Sonder.

  • Experience fit20%20 / 20

    Seven years against the 5 to 9 the JD asks for. He meets the minimum, so full marks.

  • Nice-to-haves10%5 / 10

    kafka is evidenced, aws is not. Half the credit at the default weight. Read any must-have gaps alongside the total.

Each component earns a share of its weight. The four earned contributions add up to the fit %. Defaults: 40 · 30 · 20 · 10.

What the verdict bands mean

Verdict bands

Illustrative arithmetic. Compare candidates within a role, not across two roles.

Try it

Your role. Your priorities.

Change what matters for this role and see how Arjun's sample score responds. His CV stays the same; only the relative weights change.

Scoring weights for this job

Total 100 · renormalised
40%

Arjun scores 100% here · earns 40.0

30%

Arjun scores 57% here, rounded · earns 17.0

20%

Arjun scores 100% here · earns 20.0

10%

Arjun scores 50% here · earns 5.0

AM
Arjun MehtaSenior Java Developer · sample
82%
Strong match

At the default weights

How the fit is calculated at the current weights
PartWeightArjunEarns
Must-have40.0%100%40.0
Role match30.0%57%17.0
Experience20.0%100%20.0
Nice-to-have10.0%50%5.0
Fit100%82.0

Illustrative sample: 40 + 17 + 20 + 5 = 82 at default weights. Role match displays as 57% after rounding; calculations use 17/30. Only the weights move here. In the product, save the weights, then re-screen to apply them.

See the real job-weight controls
Job workspace · Scoring weightssonderai.in
Per-job scoring weights in Sonder: must-have skills 40, role match 30, experience 20, nice-to-have 10, auto-normalised to a total of 100 (sample data)
The same control in the product: four sliders, a total that always reads 100, and the years wanted beside them. Real Sonder screen · sample data
The rules, in the open

Read what each part checks.

The percentages below are the defaults. Open a component for its rules, examples and edge cases.

40%Must-have skillsCan the CV support the required skills?

40%Must-have skills

Deterministic, not statistical.

Every must-have in the JD is checked against the CV through a skill vocabulary that knows java is not javascript. No neural network is involved in this part: a skill is either evidenced or missing, and you get the same result on every run.

The details that matter

  • Core skills count double: the ones the role centres on weigh more than the supporting stack.
  • A hard “no X” in your brief is a visible penalty, −10 per hit and capped at 20. Never a silent one.
  • Your words, not a generic parser. Workspace aliases map team and client jargon to the standard skill before scoring.
  • About 160 curated skills, including enterprise platforms such as Oracle CPQ, Workday, SAP and ServiceNow.
Workspace · Skill vocabularysonderai.in
Teach the engine your clients' jargon: sb maps to spring boot, k8s to kubernetes, core banking to banking domain (sample data)
Map “k8s” to Kubernetes once and every match understands it. Real Sonder screen · sample data
30%Role matchDoes the work resemble this role?

30%Role match

Semantic, field by field.

A language model running inside Sonder, not a cloud AI service, compares the JD with the CV in three separate passes: title with title, skills with skills, and context with the CV body. Field by field is deliberately harder to fool than one document-to-document comparison.

The details that matter

  • Weighted inside the part: 35% title, 40% skills, 25% context.
  • It catches what keywords miss. An SDE-2 matches a “Software Development Engineer” JD. A sales development rep does not.
  • The model is bge-small-en-v1.5 on ONNX, running in-process on our servers.
  • If it ever can't load, matching falls back to TF-IDF, still inside Sonder, and the workspace shows a banner. It never falls back to an API.

Three passes, one score

Inside Sonder
  • Title title35%
  • Skills skills40%
  • Context CV body25%

The JD asks for a Software Development Engineer

CV titleSDE-2Same role
CV titleSales Development RepNot the role

Shared letters don't make a match. Shared meaning does.

20%Experience fitDoes the tenure meet the requirement?

20%Experience fit

Published rules. All of them.

No hidden seniority heuristics. Meets the minimum: full marks. Below it: proportional credit, not a cliff. What you read on this page is the whole rule.

The details that matter

  • Unknown years score a neutral 0.5. Unknown is not treated as unqualified.
  • More than four years over the stated maximum scores 0.75. You can inspect the years and judge whether that range fits the role.
  • No minimum in the JD: full marks for everyone, and the card says “not stated” rather than showing 100%.

The JD wants 5 to 9 years

Credit by years

Shaded: the range the JD asks for. The years box sits beside the weights on every job.

10%Nice-to-havesWhat adds useful extra evidence?

10%Nice-to-haves

A small weight, on purpose.

Preferred skills get the same vocabulary check as must-haves. At default weights, they contribute up to 10 points, compared with 40 for must-haves. The score is additive, so extra points can offset a gap numerically. The missing requirement stays visible for you to review.

The details that matter

  • If the JD lists none, this part drops to zero weight. A skill the JD never asked for is never free credit.
  • Every job can reweight all four parts. Try the weights.

Arjun's nice-to-haves

5 of 10
kafka

“Event-driven refunds pipeline on Kafka.”

CV · line 15Evidenced
aws

No supporting line in the CV.

Not evidenced

What each list can be worth, at default weights

Must-haves40
Nice-to-haves10

At default weights, nice-to-haves add at most 10 points. A higher total does not mean every must-have is evidenced; review the gaps before deciding.

When the JD leaves something out
Evidence, not keywords

Every claim points to a CV line.

For each matched skill, Sonder shows the line of the CV that supports it. Unmatched must-haves show up as gaps, and a row that hasn't been checked yet says “evidence pending” rather than pretending.

The line in the CV
“Migrated 14 services to Spring Boot 3, cut p95 latency 40%.”

Arjun Mehta · sample CV, line 9

The reason in the review

Spring Boot is evidenced.

A project, an action and a result support the skill. AWS has no supporting line, so it stays a gap to probe.

Read the full annotated example →
Read the full annotated sample CV
Arjun Mehta
Senior Software Engineer · Bengaluru · sample CV
Java developer, 7 years building production services1, most recently on payments.
1Experience fit✓

7 years against 5 to 9 wanted. Meets the minimum: 20 of 20.

Experience
Senior Software Engineer2, Ledgerline (sample)2021 – present
2Role match

Title, skills and context compared field by field against “Senior Backend Engineer — Payments”, inside Sonder: 17 of 30.

Built settlement services in Java 17 handling 2M transactions a day3.
3Must-have · java✓

Evidenced on CV line 6.

Owned reconciliation for the payments API and its on-call rota.
Took part in service design reviews4.
4Main gap · system design

System design depth needs an interview. A gap to ask about, never a reason to hide him.

Migrated 14 services to Spring Boot 3, cut p95 latency 40%5.
5Must-have · spring boot✓

Evidenced on CV line 9, with a measured result.

Software Engineer, Brightwell Lending (sample)2019 – 2021
REST services and PostgreSQL for a lending platform.
Split the monolith into 9 microservices behind an API gateway6.
6Must-have · microservices✓

Line 12. Three of three must-haves evidenced: 40 of 40.

Wrote the integration tests for the loan-disbursal flow.
Projects
Event-driven refunds pipeline on Kafka7.
7Nice-to-haves · kafka✓ aws

kafka on line 15. aws has no supporting line: 5 of 10.

Skills
Java · Spring Boot · Microservices · Kafka · PostgreSQL · Docker
40 must-have17 role20 experience5 nice82% Strong match

Authored sample CV, fictional. The notes illustrate how CV evidence supports each component.

The evidence travels with the ranking.

On the shortlist, every candidate carries one line of proof and the main gap, so the order explains itself before you open anyone.

Job workspace · Shortlistsonderai.in
Ranked shortlist: each candidate shows a fit score, one line of CV proof, the main gap and a keep-or-pass decision (sample data)
“Every % below is scored against this JD's 3 must-haves.” Real Sonder screen · sample data
Learning with limits

Feedback stays accountable.

Your workspace can learn from decisions. Adjustments are capped, visible and reversible; they never turn into a hidden rejection rule.

See how feedback and evidence calibration work
The part you can hold us to

Four guarantees, one honest limit.

What the score promises, what it leaves to you, and where it is weakest.

01

Every score shows its evidence, or says it does not have it yet.

Each matched requirement cites the CV line that produced it. In large pools, ranking runs ahead of line-by-line checking: rows beyond the full-screen cap are labelled evidence pending, on your screen and your client's. You are never shown a citation that wasn't computed.

02

The score orders attention. It never decides.

There is no auto-reject, no auto-advance and no hiding. The ranked list is where a recruiter starts reading, not where a candidate stops existing.

03

Feedback tunes it, within limits.

Your 👍/👎 and your clients' verdicts nudge per-skill weights for your workspace only: capped at ±5 points per candidate, visible on the dashboard, and undone if the feedback is cleared.

04

AI narration never writes the score.

The number comes from the skill vocabulary, the in-house role model and the published rules. Optional AI narration can change how a read is worded, never how candidates rank.

The honest limit

Where it is weak, we say so.

Adjacent roles on the same platform, such as a Benefits consultant and a Payroll consultant, can look similar to the semantic part. That is why hard requirements are deterministic and cited, and why the final call is yours.

“The score is a starting point for your judgement, not a replacement for it.”

Data path

Where the scoring runs.

Matching and scoring run inside Sonder, on our servers. CVs are never sent to an AI provider for scoring.

Data path readout

Illustrative here
Matching engine
Local embeddings · bge-small-en-v1.5 on ONNX, in-process. CVs are never sent to an AI provider for scoring.
Inside Sonder
Skill check
A deterministic vocabulary of about 160 curated skills, plus your workspace's aliases.
Inside Sonder
If the model can't load
TF-IDF, still inside Sonder, with a banner in the workspace. Never an API.
Inside Sonder
Narrative layer
Evidence-grounded templates. Optional AI narration is off by default: only a workspace owner can switch it on, and every switch and cloud call is recorded in the decision ledger.
Owner's switch

This is an illustrative explanation of the scoring path, not a live system-status readout.

Narration never sets the score. Turning narration off changes wording, never ranking.

Clients see what you reveal. Shortlist links are anonymised and revocable.

Isolated by workspace. Every query is scoped to yours.

Judge it on your own roles.

The fastest way to test a scoring formula is to run it against a requirement you know cold, and read the evidence it shows you.

14 days free. No credit card required. Sign up with Google or email.