Loading repository data…
Loading repository data…
Pradeepgithub789 / repository
ResumeIQX is an AI-powered resume analyzer and career recommendation system built with Python, Flask, spaCy, and Scikit-Learn that evaluates PDF resumes against ATS standards, matches them to job descriptions using semantic similarity, and generates tailored upskilling roadmaps and professional PDF reports.
A transparent discovery signal based on current public GitHub metadata.
This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
A production-grade, highly aesthetic AI-Powered Resume Analyzer and Career Recommendation System designed to elevate placement readiness. Built with Flask, spaCy, and Scikit-Learn, this application performs deep semantic parsing, scores resumes against strict ATS parameters, predicts career pathways, and maps skill gaps with curated learning roadmaps.
The diagram below details how the resume parsing, NLP extraction, matching, and recommendation engines interact:
graph TD
A[User Uploads PDF Resume] --> B[utils/parser.py: pdfplumber Text Extraction]
B --> C[utils/preprocessing.py: spaCy NLP Pipeline]
C --> D[utils/skill_extractor.py: Word-Boundary Regex Matcher]
C --> E[utils/preprocessing.py: Entity Contact & Name Extractor]
D --> F[utils/ats_scorer.py: ATS Scoring Engine]
E --> F
D --> G[utils/recommender.py: Profile Classifier & Roadmap Generator]
F --> H[Flask Backend API Endpoints]
G --> H
H --> I[Vanilla JS SPA Front-End Dashboard]
I --> J[utils/pdf_generator.py: ReportLab PDF Stream]
K[User Selects/Pastes Job Description] --> L[utils/matcher.py: TF-IDF + Cosine Similarity Matcher]
D --> L
L --> M[Flask Backend Match Endpoint]
M --> I
pdfplumber to extract and clean text from uploaded PDF resumes (gracefully handling ligature characters, tabular columns, and line brakes).AI_Resume_Project/
│
├── app.py # Flask main server (routing, middleware, APIs)
├── requirements.txt # Python dependencies
├── README.md # Installation & documentation (This file)
│
├── templates/
│ └── index.html # Custom HTML5 dashboard landing layout (Inter & Outfit fonts)
│
├── static/
│ ├── css/
│ │ └── styles.css # Sleek glassmorphism stylesheets
│ └── js/
│ └── main.js # Client SPA controller, fetch requests, & gauge logic
│
├── data/
│ └── sample_jds.json # Predefined high-quality Job Descriptions for testing
│
└── utils/
├── parser.py # Extract text and page count from PDF resumes
├── preprocessing.py # Tokenization, cleaning, and regex contact/name parsing
├── skill_extractor.py # Skill taxonomies & custom Regex-based matchers
├── ats_scorer.py # ATS scoring calculations, action verbs, and thresholds
├── matcher.py # TF-IDF + Cosine Similarity matching engine
├── recommender.py # Career mapping, skill gap analysis, and course paths
├── pdf_generator.py # ReportLab PDF print-out layout manager
└── visualizer.py # [Legacy] Streamlit dashboard visualization utilities
Follow these steps to run the application locally on your computer:
Make sure you have Python 3.8+ installed.
Open your terminal and navigate to the project workspace:
cd c:/Users/paras/OneDrive/Documents/AI_Resume_Project
Install all required libraries using pip:
pip install -r requirements.txt
(Note: The application will automatically download the spaCy en_core_web_sm model on first launch. If you face any issues, you can run python -m spacy download en_core_web_sm manually).
Start the local server:
python app.py
Once launched, open your web browser and navigate to:
http://127.0.0.1:5000
Step 1: Get Scored
.pdf format) inside the upload box.Step 2: Match against a Job Description (JD)
Step 3: Roadmap Upskilling
C++, C#, .NET, Node.js) while maintaining strict word boundary safety to eliminate substring collisions and bullet indexing errors.const state = {...}) in vanilla JavaScript, ensuring parsed resume metadata, matched job results, and navigation tab views persist seamlessly without full-page reloads.io.BytesIO and ReportLab's SimpleDocTemplate to compile and stream custom-branded PDF scorecards directly to client browsers without saving files to server disks.