How Teamcast Measures

How scoring works

Two layers: an LLM extracts and cites evidence; a deterministic 13-stage pipeline turns that evidence into coverage. No LLM ever sets a score.

Scoring is split so that judgement and arithmetic never mix. A language model is used in exactly one place — reading the transcript and extracting cited evidence. Everything after that is pure, deterministic math: the same transcript and the same ontology version always produce the identical result, bit for bit.

Layer 1 — evidence extraction (the only LLM step)

For each target signal, the model decides whether the transcript provides evidence and, if so, extracts a citation — the candidate's exact words — and scores two sets of components:

Quality dimensionsspecificity, quantification, causal_clarity, structural_completeness: how substantial the answer is.

CRISP confidenceepistemic_weight, cit_completeness, explanation_stability, anchor_density, attribution_clarity: how confident we can be that the evidence really demonstrates the signal.

Extraction is fail-closed: a citation to an utterance that does not exist in the transcript is rejected and re-prompted. The first attempt runs at temperature 0 (deterministic and reproducible); a retry only nudges the model when its output failed validation.

The deterministic 13-stage pipeline

The scoring engine turns those evidence components into per-signal strength and rolls it up to coverage. Every stage is pure math — no LLM, no randomness, bit-reproducible.

StageWhat it does
S5 · qualityCombine the four quality dimensions into a quality score for the evidence unit.
S6 · dedupDrop near-duplicate evidence (cosine > 0.85) — retelling one story cannot inflate a signal.
S7 · CRISPCombine the five CRISP components into a confidence for the evidence unit.
S8 · typingTag the evidence as one of the 45 evidence types (which signal it speaks to).
S9 · contributioncontribution = confidence × quality × mapping_weight.
S10 · signal strengthsignal_strength = max(contributions) — the single best demonstration establishes the signal.
S11 · sub-dimensionΣ(signal_strength × signal_weight) × rubric × (0.5 + 0.5 × coverage).
S12 · role rollupΣ(sub_dim_score × sub_dim_weight) × role importance (bounded 0.7–1.6).
S13 · outputProduce the per-competency detail and the coverage_summary.
S14 · highlightsSurface the strongest behavioral episodes and the thinnest sub-dimensions — with citations.

Stages S1–S4 are the extraction and typing front-half (Layer 1 above); the deterministic engine owns S5–S10 and the rollup + narrative stages S11–S14.

Best demonstration wins

Aggregation is max(), not an average: one strong, well-evidenced demonstration establishes a signal. A candidate is not penalized for not repeating themselves, and padding an answer with weak restatements does not help — deduplication removes it first.

From scores to coverage

The rolled-up numbers are converted into coverage — sufficient, partial, or insufficient — per sub-dimension and overall, with the gaps named. This is the deliverable a recruiter reviews.

coverage_summary (excerpt)
{
  "overall_coverage": "partial",
  "gap_competencies": ["leadership"],
  "covered_count": 5,
  "total_count": 6
}

See Coverage & the deliverable for the full shape.

Auditable, and never a verdict. Every number traces back to cited evidence, and the same input always reproduces the same output. Scoring never runs during a live interview, and it never emits a hire / no-hire label or any emotion signal — it produces coverage for a human to decide on.
Was this page helpful?