A simple web application for automated resume screening and classification using machine learning. This app allows you to upload a PDF or Word (DOCX) resume, extracts and cleans the text, and predicts the most relevant job category using a trained model.
- File Upload: Upload resumes in PDF or DOCX format.
- Text Extraction: Automatically extracts text from uploaded resumes.
- Text Cleaning: Removes unnecessary elements such as hashtags, mentions, URLs, special characters, punctuation, and common stopwords.
- Resume Classification: Uses a pre-trained machine learning model to predict the resume's job category.
- Category Mapping: Maps predicted category codes to human-readable job categories.
- User Interface: Built with Streamlit for a clean and interactive experience.
Some of the job categories the model can predict:
- Data Science
- HR
- Advocate
- Arts
- Web Designing
- Mechanical Engineer
- Sales
- Health and Fitness
- Civil Engineer
- Java Developer
- Business Analyst
- SAP Developer
- Automation Testing
- Electrical Engineering
- Operations Manager
- Python Developer
- DevOps Engineer
- Network Security Engineer
- PMO
- Database
- Hadoop
- ETL Developer
- DotNet Developer
- Blockchain
- Testing
(See the category_mapping dictionary in app.py for the full list.)
- Python 3.7+
- pip
-
Clone this repository and navigate to the project directory.
-
Install dependencies:
pip install -r requirements.txt
-
Model Files:
Ensure the following model files are present in theModel/directory:resume_screening_model.pkltfid.pkl
(You can train your own model using the provided Jupyter notebook:
Resume_Screening_Model.ipynb.)
Activate Venv (Virtual Environment Before Activating) Start the Flask server:
python app.pyOpen the displayed local URL in your browser to use the app.
app.py— Main Streamlit application.requirements.txt— Project dependencies.Resume_Screening_Model.ipynb— Jupyter notebook for data exploration, model training, and experimentation.Model/— Folder containing the trained model (resume_screening_model.pkl) and TF-IDF vectorizer (tfid.pkl).
- Upload: User uploads a PDF or DOCX resume.
- Extraction: The app extracts text using PyMuPDF for PDFs and python-docx for DOCX files.
- Cleaning: The text is cleaned by removing noise and stopwords.
- Vectorization: Clean text is transformed using the pre-trained TF-IDF vectorizer.
- Prediction: The processed vector is passed into the trained machine learning model for prediction.
- Result: The predicted job category is displayed to the user.
- Run the app.
- Upload a resume (PDF/DOCX).
- View predicted job category and extracted resume text.
To train your own model or inspect the training process:
- See
Resume_Screening_Model.ipynbfor end-to-end steps including:- Loading and visualizing data
- Text preprocessing
- Model building and evaluation
- Saving the trained model and vectorizer
Main dependencies include:
- streamlit
- PyMuPDF
- python-docx
- scikit-learn
- pickle
(See requirements.txt for the complete list.)
This project is for educational and demonstration purposes.
Author: OkYashGajjar