π A smart Flask application that parses resumes, π calculates an ATS (Applicant Tracking System) Score, and fetches real-time job listings relevant to your skills using the Adzuna API.
- π AI Resume Parsing: Extracts text and skills from PDF resumes automatically.
- π ATS Scoring System: Analyzes resume length, keyword density, and essential sections to give a score (0-100) with actionable feedback.
- π§ Intelligent Matching: Uses NLP (Natural Language Processing) to identify skills and match them with live market data.
- π Real-Time Job Search: Fetches live job openings via the Adzuna API based on detected skills.
- π±οΈ Interactive Dashboard:
- Clickable Skills: Filter jobs instantly by clicking on detected skill tags.
- Sticky Sidebar: Profile details stay visible while scrolling through jobs.
- Session Memory: Remembers your location and filter preferences.
Here is an explanation of the core files in this repository:
| File / Folder | Description |
|---|---|
app.py |
The main Flask application. Handles routes (/, /process, /search), session management, and ties the logic together. |
job_engine/ |
Contains the "Brain" of the application. |
βββ matcher.py |
Logic for skill extraction, calculating ATS scores, and parsing resume text. |
βββ job_api.py |
Connects to the Adzuna API to fetch live job listings. |
βββ skills.py |
A database list of technical skills used for matching. |
resume_parser/ |
Handles file processing. |
βββ extract_text.py |
Extracts raw text from PDF files using libraries like pdfminer. |
templates/ |
HTML frontend files. |
βββ index.html |
The upload page with filter options (City, Remote, etc.). |
βββ results.html |
The main dashboard displaying the ATS score, Skills Cloud, and Job Cards. |
requirements.txt |
List of Python dependencies required to run the app. |
Procfile |
Configuration file for deployment on Render. |
-
Clone the repository:
git clone [https://github.com/YOUR_USERNAME/ai-resume-matcher.git](https://github.com/YOUR_USERNAME/ai-resume-matcher.git) cd ai-resume-matcher -
Create a Virtual Environment:
python -m venv .venv # Windows .venv\Scripts\activate # Mac/Linux source .venv/bin/activate
-
Install Dependencies:
pip install -r requirements.txt
-
Download NLP Model: This app uses Spacy's English model.
python -m spacy download en_core_web_sm
-
Configure API Keys: Open
job_engine/job_api.pyand replace the placeholders with your actual Adzuna credentials:ADZUNA_APP_ID = "YOUR_ID" ADZUNA_APP_KEY = "YOUR_KEY"
-
Run the App:
python app.py
Visit
http://127.0.0.1:5000in your browser.
This app is ready for deployment on Render.com.
- Create a new Web Service on Render.
- Connect this repository.
- Use the following settings:
- Runtime: Python 3
- Build Command:
pip install -r requirements.txt && python -m spacy download en_core_web_sm - Start Command:
gunicorn app:app
This project is open-source and available for educational purposes.