An open API service indexing awesome lists of open source software.

https://github.com/saket0x07/resume-scanner

An NLP-powered Resume Scanner built with Python and Streamlit. Upload job descriptions and resumes, and instantly rank candidates based on semantic similarity using SpaCy and NLTK.
https://github.com/saket0x07/resume-scanner

ai-tools jobmatching nlp nltk resume-scanner spacy streamlit text-similarity

Last synced: 2 months ago
JSON representation

An NLP-powered Resume Scanner built with Python and Streamlit. Upload job descriptions and resumes, and instantly rank candidates based on semantic similarity using SpaCy and NLTK.

Awesome Lists containing this project

README

          

# ๐Ÿ” Resume Scanner using NLP

A smart resume scanner built with Python and NLP to parse and rank resumes based on their similarity to a given job description. Designed for recruiters and developers to simplify hiring decisions.

![Streamlit](https://img.shields.io/badge/Built%20With-Streamlit-blue?logo=streamlit)
![SpaCy](https://img.shields.io/badge/NLP-SpaCy-green?logo=spacy)
![Python](https://img.shields.io/badge/Python-3.10+-yellow?logo=python)

---

## ๐Ÿš€ Features

- ๐Ÿ“‚ Upload job descriptions and multiple resumes (PDF or DOCX)
- ๐Ÿง  Semantic matching using SpaCy's word vectors
- ๐Ÿ“Š Resume ranking with similarity scores (scaled to %)
- ๐Ÿงน Text cleaning and preprocessing with NLTK
- โšก Intuitive Streamlit interface for instant insights

---

## ๐Ÿงฐ Tech Stack

| Layer | Libraries / Tools |
|---------------|-----------------------|
| Language | Python |
| NLP | SpaCy, NLTK |
| Parsing | PyMuPDF, docx2txt |
| Frontend UI | Streamlit |

---

## ๐Ÿ“ฆ Installation

```bash
git clone https://github.com/saket0x07/resume-scanner.git
cd resume-scanner
pip install -r requirements.txt
python -m spacy download en_core_web_md
streamlit run app.py

---

## ๐Ÿ“„ How It Works
Upload a job description in .txt format.
Upload one or more resumes in .pdf or .docx.
The app extracts and cleans the text, computes semantic similarity, and ranks resumes by relevance.
Results are displayed with percentage-based scores.

---

## Project Structure

resume-scanner/
โ”œโ”€โ”€ app.py
โ”œโ”€โ”€ requirements.txt
โ”œโ”€โ”€ utils/
โ”‚ โ”œโ”€โ”€ extract.py
โ”‚ โ”œโ”€โ”€ preprocess.py
โ”‚ โ”œโ”€โ”€ match.py
โ”‚ โ””โ”€โ”€ ranker.py
โ”œโ”€โ”€ components/
โ”‚ โ”œโ”€โ”€ sidebar.py
โ”‚ โ”œโ”€โ”€ display.py
โ”‚ โ””โ”€โ”€ loader.py
โ”œโ”€โ”€ data/
โ”‚ โ”œโ”€โ”€ resumes/
โ”‚ โ””โ”€โ”€ job_descriptions/
โ”œโ”€โ”€ assets/
โ”‚ โ”œโ”€โ”€ styles.css
โ”‚ โ””โ”€โ”€ logo.png
โ””โ”€โ”€ README.md

##
Author
Saket ๐Ÿ‘จโ€๐Ÿ’ป GitHub: @saket0x07 ๐Ÿ“… Created: July 2025