Match Scoring — the Spider Engine
The Spider engine produces a match score for every person–slot pairing across six axes,
each normalized to 0.0–1.0. Three axes are purely deterministic; three blend a deterministic
baseline with an Anthropic Claude assessment. Results are persisted in match_scores and
refreshed on a configurable interval.
The six axes
| Axis | How it's computed |
|---|---|
| Skill match | Proficiency-weighted Jaccard similarity of the slot's required skills against the person's skills. |
| Cost efficiency | 1 − (person_rate / max_rate), plus a bonus when the rate is under target. |
| Availability | Availability status × hours fit, minus a penalty for overlapping active engagements. |
| Culture fit | Company culture-tag overlap (×0.6) blended with a Claude delta (×0.4). |
| Experience | Seniority + proficiency baseline (×0.6) blended with a Claude delta (×0.4). |
| Domain depth | Skill-coverage × proficiency baseline (×0.6) blended with a Claude delta (×0.4). |
Axis weights are not hard-coded — they come from the active scoring configuration, which
platform admins can tune. Because stored scores reflect the weights in force when they were
computed, changing weights causes existing match_scores rows to drift until the next
recompute.
The AI-enhancement layer
The three blended axes call Anthropic Claude (Sonnet 4.5 by default; the model is
selectable via the ai_primary_llm feature flag, which maps only to Anthropic models — the
engine is Anthropic-only).
- Caching. Assessments are cached in
ai_assessments, keyed by(personId, slotId), with a 7-day TTL, so repeated scoring runs don't re-bill the model. - Graceful fallback. When Claude is unavailable, the result is flagged
ai_enhanced=falseand the axis falls back to its pure deterministic baseline — it never blends in an arbitrary placeholder value.
Culture fit (CVF)
Culture fit is grounded in the Competing Values Framework. Both companies and people are profiled across four archetypes, surfaced in the UI as:
| Archetype (CVF) | Product label |
|---|---|
| Clan | Collaborative |
| Adhocracy | Innovative |
| Market | Results-Driven |
| Hierarchy | Structured |
The archetype score is a weighted dot-product of the reference (company/slot) vector and
the person's vector — not a cosine similarity — scaled into a [0.25, 0.95] band, then
reduced by constraint penalties (work mode, travel, clearance, and schedule mismatches). The
per-pairing breakdown is stored in culture_match_breakdowns.
Persistence & refresh
match_scores— the current score per person–slot pairing, with the per-axis breakdown.match_score_history— prior values, so score trends can be charted over time.- Scores are recomputed on a configurable interval and whenever inputs that feed them change.