Live Application: https://resu-mix.vercel.app/
A sentence-transformer-based AI-powered resume optimizer that generates job-specific, tailored resumes in seconds. Set your master resume once, then automatically generate perfectly optimized resumes for each job application.
ResuMix is an intelligent resume optimization platform that uses advanced AI and natural language processing to help job seekers create highly targeted resumes. Instead of manually tailoring your resume for each job application, ResuMix:
- Stores your master resume - Enter all your experiences, skills, and achievements once
- Analyzes job descriptions - Uses sentence transformers to understand job requirements
- Optimizes content - Intelligently selects and ranks your most relevant experiences
- Generates PDFs - Creates professional LaTeX-formatted resumes ready to submit
- Sentence Transformer Scoring: Uses the
all-mpnet-base-v2model to compute semantic similarity between your resume content and job requirements - Multi-Category Analysis: Evaluates content across technical skills, soft skills, and relevance
- Smart Line Ranking: Each line in your resume is scored and ranked based on job fit
- Structured Resume Builder: Organize your resume into sections, items, and lines
- Multiple Item Styles: Support for various resume formats (2-4 heading styles, paragraphs)
- LaTeX Export: Professional PDF generation using PyLaTeX
- Parameter Customization: Fine-tune weights and biases for different content categories
- Multiple Auth Methods: Email/password and Google OAuth integration
- JWT-Based Sessions: Secure reauthentication tokens for quick access
- PostgreSQL Storage: Secure user data and resume information storage
- React + Vite Frontend: Fast, responsive single-page application
- Intuitive Dashboard: Track resume status, tweak parameters, and generate optimized resumes
- Real-time Feedback: Terminal-style output during resume generation
- Wiki & Documentation: Built-in help system
- Framework: React 19 with Vite
- Routing: React Router DOM
- State Management: Context API for authentication
- UI Components: Custom component library with Lucide icons
- API Communication: Axios with credential support
- Framework: Flask with Flask-RESTful
- Language: Python 3.x
- API Type: REST API
- CORS: Configured for cross-origin requests from Vercel deployments
- Type: PostgreSQL
- Connection: psycopg3 with connection pooling
- Schema: Single
datatable storing user info and resume data as JSONB
CREATE TABLE data (
uid VARCHAR(256) PRIMARY KEY,
user_name VARCHAR(64),
pwd VARCHAR(64),
email VARCHAR(256) NOT NULL UNIQUE,
auth_type VARCHAR(16),
userinfo JSONB,
resumeInfo JSONB
);- Sentence Transformers:
all-mpnet-base-v2for semantic similarity - OpenAI Integration: GPT-4o-mini for parsing job requirements and generating structured data
- Vector Embeddings: Cached embeddings for efficient resume line scoring
- Optimization Algorithm: Custom scoring and shuffling algorithm for content selection
- Flask (3.1.1) - Web framework
- sentence-transformers (4.1.0) - Semantic similarity
- PyLaTeX (1.4.2) - PDF resume generation
- PyJWT (2.10.1) - Authentication tokens
- psycopg (3.2.3) - PostgreSQL database driver
- openai (1.82.0) - AI integration
- torch (2.7.1) - Deep learning framework
- transformers (4.52.4) - NLP models
- react (19.1.0) - UI framework
- react-router-dom (6.30.1) - Routing
- axios (1.10.0) - HTTP client
- @react-oauth/google (0.12.2) - Google authentication
- jwt-decode (4.0.0) - JWT handling
- lucide-react (0.522.0) - Icons
Users can sign up using email/password or Google OAuth. Authentication tokens are stored securely using JWT.
Users build their comprehensive master resume by:
- Adding sections (Education, Experience, Projects, Skills, etc.)
- Creating items within sections (jobs, degrees, projects)
- Writing lines for each item (bullet points, descriptions)
- Setting parameters (category weights and biases)
When generating an optimized resume:
- User pastes a job description
- GPT-4o-mini extracts 3-12 core requirements
- Requirements are converted to vector embeddings
- Each resume line is scored against requirements using cosine similarity
The optimization algorithm:
- Scores each line (0-10 scale) based on semantic similarity
- Applies category weights and biases
- Selects the most relevant content for each section
- Generates multiple versions and shuffles for optimal layout
- Selected content is formatted using LaTeX templates
- PyLaTeX generates a professional PDF
- User downloads the tailored resume
ResumeInfo
├── sections (list)
│ ├── Section
│ │ ├── title (LaTeX string)
│ │ ├── items (list)
│ │ │ ├── Item
│ │ │ │ ├── titles (list of LaTeX strings)
│ │ │ │ ├── lines (list)
│ │ │ │ │ ├── Line
│ │ │ │ │ │ ├── content (LaTeX string)
│ │ │ │ │ │ ├── content_str (plain string)
│ │ │ │ │ │ ├── score (float 0-10)
│ │ │ │ │ │ ├── keywords (list)
│ │ │ │ │ │ └── aux_info (cached vectors)
│ │ │ │ ├── category_weight (dict)
│ │ │ │ └── category_bias (dict)
│ │ └── aux_info
└── heading_info (name, contact info)
POST /user- Sign up new userGET /user- Login with credentials or Google OAuthPUT /user- Update user information
GET /resume- Retrieve user's resume dataPOST /resume- Update resume informationPUT /resume- Modify resume parameters
POST /resume/optimize- Generate optimized PDF resumePOST /api/generate-resume- Alternative PDF generation endpoint
- Job Seekers: Generate tailored resumes for multiple job applications
- Career Changers: Emphasize different skills for different industries
- Recent Graduates: Optimize limited experience for various roles
- Professionals: Maintain one master resume, generate role-specific versions
- Password hashing for email/password authentication
- JWT tokens with expiration for session management
- Environment variable management for API keys
- CORS configuration for secure cross-origin requests
- PostgreSQL with parameterized queries to prevent SQL injection
- Multiple resume templates and styles
- ATS (Applicant Tracking System) optimization
- Cover letter generation
- Interview preparation based on job requirements
- Analytics on which experiences perform best
- Multi-language support
This project is actively maintained. For questions or contributions, please refer to the project repository.
See repository for license information.
- Sentence Transformers library by UKPLab
- OpenAI GPT models
- PyLaTeX for PDF generation
- The open-source community
Built to help you land your dream job faster.
RULE:
- usually, make means to parse the information and to get the thing ready to be built
- build would be to build the object.
UPDATE: scoring is done only once with the master scoring function to enable functions such as:
- balancing skills
- preference of variety or depth