The Resume Ranking Application is an AI-powered recruitment tool that leverages Large Language Models (LLM) and advanced NLP techniques to automatically evaluate, analyze, and rank resumes based on job requirements. Built with FastAPI, Next.js, and OpenAI's GPT models, it provides intelligent candidate-job matching with detailed scoring and analysis.
- Backend: FastAPI, Flask, MongoDB
- Frontend: Next.js, TypeScript, TailwindCSS
- AI/ML: OpenAI GPT models, LangChain
- Infrastructure: Docker, Nginx, GitHub Actions, AWS
- Intelligent JD Parsing:
- Extracts key requirements, skills, and qualifications using LLM
- Structures data into standardized format for matching
- Supports multiple languages through GPT's multilingual capabilities
- Average processing time: 3 seconds
- Advanced CV Processing:
- Handles PDF and Word documents
- Extracts and structures candidate information using LLM
- Identifies skills, experience, and qualifications
- Supports multilingual resumes
- Average processing time: 5-10 seconds
- Sophisticated Matching Algorithm:
- Uses LangChain for orchestrating complex LLM operations
- Function calling for structured data extraction
- Semantic understanding of job requirements and candidate qualifications
- Many-to-many relationship support
- Average processing time: 3-5 seconds
- Smart Evaluation System:
- Generates detailed match analysis using GPT models
- Provides scoring based on multiple criteria
- Offers AI-generated feedback and comments
- Ranks candidates based on overall fit
-
FastAPI Integration:
- Async request handling
- Automatic API documentation with Swagger UI
- Type validation with Pydantic models
-
LangChain Implementation:
- Custom prompt engineering
- Structured output parsing
- Chain of thought reasoning
-
OpenAI Function Calling:
- Structured data extraction
- Consistent output formatting
- Enhanced control over LLM responses
Detailed documentation on system architecture, API endpoints, and configuration options is available in the User Guide.
-
Clone the Repository:
git clone https://github.com/Shreyas-135/RESUME_RANKER
-
Configure Environment:
- Set up OpenAI API key:
# analysis_service/.env OPENAI_API_KEY="your-key"
- Configure frontend API URL:
# frontend/.env.production NEXT_PUBLIC_API_URL=http://<your-ip-address>/backend
- Set up OpenAI API key:
-
Build and Run:
cd RESUME_RANKER docker compose build docker compose up -
Access Application:
- Frontend:
http://your-ip-address
- Frontend:
For detailed instructions on deploying to AWS, see the AWS Deployment Guide.
# On your EC2 instance (Ubuntu 22.04)
git clone https://github.com/Shreyas-135/RESUME_RANKER
cd RESUME_RANKER
cp analysis_service/.env.example analysis_service/.env
cp backend/.env.example backend/.env.local
cp frontend/.env.example frontend/.env.production
# Edit .env files with your configuration
nano analysis_service/.env # Add OPENAI_API_KEY
nano backend/.env.local
nano frontend/.env.production # Set your EC2 IP
# Deploy
docker-compose build
docker-compose up -dAccess at: http://YOUR_EC2_IP
-
Code Quality:
- Ruff for Python linting
- ESLint for TypeScript/JavaScript
- Pre-commit hooks for code formatting
-
Testing:
- Unit tests with pytest
- Integration tests for API endpoints
- Frontend testing with React Testing Library
-
CI/CD:
- Automated testing with GitHub Actions
- Docker image builds
- Deployment automation
This project is licensed under the MIT License.