rakeshhhhhhhh/India_runs_challenge_RETRO
0
India Runs Challenge - Team RETRO
This repository contains the candidate ranking pipeline developed for the India Runs Challenge. The system filters candidate profiles, processes experience trajectories, and ranks the top 100 candidates based on a machine learning ensemble.
Architecture
The ranking pipeline consists of:
- Filtering (Stage 1): Removes candidates with under 4 years of experience and filters out honeypot resumes with timeline inconsistencies.
- Feature Extraction (Stage 2): Extracts 78 signals covering career history, specialized technical skills (LLMs, RAG, Vector DBs), and company types (product vs. consulting).
- ML Ensemble (Stage 3): A soft-voting ensemble of XGBoost, LightGBM, and CatBoost models.
- Scoring & Sorting (Stage 4): Computes class probabilities and assigns a final ranking with factual, non-hallucinated reasoning.
- Fallback (CTAE): A pure-Python fallback mechanism that automatically executes if model or library imports fail.
Repository Layout
Mywork/
├── data/
│ └── candidates.jsonl # Input candidate profiles
├── models/
│ ├── ensemble_model_validated.pkl # Trained voting ensemble model
│ ├── scaler_validated.pkl # Trained feature normalizer
│ └── selector_validated.pkl # Feature selector mapping
├── output/
│ └── submission.csv # Final ranked candidate list
├── src/
│ ├── main.py # Main entrypoint script
│ ├── common/ # Configs, dataloader, logging, validation
│ ├── ctae/ # Fallback pure-Python ranker
│ └── shre/ # Pipeline stages
├── README.md # Project documentation
├── requirements.txt # Dependencies
└── submission_metadata.yaml # Team metadataSetup & Running
Installation
pip install -r requirements.txtRun the Pipeline
To run the ranking engine and generate the submission file:
python -m src.main data/candidates.jsonl output/submission.csvRun Verification Suite
To verify the pipeline execution and fallback path:
python test_pipeline.pyLaunch Interactive App
To run the Streamlit dashboard app locally:
streamlit run sandbox/app.py