Spaces:
Sleeping
Sleeping
Update README.md
Browse files
README.md
CHANGED
|
@@ -8,3 +8,114 @@ pinned: false
|
|
| 8 |
---
|
| 9 |
|
| 10 |
Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 8 |
---
|
| 9 |
|
| 10 |
Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
|
| 11 |
+
|
| 12 |
+
# π― Intelliverse β AI-Powered Recruitment Automation
|
| 13 |
+
|
| 14 |
+
> **Hackathon Project** β Automated Resume Screening, Scoring & Interview Scheduling
|
| 15 |
+
|
| 16 |
+
---
|
| 17 |
+
|
| 18 |
+
## π What It Does
|
| 19 |
+
|
| 20 |
+
1. **Upload** bulk PDF resumes
|
| 21 |
+
2. **AI Scores** each candidate 0-100 against your Job Description (using Google Gemini)
|
| 22 |
+
3. **Auto-Shortlist** candidates above your threshold
|
| 23 |
+
4. **Sends Emails** β interview invites to shortlisted, rejection emails to others β all automated
|
| 24 |
+
|
| 25 |
+
---
|
| 26 |
+
|
| 27 |
+
## π οΈ Tech Stack
|
| 28 |
+
|
| 29 |
+
| Layer | Tech |
|
| 30 |
+
|-------|------|
|
| 31 |
+
| Backend | Flask + SQLAlchemy (SQLite) |
|
| 32 |
+
| AI Engine | Google Gemini 1.5 Flash/Pro |
|
| 33 |
+
| PDF Parsing | PyMuPDF (fitz) |
|
| 34 |
+
| Email | Python SMTP (Gmail) |
|
| 35 |
+
| Frontend | Tailwind CSS + Chart.js |
|
| 36 |
+
|
| 37 |
+
---
|
| 38 |
+
|
| 39 |
+
## β‘ Quick Start
|
| 40 |
+
|
| 41 |
+
### 1. Clone & Install
|
| 42 |
+
```bash
|
| 43 |
+
git clone <your-repo>
|
| 44 |
+
cd talentiq-ats
|
| 45 |
+
pip install -r requirements.txt
|
| 46 |
+
```
|
| 47 |
+
|
| 48 |
+
### 2. Configure Environment
|
| 49 |
+
```bash
|
| 50 |
+
cp .env.example .env
|
| 51 |
+
# Edit .env with your Gemini API key and Gmail credentials
|
| 52 |
+
```
|
| 53 |
+
|
| 54 |
+
### 3. Run
|
| 55 |
+
```bash
|
| 56 |
+
python app.py
|
| 57 |
+
# Open http://localhost:5000
|
| 58 |
+
```
|
| 59 |
+
|
| 60 |
+
---
|
| 61 |
+
|
| 62 |
+
## π Project Structure
|
| 63 |
+
|
| 64 |
+
```
|
| 65 |
+
talentiq-ats/
|
| 66 |
+
βββ app.py # Flask routes & main logic
|
| 67 |
+
βββ utils/
|
| 68 |
+
β βββ ai_analyzer.py # Gemini AI resume analysis
|
| 69 |
+
β βββ resume_parser.py # PDF text extraction (PyMuPDF)
|
| 70 |
+
β βββ scheduler.py # Email sending (SMTP)
|
| 71 |
+
β βββ database.py # SQLAlchemy models
|
| 72 |
+
βββ templates/
|
| 73 |
+
β βββ base.html # Layout with navbar
|
| 74 |
+
β βββ index.html # Landing page
|
| 75 |
+
β βββ upload.html # Resume upload & screening
|
| 76 |
+
β βββ dashboard.html # Analytics dashboard
|
| 77 |
+
β βββ candidate_detail.html # Individual candidate view
|
| 78 |
+
βββ requirements.txt
|
| 79 |
+
βββ .env.example
|
| 80 |
+
```
|
| 81 |
+
|
| 82 |
+
---
|
| 83 |
+
|
| 84 |
+
## π Environment Variables
|
| 85 |
+
|
| 86 |
+
| Variable | Purpose |
|
| 87 |
+
|----------|---------|
|
| 88 |
+
| `GEMINI_API_KEY` | Google Gemini AI key |
|
| 89 |
+
| `SECRET_KEY` | Flask session secret |
|
| 90 |
+
| `SMTP_USER` | Gmail address for sending emails |
|
| 91 |
+
| `SMTP_PASS` | Gmail App Password (not account password) |
|
| 92 |
+
|
| 93 |
+
---
|
| 94 |
+
|
| 95 |
+
## π Features Overview
|
| 96 |
+
|
| 97 |
+
- **Bulk PDF upload** with drag-and-drop
|
| 98 |
+
- **Configurable score threshold** (slider UI)
|
| 99 |
+
- **Interview scheduler** β set date, time, meeting link
|
| 100 |
+
- **Auto email** β HTML-formatted invite & rejection emails
|
| 101 |
+
- **Dashboard** with Doughnut & Bar charts
|
| 102 |
+
- **Candidate profiles** with skill match/gap analysis
|
| 103 |
+
- **Re-schedule** interviews from candidate detail page
|
| 104 |
+
- **SQLite database** β full audit trail
|
| 105 |
+
|
| 106 |
+
---
|
| 107 |
+
|
| 108 |
+
## π§ AI Prompt Output (JSON)
|
| 109 |
+
|
| 110 |
+
```json
|
| 111 |
+
{
|
| 112 |
+
"name": "Priya Sharma",
|
| 113 |
+
"email": "priya@example.com",
|
| 114 |
+
"score": 84,
|
| 115 |
+
"reasoning": "Strong Python and ML background. Matches 7/9 required skills.",
|
| 116 |
+
"matching_skills": ["Python", "TensorFlow", "REST APIs"],
|
| 117 |
+
"missing_skills": ["Kubernetes", "AWS"],
|
| 118 |
+
"verdict": "Interview"
|
| 119 |
+
}
|
| 120 |
+
```
|
| 121 |
+
|