This project is an AI-powered candidate ranking system that allows users to upload candidate data, configure ranking criteria, and receive stack-ranked results using OpenAI's GPT models. The system is built with a Flask backend and a modern HTML/JS frontend.
- Upload candidate data via CSV
- Use sample candidate data for demo/testing
- Configure ranking criteria weights (academic degree, rank score, age)
- Optionally provide a job title and job description for context-aware AI ranking
- AI-powered ranking and justification for each candidate
- Download ranked results as CSV
- Responsive, modern UI
candidate-ranking-system/
│
├── backend/
│ ├── app.py # Flask application
│ ├── ranking_engine.py # LLM ranking implementation
│ ├── prompt_templates.py # Structured prompts for the LLM
│ ├── document_processor.py # Resume processing functionality
│ ├── utils.py # Helper functions
│ └── requirements.txt # Dependencies
│
├── frontend/
│ ├── static/
│ │ ├── css/
│ │ │ └── main.css
│ │ └── js/
│ │ └── main.js
│ └── templates/
│ ├── index.html
│ └── results.html
│
├── uploads/ # Uploaded and processed files
├── results/ # (Optional) Output results
└── README.md
- Create a virtual environment
python -m venv .venv .venv\Scripts\activate # On Windows source .venv/bin/activate # On Mac/Linux - Install dependencies
pip install -r backend/requirements.txt - Set your OpenAI API key
- Create a
.envfile in the project root with:OPENAI_API_KEY=sk-...
- Create a
No build step is required. The frontend is served by Flask from the frontend/templates and frontend/static folders.
From the project root, run:
python -m backend.app
Then open http://127.0.0.1:5000 in your browser.
- Clone or download this repository.
- Set up your Python virtual environment and install dependencies:
python -m venv .venv .venv\Scripts\activate # On Windows # or source .venv/bin/activate # On Mac/Linux pip install -r backend/requirements.txt - Set your OpenAI API key:
- Create a
.envfile in the project root with:OPENAI_API_KEY=sk-...
- Create a
- Start the backend server:
python -m backend.app - Open your browser and go to: http://127.0.0.1:5000
- Upload a CSV with candidate data (columns: candidate_name, age, academic_degree, rank_score), or use the sample data.
- Configure ranking parameters:
- Set job position (required)
- Optionally provide a job description for more context-aware ranking
- Adjust weights for academic degree, rank score, and age
- Set degree values if needed
- Click "Rank Candidates" to get AI-generated rankings and justifications.
- View and export results on the results page.
- You can add more criteria or change the prompt in
backend/prompt_templates.py. - The backend is designed to be extensible for more advanced resume parsing or additional AI features.
- Python 3.10+
- OpenAI API key
MIT License