ResuMatch is an advanced automated resume screening system that leverages artificial intelligence and natural language processing to efficiently match resumes with job descriptions. The project aims to streamline the recruitment process by providing accurate and objective resume evaluation.
- Automated Resume Parsing: Extracts key information from resumes using advanced NLP techniques
- Semantic Matching: Utilizes cosine similarity to compare resumes with job descriptions
- Multilayer Processing:
- Text preprocessing
- Resume segmentation
- Entity extraction
- Semantic similarity scoring
- User-Friendly Interface: React-based frontend for easy resume and job description uploads
- Robust Backend: FastAPI-powered processing engine
- Frontend: React
- Backend: FastAPI
- NLP Library: spaCy
- Machine Learning:
- Sentence Transformers
- Named Entity Recognition (NER)
- Text Processing:
- Cosine Similarity
- TF-IDF Vectorization
- Processes a dataset of 2,000 unique skills
- Employs rule-based entity recognition
- Generates compatibility scores for resumes
- Achieved 0.6991 correlation with human evaluation
- Frontend:
- Node.js (with Yarn)
- Backend:
- Python 3.7+
- FastAPI
- Uvicorn
git clone <repository-url>
cd ResuMatch
-
Navigate to the
frontend
directory:cd frontend
-
Install dependencies:
yarn install
-
Start the development server:
yarn run dev
-
Navigate to the
server
directory:cd server
-
Create a virtual environment:
python3 -m venv env
-
Activate the virtual environment:
-
On Windows:
.\env\Scripts\activate
-
On macOS/Linux:
source env/bin/activate
-
-
Install dependencies:
pip install -r requirements.txt
-
Run the FastAPI server:
uvicorn app:app --reload
-
Open the Frontend:
- Navigate to
http://localhost:3000
in your browser (assuming the frontend is running).
- Navigate to
-
Upload Resumes:
- Use the provided UI to upload one or more resumes.
-
Specify Job Description:
- Input or upload the desired job description for matching.
-
View Results:
- The system will process the resumes and job description, returning a ranked list of resumes based on their compatibility scores.
- Limited entity recognition for complex resume formats
- Dependence on predefined rules
- Language limitations (primarily English)
- Domain-specific entity recognition
- Advanced NLP models for contextual understanding
- Semantic search capabilities
- Dynamic scoring mechanisms
- Rajesh Adhikari
- Subash Lamichhane
- Sujan Koirala
Special thanks to Samsung Innovation Campus (SIC) for the opportunity to develop this project.