Skip to content

How we score your resume

Six dimensions modeled around modern ATS and recruiter-screening signals. Five run as deterministic code; one calls a small LLM judge. Weights, signals, and sources are published below — no black box.

6dimensions
90%deterministic
v3.0.0rubric

Six dimensions, with their weights

Each dimension produces a 0-100 sub-score; the overall score is the weighted sum.

Parsing Health

20% of overall score

Deterministic code

Whether modern ATS would extract your resume into structured fields without dropping content. The first thing every recruiter pipeline does — fail this and the rest of the score never gets read.

  • Required sections present (experience, education, skills, summary)
  • Contact completeness (name, email, phone)
  • Date hygiene — every role has parseable start dates
  • Bullet coverage — no role is bullet-empty

Skills Coverage

30% of overall score

Hybrid (code + embeddings)

How many of the job description's required skills your resume actually demonstrates. Two-pass: exact matching first, then embedding similarity to catch paraphrases ("React Native" demonstrated by "iOS app built with Expo").

  • Exact skill matches against required + preferred + keyword lists
  • Semantic matches via voyage-3-large or all-MiniLM-L6-v2 embeddings
  • Threshold validation tracked against a labeled match/non-match set
  • Local fallback semantic matches are marked medium-confidence
  • Curve bent through sqrt to reward marginal coverage in the 50-80% band

Recruiter Searchability

15% of overall score

Deterministic code

The fields recruiters commonly filter on inside ATS dashboards. A resume missing these fields can be harder to retrieve even when the experience is strong.

  • Email, phone, LinkedIn URL, location
  • Most-recent role title (titles drive search rankings)
  • Degree presence for degree-required filters
  • Quantified skills count and year-of-experience parseability

Bullet Impact

15% of overall score

Deterministic code

How well your bullets convey achievement vs. duty. The difference between "responsible for backups" and "cut backup time 60% by migrating to incremental snapshots" is what closes the interview.

  • Quantification rate (bullets containing numbers, %, or $)
  • Action-verb starts against a curated whitelist (the inflated AI-tells like "spearheaded" and "leveraged" are penalized, not rewarded)
  • Length distribution — sweet spot is 8-30 words
  • Cliché penalty — passionate, robust, world-class, etc.

Recruiter Readability

10% of overall score

Deterministic code

Resume-level layout signals for the 7.4-second initial-screening window (per the 2024 Ladders eye-tracking study). Bullet Impact asks "is this bullet good?"; Readability asks "is the resume itself laid out for a 7-second scan?"

  • Bullets per role — 3-6 is the sweet spot
  • Summary length — 30-80 words
  • Role count — 2-6 visible roles before the experience tapers
  • Average bullet length — 12-22 words for fast scanning

Experience Relevance

10% of overall score

Bounded LLM call

A bounded LLM call (claude-haiku-4-5) judges whether your titles, tenure, and seniority match what the job description is actually asking for. The only dimension that uses a model — every other dimension is deterministic code that runs in milliseconds.

  • Title alignment between most-recent role and the JD title
  • Seniority match (junior/mid/senior/staff)
  • Domain overlap (e.g. fintech vs healthcare)
  • Tenure pattern fit

One rubric, three contexts

Each score uses the same six-dimension rubric. The naming makes apples-to-oranges comparisons impossible.

General Resume Score

After upload, no job attached

Industry-agnostic baseline. Skills Coverage and Experience Relevance redistribute their weight across the other four dimensions when no job description is present.

Match Score

After job is attached, before enhancement

The full six-dimension score against this specific job. This is a directional proxy for how retrievable, relevant, and readable your resume is for the requisition.

Enhancement Score

After enhancement runs

The six-dimension score on the enhanced resume. We surface both the original Match Score and the new Enhancement Score so the lift is explicit — and we never ship a regression past the no-op gate.

If we can't improve it, we don't ship it

Enhancement-must-improve gate.

What the gate guarantees

If an enhancement scores more than 3 points below the original, the run is treated as a no-op. You keep your original resume and we surface the regression details so you can try a different mode or a different role.

How it works

The same six-dimension rubric scores both the original and the enhanced resume. If the enhanced score is < original − 3, the pipeline marks the run no-op-due-to-regression and your active resume stays unchanged.

Data, models, and citations

Every external input the rubric depends on, with its license and what we use it for.

O*NET 28.3

CC BY 4.0

Bundled taxonomy for attribution and planned deeper skill canonicalization

Visit

Voyage AI voyage-3-large

Commercial API

Primary embedding backend for semantic skill matching (1,024 dimensions)

Visit

@xenova/transformers all-MiniLM-L6-v2

Apache 2.0

Local fallback embedder when Voyage is unavailable (384 dimensions; semantic matches are medium-confidence)

Visit

Ladders 2024 eye-tracking study

Public research

7.4-second average initial screening time used in Recruiter Readability

Anthropic claude-haiku-4-5

Commercial API

Bounded LLM judge for the Experience Relevance dimension

Visit

This page summarizes the production scoring rubric. We keep source attribution and calibration notes under engineering review as the scorer evolves.

See the rubric on your own resume

Upload a resume and a job description. The Match Score and the dimension breakdown surface in seconds.