jerwinTitus/redrob-ranker
0
Redrob Intelligent Candidate Discovery & Ranking System
Problem Statement
Given 100,000 candidate profiles and a job description for a Senior AI Engineer role, rank the top 100 most suitable candidates using a deterministic scoring pipeline. The system must run within 5 minutes on CPU with ≤16GB RAM and no network access during ranking.
Architecture
candidates.jsonl ──┐
├─→ Feature Extractor ─→ 5-Pillar Scorer ─→ Ranker ─→ submission.csv
job_description.docx┘ │ │
│ │
┌────────┘ │
▼ ▼
Fuzzy Skill Match Honeypot Detector
Career Desc Scan Disqualifier Gate
Must-Have Clusters Composite ScoreScoring Pillars (weights)
Setup
pip install -r requirements.txtPre-computation (run once, no time limit)
python precompute.py --candidates ./data/candidates.jsonl --jd ./data/job_description.docxRanking (≤5 min, CPU, no network)
python rank.py --candidates ./data/candidates.jsonl --jd ./data/job_description.docx --out ./outputs/submission.csvTests
pytest tests/ -vDesign Decisions
- Pillar weights: Skill fit (30%) is highest because the JD is highly technical. Redrob signals (25%) match experience weight because availability is critical for hiring.
- No LLM during ranking: All features are pre-extracted deterministically. Reasoning is template-based using actual candidate data — no hallucination risk.
- Fuzzy matching: Uses rapidfuzz for skill name matching to handle variations (e.g., "Sentence Transformers" vs "sentence-transformers").
- Career description scanning: Catches candidates who have relevant experience but don't list specific keywords in their skills array.
- Honeypot detection: Multi-signal approach (YoE gaps, assessment mismatches, impossible timelines) rather than special-casing.
Compute Environment
- Windows PC, CPU only
- Python 3.11
- 16GB RAM
- No GPU required
AI Tools Declared
- Claude (architecture design, prompt engineering, code generation)
- GitHub Copilot (code completion)
