HireMind is a NLP-powered resume analyzer that identifies how much job is aligned to resume. By extracting and comparing technical competencies, it then provides a "Match Score" and identifies exactly which skills the candidate is missing to pass the ATS.
Live at: https://hiremind-web.vercel.app/
- Resume PDF parsing using PyMuPDF
- Text preprocessing and normalization
- Skill extraction using predefined vocabulary
- Resume-job skill comparison
- Match Score calculation
- Identification of missing and matched skills
The system follows a structured pipeline:
- Resume Upload (PDF)
- Text Extraction: Extract raw text from PDF
- Text Cleaning: Normalize and preprocess text
- Skill Extraction (Resume): Detect skills from resume
- Skill Extraction (Job Description): Detect required skills
- Skill Matching: Compare resume vs job skills
- Scoring: Calculate match percentage
- Output Generation: Display matched & missing skills
Backend follows a modular and layered architecture:
api/→ Route handlers (FastAPI endpoints)services/→ Core business logic (Parser, Extractor, Matcher, Scorer)schemas/→ Data validation using Pydanticdb/→ MongoDB integration and models
Pipeline-based design ensures separation of concerns and easier extensibility.
Frontend is built using Next.js with a component-driven structure and protected routes for authenticated access.
- User signs up or logs in via
/auth - Backend generates JWT token
- Token is stored on client side
- All protected routes require
Authorization: Bearer <token> - Backend validates token and extracts user identity for request handling
- Resume is uploaded as a PDF file
- Stored on server filesystem (
/uploads) - File path is stored in MongoDB
- Text is extracted using PyMuPDF and stored for fast reuse
- Enables separation between raw file storage and processed data
- Authentication using JWT (issued on login, sent via Authorization header)
- Resume handled as PDF upload (not raw text input)
- Text is extracted and stored for analysis
- Analysis endpoint accepts job description as JSON payload
- Backend: FastAPI (Python)
- Frontend: Next.js, Tailwind CSS
- NLP: Rule-based skill extraction (planned: embeddings for semantic matching)
- Auth: JWT-based authentication (HTTP Bearer tokens)
- Storage: Local file storage for resumes (PDF) with MongoDB metadata
- Deployment: Backend on Render, Frontend on Vercel
Match Score: 71.43%
Matched Skills:
- python
- docker
- aws
- sql
- kafka
Missing Skills:
- rest api
- microservices
Key Endpoints:
POST /auth/signup→ Register userPOST /auth/login→ Login & receive tokenPOST /resume/→ Upload resume (PDF)GET /resume/→ View resume PDFGET /resume/text→ View extracted resume textPUT /resume/→ Update resumeDELETE /resume/→ Delete resumePOST /analyze→ Analyze resume vs job description
- Semantic skill matching using embeddings
- Improved skill extraction from project descriptions
- Resume rewriting suggestions
- Better UI/UX for visualization