This repository contains:
- AI Recruiter RAG & Relation spiderweb dashboard (Next.js & FastAPI backend).
- Redrob Hackathon Candidate Discovery Ranker (CLI tool reproducing candidate matching).
Organizers can run our two-stage ranking pipeline end-to-end with the following command:
python run_challenge.py --candidates ./data/candidates.jsonl --out ./data/challenge_submission.csvFull verification (rank → validate → honeypot-in-top-100 audit → optional determinism check):
python verify_submission_full.py --candidates ./data/candidates.jsonl --check-determinismOr via shell script:
bash scripts/verify_submission.sh --check-determinism| Check | How to verify |
|---|---|
| One-command replication | python run_challenge.py --candidates ./data/candidates.jsonl --out ./data/challenge_submission.csv |
| Format validation | python validate_submission.py ./data/challenge_submission.csv |
| Honeypot defense | python verify_submission_full.py --skip-run (audits top-100) |
| Determinism | python verify_submission_full.py --check-determinism |
| Docker sandbox | docker build -t team-ranker . then mount /data volume |
Architecture: Stage 1 streams 100k JSONL and keeps top 2,000 by keyword heap; Stage 2 applies honeypot/consulting filters, technical fit × behavioral multiplier, deterministic candidate_id tie-break, and profile-grounded reasoning.
- Time Limit: Completes in ~5–6 seconds wall-clock on the 100,000-candidate pool (organizer sandbox allows 5 min).
- Memory: Uses
< 20 MB RAMdue to streaming. - Offline / CPU-only: No network requests or GPU requirements during execution.
- Determinism: Equal scores are tie-broken alphabetically using
candidate_idascending. - Trap Defenses: 0% honeypot rates in the top-100 output.
- Python 3.10+
- Node.js 18+
Create a virtual environment and install the required modules:
python -m venv venv
venv\Scripts\activate # On Windows
pip install -r requirements.txtCreate a directory junction pointing to the official challenge downloads directory:
# On Windows cmd
mklink /j challenge_assets "C:\Path\To\India_runs_data_and_ai_challenge"You can build and run the pipeline in a CPU-locked, offline container to verify reproducibility:
-
Build Container:
docker build -t team-ranker . -
Execute Ranking: Mount your local data directory and run the container:
docker run --rm -v "C:\Users\rentk\Downloads\semantic-job-tracker\data:/data" team-ranker --candidates /data/candidates.jsonl --out /data/challenge_submission.csv
Our visual sandbox dashboard allows you to execute the ranker, view logs live, inspect honeypot counts, and browse the validated ranked candidate list in a premium dark-slate UI.
-
Start FastAPI Backend:
venv\Scripts\python.exe -m src.main
(Runs on
http://127.0.0.1:8000) -
Start Next.js Frontend:
npm run dev -- -p 3001
(Runs on
http://127.0.0.1:3001) -
Open
http://localhost:3001in your browser and switch to the "🏆 Hackathon Arena" tab.
We utilize a Two-Stage Ingestion Pipeline to score 100,000 candidate profiles under 5 seconds:
Streams the JSON-Lines candidate file line-by-line (avoiding reading 500MB into memory at once). A fast keyword calculator matches core tech skills (like vector, embeddings, retrieval) to index and extract the top 2,000 candidates in a min-heap.
-
Honeypot Excluder: Rejects profiles displaying logical contradictions:
- Stated experience years
$<$ 3 but title contains"Principal","Director","Lead", or"Architect". - Expected salary range is negative or invalid.
- Stated notice period is anomalous or
$>$ 180 days. - Impossible skill duration (skill months exceeding total experience months).
- Keyword stuffing (advanced/expert proficiency with 0 months used).
- Worked at a company before its founded year.
- Stated experience years
-
IT Services Blacklist: Rejects candidates who have strictly worked at IT services firms (
TCS,Infosys,Wipro, etc.) without product company experience. - Technical Fit Score (70%): Evaluates experience years (5–9 target) and specific vector search (Pinecone, Milvus, Qdrant, FAISS) and eval framework competencies.
- Behavioral Signal Score (30%): Applies multipliers based on notice period, login freshness, recruiter response rate, and location (Noida/Pune or Tier-1 relocation willing).
-
Deterministic Tie-breaking: Sorts descending by final score, breaking ties alphabetically by
candidate_idascending. - Descriptive Reasoning: Formulates 1-2 sentence profiles using real fields to avoid template patterns.
Terminal 1 — Backend
venv\Scripts\activate
venv\Scripts\python.exe -m src.mainBackend runs at http://127.0.0.1:8000
Terminal 2 — Frontend
npm install
npm run dev -- -p 3001Frontend runs at http://localhost:3001
Open http://localhost:3001 in your browser.
First time only — install Python deps:
python -m venv venv
venv\Scripts\activate
pip install -r requirements.txtLoad the 100k candidate pool (optional, for the spiderweb graph):
venv\Scripts\python.exe ingest_candidates_pool.pyThen go to Skill Spiderweb Graph tab, type a search query, and click Filter Graph.
Applicant Resume Ranker tab (deferred): paste a job description, upload 1–3 PDF resumes, receive a 0–100 fit score and version comparison. This targets job seekers (YouTube masterclass flow), not the recruiter/hackathon ranker built here.