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.
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.
- 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
- 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
- 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)
- 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
- 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
- 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
- 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
- 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
- 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
- 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)
- 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)
- Version Control: Git with GitHub
- CI/CD: Automatic deployments via GitHub integration
- Environment Management: Environment-specific configurations
- Monitoring: Application logging with error tracking
- Node.js 20 or higher
- Python 3.11 or higher
- Git
- A Supabase account (free tier available)
- A Groq API key (free tier available)
git clone https://github.com/your-username/resume-optimizer.git
cd resume-optimizercd 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 .envEdit 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=falsecd ../frontend
# Install dependencies
npm install
# Configure environment variables
cp .env.example .envEdit frontend/.env:
VITE_SUPABASE_URL=your_supabase_project_url
VITE_SUPABASE_ANON_KEY=your_anon_public_key
VITE_API_URL=http://localhost:8000/apiCreate 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.
cd backend
uvicorn main:app --reload --port 8000The API server will be available at:
- Application: http://localhost:8000
- Interactive API docs: http://localhost:8000/docs
- Health check: http://localhost:8000/health
cd frontend
npm run devThe frontend will be available at: http://localhost:5173
The backend runs directly with uvicorn in production. Render handles this automatically.
cd frontend
npm run buildThe optimized build will be in the frontend/dist directory. Vercel handles this automatically.
For detailed deployment instructions including Vercel and Render configuration, see DEPLOY.md.
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 filePOST /api/analyze- Analyze resume against job descriptionPOST /api/skill-gap- Generate skill gap roadmapPOST /api/auto-edit-suggestions- Get AI-powered edit suggestionsPOST /api/cover-letter- Generate tailored cover letterGET /api/history- Retrieve analysis historyGET /api/evolution/{resume_id}- Track resume evolution
Backend:
SUPABASE_URL: Supabase project URLSUPABASE_SERVICE_KEY: Service role key for admin operationsSUPABASE_JWT_SECRET: JWT secret for token validationSUPABASE_BUCKET: Storage bucket name for resume filesGROQ_API_KEY: API key for Groq AI inferenceALLOWED_ORIGINS: CORS allowed origins (JSON array)MAX_FILE_SIZE_MB: Maximum upload file sizeDEBUG: Enable debug loggingREQUIRE_EMAIL_VERIFICATION: Enforce email verification
Frontend:
VITE_SUPABASE_URL: Supabase project URLVITE_SUPABASE_ANON_KEY: Supabase anon public keyVITE_API_URL: Backend API base URL
- 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
- Groq for fast LLM inference
- Supabase for backend infrastructure
- Vercel and Render for hosting
- The open-source community for tools and libraries