An end-to-end AI-powered recruitment platform that automatically processes resumes, extracts candidate information, generates semantic embeddings, performs intelligent candidate-job matching, and provides analytics for recruiters.
Recruitment teams often spend significant time manually reviewing resumes and matching candidates to job requirements.
This project leverages Natural Language Processing (NLP), Embedding Models, Vector Search, and Machine Learning techniques to automate candidate screening and recommendation.
The system can:
- Parse Resume PDFs
- Extract Skills, Education, and Experience
- Generate Semantic Embeddings
- Store Candidate Vectors using FAISS
- Match Candidates to Job Descriptions
- Rank Candidates by Similarity Score
- Identify Missing Skills (Skill Gap Analysis)
- Visualize Recruitment Insights
- PDF Resume Parsing
- Text Extraction
- Resume Cleaning & Normalization
- Structured Candidate Profile Generation
- Skill Extraction
- Education Extraction
- Experience Extraction
- Keyword Extraction
- Sentence Transformer Embeddings
- Semantic Similarity Search
- Candidate Ranking
- Job-Candidate Matching
- Candidate Statistics
- Skill Distribution Analysis
- Recruitment Reports
- Interactive Dashboards
- Resume Upload API
- Candidate Search API
- Job Matching API
- Recommendation API
Resume PDF
│
▼
Resume Parser
│
▼
Text Cleaning
│
▼
Information Extraction
(Skills, Education, Experience)
│
▼
Sentence Transformer
│
▼
Embedding Vector
│
┌──┴─────┐
│ │
▼ ▼
MongoDB FAISS
│ │
└──┬─────┘
▼
Matching Engine
▼
Ranking Engine
▼
Analytics Dashboard
AI_ResumeMining_CandidateMatchingSystem
│
├── app
│ ├── analytics
│ ├── api
│ ├── core
│ ├── database
│ ├── embeddings
│ ├── extraction
│ ├── matching
│ ├── resume_processing
│ ├── models
│ ├── schemas
│ ├── services
│ ├── utils
│ └── vector_store
│
├── data
├── faiss_index
├── docker
├── logs
├── notebooks
├── tests
│
├── requirements.txt
├── README.md
└── run.py
- Python
- FastAPI
- Uvicorn
- MongoDB
- PyMongo
- PyTorch
- Transformers
- Sentence Transformers
- FAISS
- Pandas
- NumPy
- Scikit-Learn
- Streamlit
- Plotly
- Loguru
- Python Dotenv
git clone https://github.com/your-username/AI-Resume-Mining-System.git
cd AI-Resume-Mining-Systemconda create -n ai_resume python=3.11
conda activate ai_resumepip install -r requirements.txtCreate a .env file:
MONGO_URI=mongodb://localhost:27017
DB_NAME=resume_mining_db
MODEL_NAME=sentence-transformers/all-MiniLM-L6-v2
FAISS_INDEX_PATH=faiss_index/candidate.indexuvicorn app.main:app --reloadstreamlit run app/analytics/dashboards/dashboard.py| Method | Endpoint |
|---|---|
| POST | /api/v1/resumes/upload |
| GET | /api/v1/resumes |
| GET | /api/v1/resumes/{id} |
| Method | Endpoint |
|---|---|
| POST | /api/v1/match |
| GET | /api/v1/rankings |
| GET | /api/v1/recommendations |
- Upload Resume
- Extract Text
- Clean Text
- Extract Information
- Candidate Profile
- Sentence Transformer
- Embedding Generation
- FAISS Storage
- Job Description Embedding
- Candidate Embedding
- Cosine Similarity
- Ranking
- Recommendation
- RAG-based Candidate Search
- LLM-powered Candidate Summarization
- Multi-language Resume Support
- Real-time Candidate Recommendations
- Cloud Deployment
- Kubernetes Support
- AWS/GCP Integration
Nguyen Hoang Khang
Information Technology Student
Interested in:
- Data Engineering
- Artificial Intelligence
- Machine Learning
- NLP
- Backend Development
This project is intended for educational and portfolio purposes.