mochirank / docs /problem.md
DawnOfJustize's picture
Initial HF Spaces deployment (orphan β€” no history)
7a9cfa1
|
Raw
History Blame Contribute Delete
2.08 kB

Problem & Evaluation Mechanics

Part of the MochiRank docs. See architecture/spec.md for the system design.

1. Problem Restatement (Read Between the Lines)

The JD is a 2000-word essay for Senior AI Engineer β€” Founding Team at Redrob AI. The hidden note at the bottom of the JD (for hackathon participants) is the real brief:

"The right answer involves reasoning about the gap between what the JD says and what the JD means. A Tier 5 candidate may not use the words 'RAG' or 'Pinecone' but if their career shows they built a recommendation system at a product company, they're a fit. A perfect-on-paper candidate who hasn't logged in for 6 months and has a 5% recruiter response rate is not actually available."

Four trap types are explicitly built into the 100K dataset:

  • Keyword stuffers β€” skills list has every AI keyword, but career history doesn't support them
  • Plain-language Tier 5s β€” great candidate, zero buzzwords in their profile
  • Behavioral twins β€” near-identical profiles, differ only in redrob_signals
  • ~80 honeypots β€” internally inconsistent profiles (>10% honeypot rate in top-100 = disqualification)

These traps map directly to architectural decisions. Pure embedding cosine similarity fails all four.

2. Evaluation Mechanics (What Actually Scores Points)

composite = 0.50 Γ— NDCG@10 + 0.30 Γ— NDCG@50 + 0.15 Γ— MAP + 0.05 Γ— P@10

50% of the score is the top 10. Find the 5–10 genuinely great candidates out of 100K. Volume of mediocre-middle candidates barely moves the needle. Optimize for precision at the top.

Stage 3 reproduction kills most submissions. Must reproduce inside Docker: 5 min wall-clock, 16 GB RAM, CPU only, zero network. Plan for this from day one.

Stage 4 reasoning checks (if you reach top-N) sample 10 rows and check for: specificity, JD connection, honest concerns, no hallucination, variation, rank-consistency. If reasoning is mechanically derived from the model's actual decision, all 6 checks pass automatically.