Skip to content

Latest commit

 

History

42 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Resume Optimizer

An intelligent, AI-powered resume analysis and optimization platform designed to help job seekers maximize their chances of success in the modern hiring process. The application provides comprehensive ATS compatibility scoring, semantic job matching, AI-driven content improvement, and automated resume tailoring.

Overview

Resume Optimizer bridges the gap between candidate resumes and job requirements by leveraging advanced natural language processing and machine learning techniques. The platform analyzes resumes against job descriptions to provide actionable insights, identify gaps, and generate improved content that resonates with both Applicant Tracking Systems (ATS) and human recruiters.

Key Features

ATS Compatibility Analysis

  • Keyword Matching Engine: Multi-strategy keyword extraction and matching algorithm that identifies critical terms from job descriptions
  • Scoring System: Intelligent scoring with boost mechanisms for strong matches (60%+ keywords matched)
  • Gap Analysis: Identifies missing keywords and skills with actionable recommendations
  • Density Metrics: Calculates keyword density to optimize resume content balance

Semantic Job Matching

  • TF-IDF Based Similarity: Uses Term Frequency-Inverse Document Frequency for accurate content matching
  • Jaccard Similarity: Measures overlap between resume and job description keywords
  • JD Coverage Analysis: Evaluates how well the resume addresses job requirements
  • Intelligent Boosting: Applies contextual score adjustments based on match quality

AI-Powered Content Optimization

  • Bullet Point Rewriter: Transforms weak resume statements into impactful achievement descriptions
  • Auto-Editor: Interactive suggestion system for selective content improvement
  • LaTeX Generation: Produces professionally formatted resume documents from optimized content
  • Persona-Based Feedback: Simulates recruiter perspectives (Standard, FAANG, Startup, HR)

Skill Gap Roadmap

  • Missing Skills Detection: Identifies technical and soft skills mentioned in JD but absent from resume
  • Nice-to-Have Analysis: Differentiates between critical requirements and preferred qualifications
  • Learning Resources: Provides curated recommendations for skill development
  • Timeline Estimation: Suggests realistic timelines for acquiring missing skills

Red Flag Detection

  • Automated Scanning: Identifies common resume issues that deter recruiters
  • Categorized Warnings: Groups flags by severity (critical, warning, info)
  • Buzzword Detection: Flags overused generic terms and suggests specific alternatives
  • Metrics Analysis: Validates presence of quantified achievements and impact statements
  • Gap Analysis: Detects employment gaps and provides contextualization guidance

Resume Evolution Tracking

  • Version History: Maintains comprehensive record of all resume iterations
  • Improvement Metrics: Tracks ATS score progression over time
  • Comparison Tools: Side-by-side analysis of different resume versions
  • Analytics Dashboard: Visualizes resume optimization journey

Cover Letter Generation

  • Tone Customization: Generates cover letters in professional, enthusiastic, or technical tones
  • Context-Aware Content: Leverages resume and job description for personalized output
  • Company and Role Tailoring: Incorporates specific company names and position titles
  • Export Options: Supports PDF and DOCX formats

Authentication and Security

  • Supabase Authentication: Secure user management with Google OAuth integration
  • JWT Token Validation: Supports both ES256 and HS256 algorithms with manual base64 decoding
  • Session Management: Secure session handling with automatic token refresh
  • Role-Based Access: Protected API endpoints with user-specific data isolation

User Interface

  • Responsive Design: Optimized for desktop, tablet, and mobile devices
  • Real-Time Updates: Instant feedback during resume analysis
  • Interactive Components: Drag-and-drop file upload, collapsible sections, tooltips
  • Dark Theme: Eye-friendly dark mode interface with accent colors
  • Sticky Navigation: Fixed sidebar for easy access to features

Technology Stack

Backend

  • Framework: FastAPI (Python 3.11) - High-performance async web framework
  • Database & Storage: Supabase - PostgreSQL database with file storage
  • AI/ML: Groq API - Fast inference for Llama 3.3 70B model
  • Authentication: Supabase Auth with JWT validation
  • Rate Limiting: SlowAPI with intelligent throttling
  • Logging: Structured logging with file rotation
  • Deployment: Render (automatic deployments from GitHub)

Frontend

  • Framework: React 18 with TypeScript
  • Build Tool: Vite - Fast development and optimized production builds
  • Styling: TailwindCSS with custom design system
  • Routing: React Router v6 with protected routes
  • State Management: React hooks and context
  • HTTP Client: Fetch API with custom error handling
  • Deployment: Vercel (automatic deployments from GitHub)

Infrastructure

  • Version Control: Git with GitHub
  • CI/CD: Automatic deployments via GitHub integration
  • Environment Management: Environment-specific configurations
  • Monitoring: Application logging with error tracking

Getting Started

Prerequisites

  • Node.js 20 or higher
  • Python 3.11 or higher
  • Git
  • A Supabase account (free tier available)
  • A Groq API key (free tier available)

Installation

1. Clone the Repository

git clone https://github.com/your-username/resume-optimizer.git
cd resume-optimizer

2. Backend Setup

cd backend

# Create virtual environment
python -m venv .venv

# Activate virtual environment
# On Windows:
.venv\Scripts\activate
# On macOS/Linux:
source .venv/bin/activate

# Install dependencies
pip install -r requirements.txt

# Configure environment variables
cp .env.example .env

Edit backend/.env with your credentials:

SUPABASE_URL=your_supabase_project_url
SUPABASE_SERVICE_KEY=your_service_role_key
SUPABASE_JWT_SECRET=your_jwt_secret
SUPABASE_BUCKET=resumes
GROQ_API_KEY=your_groq_api_key
ALLOWED_ORIGINS=["http://localhost:5173"]
MAX_FILE_SIZE_MB=10
DEBUG=true
REQUIRE_EMAIL_VERIFICATION=false

3. Frontend Setup

cd ../frontend

# Install dependencies
npm install

# Configure environment variables
cp .env.example .env

Edit frontend/.env:

VITE_SUPABASE_URL=your_supabase_project_url
VITE_SUPABASE_ANON_KEY=your_anon_public_key
VITE_API_URL=http://localhost:8000/api

4. Supabase Configuration

Create a Supabase project and set up:

Storage Bucket:

  • Create a bucket named resumes (or match your SUPABASE_BUCKET value)
  • Set to public access

Authentication:

  • Enable Google OAuth provider
  • Add redirect URLs:
    • http://localhost:5173
    • Your production domain

Database: Tables will be created automatically on first use, or you can run migrations if provided.

Running the Application

Start Backend Server

cd backend
uvicorn main:app --reload --port 8000

The API server will be available at:

Start Frontend Development Server

cd frontend
npm run dev

The frontend will be available at: http://localhost:5173

Building for Production

Backend

The backend runs directly with uvicorn in production. Render handles this automatically.

Frontend

cd frontend
npm run build

The optimized build will be in the frontend/dist directory. Vercel handles this automatically.

Deployment

For detailed deployment instructions including Vercel and Render configuration, see DEPLOY.md.

API Documentation

Once the backend is running, visit http://localhost:8000/docs for interactive API documentation powered by Swagger UI.

Key endpoints:

  • POST /api/upload-resume - Upload and parse resume file
  • POST /api/analyze - Analyze resume against job description
  • POST /api/skill-gap - Generate skill gap roadmap
  • POST /api/auto-edit-suggestions - Get AI-powered edit suggestions
  • POST /api/cover-letter - Generate tailored cover letter
  • GET /api/history - Retrieve analysis history
  • GET /api/evolution/{resume_id} - Track resume evolution

Configuration

Environment Variables

Backend:

  • SUPABASE_URL: Supabase project URL
  • SUPABASE_SERVICE_KEY: Service role key for admin operations
  • SUPABASE_JWT_SECRET: JWT secret for token validation
  • SUPABASE_BUCKET: Storage bucket name for resume files
  • GROQ_API_KEY: API key for Groq AI inference
  • ALLOWED_ORIGINS: CORS allowed origins (JSON array)
  • MAX_FILE_SIZE_MB: Maximum upload file size
  • DEBUG: Enable debug logging
  • REQUIRE_EMAIL_VERIFICATION: Enforce email verification

Frontend:

  • VITE_SUPABASE_URL: Supabase project URL
  • VITE_SUPABASE_ANON_KEY: Supabase anon public key
  • VITE_API_URL: Backend API base URL

Security Features

  • JWT-based authentication with dual algorithm support (ES256/HS256)
  • CORS protection with configurable origins
  • Rate limiting on all endpoints
  • Input validation and sanitization
  • SQL injection prevention via parameterized queries
  • XSS protection headers
  • File upload restrictions (type and size)
  • Secure session management
  • Environment-based configuration isolation

Acknowledgments

  • Groq for fast LLM inference
  • Supabase for backend infrastructure
  • Vercel and Render for hosting
  • The open-source community for tools and libraries

About

AI-powered ATS + Recruiter Simulation resume analyzer

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages