An AI-powered web application that matches student resumes with job descriptions using Machine Learning (TF-IDF + Cosine Similarity) and provides skill gap analysis.
This system:
- Accepts resume text input
- Compares it with a dataset of job descriptions
- Ranks jobs based on similarity score
- Displays matched and missing skills
- Built using React (Frontend) + FastAPI (Backend)
Frontend:
- React
- JavaScript
- Fetch API
Backend:
- FastAPI
- Python
- Pandas
- Scikit-learn (TF-IDF + Cosine Similarity)
ai-job-matching-system/
│
├── backend/
│ ├── app/
│ ├── jobs_dataset/
│ ├── requirements.txt
│
├── frontend/
│
└── README.md
cd backend
python -m venv venv
Windows:
venv\Scripts\activate
Mac/Linux:
source venv/bin/activate
pip install -r requirements.txt
If requirements.txt is not generated:
pip install fastapi uvicorn pandas scikit-learn openai python-dotenv
uvicorn app.main:app --reload
Backend will start at:
[http://127.0.0.1:8000](http://127.0.0.1:8000)
Swagger API Docs:
[http://127.0.0.1:8000/docs](http://127.0.0.1:8000/docs)
cd frontend
npm install
npm start
Frontend will start at:
[http://localhost:3000](http://localhost:3000)
- User enters resume text in frontend.
- Frontend sends POST request to backend
/matchendpoint. - Backend:
- Loads job dataset
- Preprocesses text
- Applies TF-IDF vectorization
- Calculates cosine similarity
- Performs skill gap analysis
- Backend returns ranked jobs.
- Frontend displays results with match percentage.
The system uses a structured CSV dataset located at:
backend/jobs_dataset/jobs.csv
Dataset contains:
- job_id
- job_title
- company
- skills_required
- job_description
- Backend must be running before using frontend.
- Ensure CORS middleware is enabled in FastAPI.
- Keep only one
.gitfolder at root level (avoid nested repositories).
This project demonstrates:
- Natural Language Processing
- Vector Space Model
- TF-IDF
- Cosine Similarity
- Skill Gap Analysis
- Full Stack Integration
Developed as a B.Tech Major Project. By Lakshmi Prasanna Rapaka