Downloads · 30 days
0
ayushpahuja/redrob-candidate-ranker
redrob-candidate-ranker is a machine learning model from ayushpahuja. Use it for the machine learning task on the model card, and read the license before you ship it in a product.
This repository generates a ranked CSV of the best 100 candidates from a massive pool of 100,000 candidates. Built specifically for the Redrob Intelligent Candidate Discovery Hackathon, it evaluates engineering profil…
Downloads · 30 days
0
Access
Public
Updated Jun 30, 2026
Repo size
487 MB
Likes
0
Public
Click a slice to open those files.
.jsonl487 MB · 100%
From the Hugging Face model README
This repository generates a ranked CSV of the best 100 candidates from a massive pool of 100,000 candidates. Built specifically for the Redrob Intelligent Candidate Discovery Hackathon, it evaluates engineering profiles against a core Applied ML / Search matching rubric.
This is a strictly offline, high-performance, deterministic ranking engine that processes all candidates and exports the results along with organic, dynamically-generated 1-2 sentence evidence-based reasoning strings.
The system uses a single-pass feature extraction and scoring pipeline to process candidates offline without relying on external network calls or non-deterministic APIs.
features.py) -> Extracts exact text matches, phrase hits, and behavioral flags.scorer.py) -> Evaluates eligibility, assigns titles to classes, and scores depth of skills.submission.csv.The system evaluates candidates using a heavily engineered, multi-layered rubric rather than naive keyword matching:
strong_ml, adjacent_eng, excluded_domain, off_domain).final_score.The competition explicitly includes honeypot candidates. We catch them via consistency_flags and disqualifier_flags:
Vector embeddings (e.g., cosine similarity) are easily fooled by keyword stuffers who copy/paste the JD into their profiles. Our feature engine defends against this:
evidence_source_count to ensure claims are verified across multiple roles/projects rather than concentrated in a single summary section.The system is 100% deterministic. Even the natural language reasoning generation (which features thousands of possible sentence combinations) uses a stable zlib.crc32 hash derived from candidate_id, title_class, and score_bucket to seed the template selection.
This guarantees:
~21 seconds to process and rank all 100,000 candidates.
Complexity is O(N) where N is the number of candidates.
~1.9 GB peak memory. Memory footprint is driven by loading the entire JSON-lines file into an internal array. This is safely under the 16 GB competition limit.
python rank.py \
--candidates candidates.jsonl \
--jd job_description.md \
--out submission.csv
Verify that your submission.csv is fully compliant with the Hackathon's structural specifications:
python validate_submission.py submission.csv
Run the automated test suite to verify internal assertions and logic (requires pytest):
pytest
README.md # You are here
LICENSE # MIT License
requirements.txt # Environment dependencies
Dockerfile # Reproducible environment container
ARCHITECTURE.md # Additional architectural design notes
rank.py # Main orchestrator script
scorer.py # Rules and reasoning template generator
features.py # Keyword extraction and feature engineering
jd_requirements.py # Static taxonomy for the target role
candidate_schema.json # Reference schema for candidate inputs
job_description.md # The specific job description being matched
validate_submission.py # Validates structural integrity of submission.csv
test_features.py # Tests feature extraction logic
test_reasoning.py # Verifies reasoning determinism and diversity
run_audit.py # End-to-end performance and diversity audit
submission_metadata.yaml # Final metadata for submission
.gitignore # Local excludes