CV screening

For HR administrators

CV screening is the first place AI touches a candidate's record. Understanding what it does well, what it does badly, and where to override it is the difference between a useful filter and a flat-headed mistake.

What the screening does

Two outputs per candidate:

  • A match score — a deterministic 0-to-100 number. The score is computed by mapping competencies extracted from the CV to the role's required competencies, weighting each by the level required, and normalising. Same inputs always produce the same number.
  • A narrative — a short paragraph generated by the model summarising fit. The narrative is advisory; the score is what drives the auto-advance threshold.

Both appear on the candidate's PipelineEntry and on their 360° profile.

Alongside the score and narrative, the entry stores a per-competency breakdown (screeningBreakdown) split into technical (rated 1-5) and general (rated 1-3) competencies. Each row shows the candidate's evidenced level vs. the level required by the role, so you can see which competencies moved the score before you open the CV.

For pipelines where per-competency required levels are not yet defined on the Job Description, screening still runs — it assumes a default required level of 3 for technical competencies and 2 for general competencies. The breakdown reflects those defaults until required levels are set on the Job Description.

What the score is not

It is not a hire/no-hire signal. It is not a competence rating. It is a CV-to-role-competencies overlap score — useful for ranking applications when you have hundreds, useless as the sole basis for a hiring decision.

A 90 means the CV mentions, with reasonable evidence, the competencies the role requires. A 40 means it does not. Neither tells you whether the candidate can actually do the work — that is what assessments are for.

Two thresholds: auto-advance and auto-reject

Each workspace has two screening thresholds, both configurable from /{slug}/app/settings/hire/automation:

  • autoAdvanceThreshold (default 70) — if the score is at or above this value, the candidate auto-advances APPLIED → SCREENED.
  • autoRejectThreshold (default 30) — if the score is at or below this value, the candidate auto-rejects APPLIED → REJECTED (the rejection-stage email fires).

Scores between the two thresholds stay at APPLIED for human review. The reject threshold must be strictly lower than the advance threshold; the settings API enforces this. Either can be disabled independently — disabling auto-advance keeps every candidate at APPLIED; disabling auto-reject keeps low scorers visible at APPLIED instead of dropping them.

This is a productivity affordance, not a decision rule. Lower the advance threshold to surface more candidates for review; raise the reject threshold to drop more noise automatically.

When screening can't produce a score

Auto-reject acts on the score, never on the absence of one. If screening cannot produce a usable score — an unreadable or scanned PDF, a parse that yields too little text, an AI/quota failure — the candidate is recorded as unscreened (cvParseStatus: FAILED, no score) and left at APPLIED. No auto-advance, auto-reject, or auto-assign fires, because every automatic stage move requires a real score.

This is deliberate: a CV the platform couldn't read is not a 0, and a candidate must never be silently rejected because their file failed to parse. Unscreened candidates surface in the pipeline at APPLIED for you to review by hand — open the CV yourself, or hit re-screen on the candidate's detail page to try the screening again (a manual re-screen always runs and is never capped).

The same rule applies to trainer screening — see Posting & screening.

Assessment auto-assign

A separate workspace setting at /{slug}/app/settings/hire/automation controls whether passing screening automatically assigns the position's assessment battery:

  • Toggle — the master switch for the whole feature. When off, no assessments are auto-assigned, even when an admin manually moves a candidate to SCREENED; you assign them by hand.
  • Threshold (autoAssignThreshold, default 70) — when on, a candidate whose screening score is at or above this value is treated as having passed: they advance APPLIED → SCREENED → ASSESSMENT and the matching assessments are assigned.

This threshold is independent of autoAdvanceThreshold. Clearing the auto-assign bar is itself a pass, so it can advance a candidate even below the auto-advance number. The numeric threshold applies only to the automatic CV-screening path; when an admin manually moves a candidate to SCREENED, the toggle alone decides whether assessments are assigned.

What the narrative is good for

The narrative is a 60-second briefing on a candidate before you open the CV. It usually:

  • Names the most relevant prior roles.
  • Calls out the strongest match against required competencies.
  • Flags the largest gap.

It is not a substitute for reading the CV when you intend to shortlist. It is a triage tool.

When to override

Override the auto-advance — by manually moving a candidate up or down stages — when:

  • The CV is short or unconventional. Strong candidates whose CV is non-standard (sabbaticals, founders, returners) often score low because there is less text to extract from.
  • The score is in the 60–80 band where the platform's signal is least reliable. Read these manually.
  • The candidate has shipped publicly visible work — open-source repos, published research, public products — that does not appear in the CV.

You can also reject a candidate at any stage manually. Rejection sends the rejection-stage email; if you want to reject silently (not send an email), do it from the candidate's detail page with the Reject silently option.

Next

With candidates in the pipeline, the next page covers working the pipeline itself — the Kanban view, drag-drop, bulk actions, and the stage emails.