Skip to main content

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

AxisHow it's computed
Skill matchProficiency-weighted Jaccard similarity of the slot's required skills against the person's skills.
Cost efficiency1 − (person_rate / max_rate), plus a bonus when the rate is under target.
AvailabilityAvailability status × hours fit, minus a penalty for overlapping active engagements.
Culture fitCompany culture-tag overlap (×0.6) blended with a Claude delta (×0.4).
ExperienceSeniority + proficiency baseline (×0.6) blended with a Claude delta (×0.4).
Domain depthSkill-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=false and 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
ClanCollaborative
AdhocracyInnovative
MarketResults-Driven
HierarchyStructured

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.