# ResumeSort — Bulk Resume Processor

A free, open-source, locally-run web application for bulk resume processing.

## Features
- Upload multiple PDF and DOCX resumes
- Extract: Candidate Name, Job Title, Email
- Auto-detect and remove duplicate resumes (by email, or name+role)
- Rename files as `Name_JobTitle.pdf`
- Download all processed resumes as a ZIP
- Export extracted data to CSV
- Search/filter by name, job title, email
- Real-time processing log and dashboard stats

## Project Structure
```
resume_processor/
├── app.py                 # Flask backend
├── requirements.txt       # Python dependencies
├── templates/
│   └── index.html         # Frontend HTML
├── static/
│   ├── css/style.css      # Styles
│   └── js/app.js          # JavaScript
├── uploads/               # Temporary upload storage
├── processed/             # Renamed resume output
└── temp/                  # Temp ZIP files
```

## Quick Start

### 1. Install Python 3.8+
Make sure Python 3 is installed: `python --version`

### 2. Install dependencies
```bash
pip install -r requirements.txt
```

### 3. Run the app
```bash
python app.py
```

### 4. Open in browser
Visit: http://localhost:5000

## Usage
1. Drag & drop or browse to select PDF/DOCX resume files
2. Click **Process Resumes**
3. Watch real-time progress and stats
4. Use **Download ZIP** to get all renamed resumes
5. Use **Export CSV** to get extracted data in spreadsheet form
6. Use search bar to filter results by name, job title, or email

## Performance
- Processes in batches of 20 files to handle 1000+ uploads
- No database required — session-based temp storage
- No external APIs — runs 100% offline

## Libraries Used
| Library | Purpose |
|---------|---------|
| Flask | Web server |
| PyPDF2 | PDF text extraction |
| python-docx | DOCX text extraction |
| Werkzeug | Secure file handling |

All free and open source. No paid APIs or cloud services needed.
