Skip to content

AI job matching system using Python, Streamlit, Sentence-BERT, spaCy. Achieves 0.5853 similarity score, supports 3+ file formats. GitHub-deployed.

License

Notifications You must be signed in to change notification settings

MuhammadAliAsgher/Job-Recommender-NLP

Repository files navigation

🔍 Job Recommender NLP: AI-Powered Job & Talent Matching with Sentence-BERT

📘 Overview

This project builds an AI-powered job and resume recommendation engine using Sentence-BERT embeddings to match resumes with job postings — and vice versa. It was initially developed as a demo on Kaggle to showcase how semantic similarity can improve recruitment and job searching over traditional keyword-based systems.

The system has now been enhanced with a Streamlit web interface for interactive use and deployment.

It processes a subset of the LinkedIn Job Postings Dataset (2023-24) and the Resume Dataset, recommending the top 5 matches in both directions:

  • Resumes per job posting (for recruiters)
  • Job postings per resume (for job seekers)

🔗 Links


🔑 Key Features

🧠 Bi-Directional Semantic Recommendation Engine

  • Matches 1,000 job postings with 1,000 resumes using semantic similarity
  • Recommends:
    • 🔍 Top 5 jobs for an uploaded resume (job-seeker perspective)
    • 🧑‍💼 Top 5 resumes for an uploaded job description (recruiter perspective)

⚙️ Implementation Details

  • Built with Sentence-BERT (all-MiniLM-L6-v2) for embeddings
  • Features:
    • Text preprocessing using spaCy (lemmatization, skill/domain extraction)
    • Cosine similarity computation
    • Interactive frontend using Streamlit
    • Auto-generation of working files if missing

🌟 New Features

  • 🎨 Visually Appealing UI: Custom-styled Streamlit interface
  • 📁 File Uploads: Supports .txt, .pdf, .docx for resumes and job descriptions
  • ⚙️ Dynamic Setup: Automatically creates the working directory if absent

📁 Repository Contents

  • app.py: Streamlit app for interactive resume/job matching
  • job_recommender_nlp.py: Backend logic (data processing, embeddings, recommendation)
  • job-recommender-nlp.ipynb: Jupyter Notebook version
  • datasets/: Includes postings.csv and Resume.csv

🚀 How to Run

✅ Prerequisites

  • Python 3.10+

Install dependencies:

pip install numpy pandas spacy sentence-transformers scikit-learn PyPDF2 python-docx streamlit

Install the spaCy model:

python -m spacy download en_core_web_sm

🛠️ Local Setup

1. Clone the Repository

git clone https://github.com/MuhammadAliAsgher/Job-Recommender-NLP
cd Job-Recommender-NLP

2. Prepare Datasets

  • Datasets (postings.csv, Resume.csv) are inside the datasets/ directory

  • Managed using Git LFS — large files auto-downloaded when you clone the repo

Run the App

streamlit run app.py

📜 License

This project is licensed under the MIT License - see the LICENSE file for details.


🙋‍♂️ Contact

Created by Muhammad Ali Asghar
📧 Connect on LinkedIn
🌐 Github/MuhammadAliAsgher

About

AI job matching system using Python, Streamlit, Sentence-BERT, spaCy. Achieves 0.5853 similarity score, supports 3+ file formats. GitHub-deployed.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published