If you find this repository helpful or interesting, please consider giving it a star! ⭐ ,and Follow Me For Cool Projects Updates
- It helps others discover the project.
- It motivates the me to keep improving it.
- It supports open-source development!
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! ❤
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.
📹 Watch Demo Video coming soon
- Features
- Tech Stack
- Architecture
- API Endpoints
- Frontend Structure
- Backend Structure
- Installation
- Usage Examples
- Future Roadmap
- Contributing
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
POST /api/signup/
: Create a new user accountPOST /api/login/
: Authenticate and receive JWT tokensPOST /api/token/refresh/
: Refresh access tokenPOST /api/password-reset/
: Request password reset
POST /api/resumeupload/
: Upload and parse a new resumeGET /api/profiles/
: List all user profilesGET /api/current-profile/
: Get current active profilePOST /api/set-current-profile/
: Set a profile as current
POST /api/match/match-job-description/
: Compare current profile with job descriptionGET /api/jobs/matching-jobs/
: Fetch matching jobs from external APIs
GET /chatbot/hr-questions/
: Get all HR interview questionsGET /chatbot/start/
: Start a new interview practice sessionPOST /chatbot/next-question/
: Get next question with feedback on previous answerGET /chatbot/random/
: Get a random HR interview question
POST /api/resume/generate/
: Generate and download a PDF resume
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
- 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
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
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
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
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
- 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)
- Standard Django user fields
- Email verification status
- Account creation date
- Last login tracking
- Question ID
- Question text
- Model answer
- Category classification
- Difficulty level
- Node.js 16+
- Python 3.8+
- PostgreSQL 12+
# Clone the repository
git clone https://github.com/sayyedrabeeh/resume-ai-.git
cd resumatch/frontend
# Install dependencies
npm install
# Start development server
npm start
# Navigate to backend directory
cd ../backend
# Create and activate virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
# Set up environment variables
cp .env.example .env
# Edit .env with your database credentials and settings
# Run migrations
python manage.py migrate
# Start development server
python manage.py runserver
- Visit the signup page and provide your email and password
- Verify your email address through the confirmation link
- Complete your profile by adding profile
- Start matching with potential job opportunities
- Upload your PDF resume through the drag-and-drop interface
- Review extracted information including skills, experience, and education
- Make any necessary corrections to the extracted data
- Save your profile for job matching
- Paste a job description into the matcher tool
- Get instant feedback on your match percentage
- Review match reasons highlighting your strengths
- See improvement suggestions to increase your chances
- Browse interview questions by category or search for specific topics
- Start a practice session with the interactive chatbot
- Answer questions and receive immediate feedback
- Review suggested answers to improve your responses
- Track your progress through the question library
- Enter your professional details including experience, education, and skills
- Customize section content with your accomplishments and projects
- Generate a professional PDF with proper formatting and layout
- Download your resume ready for job applications
We welcome contributions to ResuMatch! Here's how you can help:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
- PyMuPDF for PDF parsing
- ReportLab for PDF generation
- Django REST Framework for API development
- SimpleJWT for authentication
- Tailwind CSS for styling
- React for frontend development
ResuMatch resume analysis and job matching
Made with ❤️ for job seekers everywhere