If you find this repository helpful or interesting, please consider giving it a star! ⭐ ,and Follow Me For Cool Projects Updates
Why Star This Repository?
- It helps others discover the project.
- It motivates the me to keep improving it.
- It supports open-source development!
How to Contribute
If you want to contribute, feel free to fork the repository and submit a pull request. Also, don’t forget to star the repo!
Thanks for your support! ❤
Star the project
🚀 ResuMatch - AI-Powered Resume & Job Matching Platform

📌 Overview
ResuMatch is a comprehensive full-stack application that bridges the gap between job seekers and their ideal positions. Using advanced text analysis and skill extraction algorithms, it analyzes resumes, compares them against job descriptions, and provides actionable insights to improve your chances of landing interviews.
🎮 Live Demo
📹 Watch Demo Video coming soon
📋 Table of Contents
✨ Key Features
🔍 Resume Analysis & Management
- Smart PDF Parsing: Extract structured data from PDF resumes
- Multiple Profile Support: Manage different versions of your professional profile
- Social Profile Detection: Automatically extracts LinkedIn, GitHub, and personal website URLs
- Visual Resume Dashboard: View all your parsed resume data in a clean, organized interface
🎯 Intelligent Job Matching
- Skill Gap Analysis: Identifies missing skills required in job descriptions
- Match Scoring Algorithm: Calculate a precise match percentage between resume and job descriptions
- Intelligent Feedback: Get personalized suggestions to improve your profile for specific roles
- Visual Match Indicators: Color-coded match percentage displays for quick assessment
🤖 HR Interview Preparation
- 100+ HR Interview Questions: Access a comprehensive library of common interview questions
- Category Filtering: Filter questions by category to focus your preparation
- Search Functionality: Quickly find specific questions or topics
- Interactive Chatbot: Practice interview questions with an intelligent AI bot
- Feedback System: Receive instant feedback on your practice answers
- Pagination Support: Navigate easily through all questions
📄 Resume Builder
- Professional Templates: Generate polished, ATS-friendly resumes
- Custom PDF Generation: Create downloadable PDF resumes
- Section Management: Organize your experience, education, projects, and skills
- Mini-Projects Support: Showcase smaller projects in an organized format
- Multiple Education & Experience Entries: Comprehensive resume building capabilities
OUTPUT from builder
👤 User Management & Authentication
- Secure JWT Authentication: Token-based security for all user sessions
- Responsive Account Management: Mobile-friendly user interface
- Profile Selection System: Easily switch between different resume profiles
🌐 Job Market Integration
- Real-time Job Search: Connect with job search APIs to find relevant positions
- Match-Based Sorting: Jobs are displayed with personalized match scores
- Direct Application Links: Apply to matched jobs with one click
🛠️ Tech Stack
Frontend
- React: Component-based UI development
- React Router: Navigation and routing
- Axios: Promise-based HTTP client
- Tailwind CSS: Utility-first CSS framework for responsive design
- JWT Decode: Token parsing for authentication
Backend
- Django: Python web framework
- Django REST Framework: RESTful API development
- PyMuPDF (fitz): Advanced PDF text extraction
- ReportLab: PDF generation for resume builder
- SimpleJWT: JWT authentication implementation
- PostgreSQL: Relational database management
- Regular Expressions: Pattern-based text analysis
- Redis: Caching for performance optimization
ResuMatch follows a typical client-server architecture:
- Frontend (React): Single-page application handling UI rendering
- Backend (Django): REST API server providing data and business logic
- Database (PostgreSQL): Persistent storage for user profiles and match data
- External Services: Integration with job search APIs
📊 API Endpoints
Authentication APIs
POST /api/signup/: Create a new user account
POST /api/login/: Authenticate and receive JWT tokens
POST /api/token/refresh/: Refresh access token
POST /api/password-reset/: Request password reset
Resume Management APIs
POST /api/resumeupload/: Upload and parse a new resume
GET /api/profiles/: List all user profiles
GET /api/current-profile/: Get current active profile
POST /api/set-current-profile/: Set a profile as current
Job Matching APIs
POST /api/match/match-job-description/: Compare current profile with job description
GET /api/jobs/matching-jobs/: Fetch matching jobs from external APIs
HR Interview Practice APIs
GET /chatbot/hr-questions/: Get all HR interview questions
GET /chatbot/start/: Start a new interview practice session
POST /chatbot/next-question/: Get next question with feedback on previous answer
GET /chatbot/random/: Get a random HR interview question
Resume Builder APIs
POST /api/resume/generate/: Generate and download a PDF resume
🖥️ Frontend Structure
src/
├── components/ # Reusable UI components
│ ├── HRChatBot.jsx # Interview practice chatbot
│ ├── HRQuestionsPage.jsx # HR questions display component
│
├── pages/ # Page components
│ ├── Login.jsx # User login
│ ├── Signup.jsx # New user registration
│ ├── Dashboard.jsx # Main user dashboard
│ ├── ResumeUpload.jsx # Resume upload interface
│ ├── JobMatcher.jsx # Job matching tool
│ ├── JobMatches.jsx # Matched jobs listing
│ ├── Profile.jsx # User profile management
│ ├── HRInterviewPractice.jsx # Interview practice page
│ └── ...
├── api/ # API communication
│ ├── axiosInstance.js # Configured Axios client
│ └── axiosConfig.js # Axios configuration
│ └── ...
└── App.jsx # Main application component
Key Frontend Features
- Responsive Design: Mobile-first UI that works across all devices
- Interactive Job Cards: Expandable job descriptions with match indicators
- Real-time Form Validation: Immediate feedback on user inputs
- Loading States: Visual feedback during API operations
- Token Management: Automatic handling of JWT authentication
- Interview Chat Interface: Interactive chatbot for interview practice
- Paginated Content: Easy navigation through large content sets
🔧 Backend Structure
resume_matcher/
├── users/
│ ├── models.py # Profile data model
│ ├── serializers.py # Data serialization
│ ├── views.py # Resume upload & processing
├── match/
│ ├── matching.py # Skill extraction & match scoring
│ ├── views.py # Match processing & job fetching
├── jobs/ # External job integration
├── chatbot/
│ ├── views.py # HR interview questions and chatbot logic
│ ├── questions.py # HR interview questions database
├── resume_builder/
│ ├── views.py # PDF resume generation using ReportLab
Match Scoring Algorithm
ResuMatch uses a sophisticated algorithm to calculate match scores:
- Skill Extraction: Identifies both single-word skills (e.g., "Python", "React") and multi-word skills (e.g., "machine learning", "project management")
- Summary Relevance: Analyzes resume summary for keyword matches
- Experience Evaluation: Considers years of experience and leadership roles
- Actionable Feedback: Generates specific suggestions based on missing skills
Interview Chatbot Logic
The HR interview practice system features:
- Interactive Question Flow: Dynamic question selection based on user progress
- Smart Answer Analysis: Evaluates user responses using keyword matching
- Feedback Generation: Provides constructive feedback with score-based ratings
- Learning Path: Tracks asked questions to ensure comprehensive coverage
Resume Builder Engine
The PDF resume generator:
- Dynamic Content Placement: Automatically adjusts layout based on content volume
- Multi-page Support: Handles content overflow with professional formatting
- Section Priority: Intelligently organizes content for maximum impact
- Visual Hierarchy: Creates professional design with consistent styling
💾 Data Models
Profile Model
- User reference (ForeignKey)
- Personal info (name, email, phone)
- Resume sections (summary, skills, education, experience)
- Social links (LinkedIn, GitHub, website)
- Resume file & hash (for duplicate detection)
- Current profile flag (Boolean)
User Model (Extended Django User)
- Standard Django user fields
- Email verification status
- Account creation date
- Last login tracking
HR Questions Model
- Question ID
- Question text
- Model answer
- Category classification
- Difficulty level
🔧 Installation & Setup
Prerequisites
- Node.js 16+
- Python 3.8+
- PostgreSQL 12+
Frontend Setup
# Clone the repository
git clone https://github.com/sayyedrabeeh/resume-ai-.git
cd resumatch/frontend
# Install dependencies
npm install
# Start development server
npm start
Backend Setup
# Navigate to backend directory
cd ../backend
# Create and ac