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.