Repository files navigation # AI Resume Intelligence Analyzer
A **production-grade, fully dynamic** Python terminal tool that evaluates a candidate's resume against a target job role and optional company.
## Features
- **Real Internet Scraping** — fetches live job requirements via DuckDuckGo (no API key required)
- **24-Hour Cache** — avoids re-scraping on every run
- **Skill Normalization** — `sklearn` → `scikit-learn`, `k8s` → `kubernetes`, etc.
- **5-Feature ML Scoring** — scikit-learn Linear Regression model with MinMaxScaler
- **Logistic Probability Estimation** — shortlisting probability with confidence band
- **Professional Competency Analysis** — 8-axis personality spider chart
- **Dark-Themed Visual Charts** — Skill Radar + Competency Spider (matplotlib)
- **Week-by-Week Learning Roadmap** — 30+ skill knowledge base
- **Free Resource Links** — YouTube, freeCodeCamp, official docs, GitHub awesome repos
- **Resume Bullet Suggestions** — action-verb improvements for missing skills
- **Categorized Interview Questions** — Conceptual / Coding / Scenario / Behavioral
- **Full Logging** — `logs/analyzer.log` for debugging
---
## Project Structure
```
resume_ai_analyzer/
├── main.py # Entry point — 12-step pipeline
├── requirements.txt
├── README.md
├── modules/
│ ├── logger.py # Centralized logging
│ ├── utils.py # Shared helpers
│ ├── cache_manager.py # 24h on-disk cache
│ ├── resume_parser.py # PyPDF2 + pdfminer.six fallback
│ ├── skill_extractor.py # Regex + DB + keyword density + exp signal
│ ├── skill_normalizer.py # Alias normalization
│ ├── internet_job_scraper.py # DuckDuckGo multi-source scraper
│ ├── skill_gap_analyzer.py # Gap analysis + priority scoring
│ ├── skill_vectorizer.py # One-hot vectors + cosine similarity
│ ├── regression_model.py # 5-feature Linear Regression
│ ├── probability_estimator.py # Logistic probability + confidence band
│ ├── personality_analyzer.py # 8-axis keyword-signal competency
│ ├── radar_chart_generator.py # Skill coverage radar chart
│ ├── spider_chart_generator.py # Professional competency spider chart
│ ├── learning_roadmap_generator.py # Week-by-week roadmap
│ ├── resource_finder.py # Free learning resource links
│ ├── resume_improvement_advisor.py # Resume bullet suggestions
│ ├── interview_question_generator.py # Interview questions
│ └── report_generator.py # Full terminal + file report
├── data/
│ ├── skill_database.json # 200+ skills with categories
│ ├── skill_aliases.json # 100+ alias normalizations
│ └── fallback_role_skills.json # 17 roles for offline fallback
├── cache/
│ └── role_skill_cache.json # Auto-populated cache
├── outputs/
│ ├── skill_radar_chart.png # Generated radar chart
│ ├── personality_spider_chart.png # Generated spider chart
│ └── analysis_report.txt # Full saved report
└── logs/
└── analyzer.log # Detailed debug log
```
---
## Installation
### 1. Python Backend
```bash
pip install -r requirements.txt
```
### 2. React Frontend
```bash
cd frontend
npm install
cd ..
```
---
## Usage
### Launching the Full SaaS Dashboard (Recommended)
To run both the Python FastAPI backend and the React Vite frontend simultaneously, simply run:
```bash
start.bat
```
*(This will automatically start the backend server, launch the frontend server, and open the beautiful React UI in your default web browser.)*
### Launching the Terminal CLI (Fallback)
If you prefer the original command-line interface:
```bash
python main.py
```
At the prompts:
1. **Paste resume text** or enter a **PDF/TXT file path**
2. Enter the **target job role** (e.g. `Machine Learning Engineer`)
3. Enter the **company name** (optional, e.g. `Google`)
4. Type `exit` at any prompt to quit.
---
## Output
```
outputs/
├── skill_radar_chart.png
├── personality_spider_chart.png
└── analysis_report.txt
```
---
## Notes
- First run requires internet access for scraping; results are cached for 24 hours
- PDF extraction uses PyPDF2 with pdfminer.six as fallback
- All outputs are dynamic — results change with different resumes, roles, and companies
# AIresumeanalyzer
# AIRC
You can’t perform that action at this time.