Skip to content

Shreyas-135/RESUME-RANKER

Repository files navigation

Resume Ranking Application

Overview

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.

Key Technologies

  • Backend: FastAPI, Flask, MongoDB
  • Frontend: Next.js, TypeScript, TailwindCSS
  • AI/ML: OpenAI GPT models, LangChain
  • Infrastructure: Docker, Nginx, GitHub Actions, AWS

Features

Job Description Analysis

  • 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

Resume Analysis

  • 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

AI-Powered Matching

  • 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

Intelligent Ranking

  • 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

Technical Features

  • 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

Documentation

Detailed documentation on system architecture, API endpoints, and configuration options is available in the User Guide.

Getting Started

  1. Clone the Repository:

    git clone https://github.com/Shreyas-135/RESUME_RANKER
  2. 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
  3. Build and Run:

    cd RESUME_RANKER
    docker compose build
    docker compose up
  4. Access Application:

    • Frontend: http://your-ip-address

Deployment

AWS Deployment

For detailed instructions on deploying to AWS, see the AWS Deployment Guide.

Quick Deploy to AWS EC2

# 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 -d

Access at: http://YOUR_EC2_IP

Development

  • 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

License

This project is licensed under the MIT License.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors