LovnishVerma commited on
Commit
6f112ca
Β·
verified Β·
1 Parent(s): 1f85315

Update README.md

Browse files
Files changed (1) hide show
  1. README.md +115 -1
README.md CHANGED
@@ -5,6 +5,120 @@ colorFrom: indigo
5
  colorTo: pink
6
  sdk: docker
7
  pinned: false
 
8
  ---
9
 
10
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5
  colorTo: pink
6
  sdk: docker
7
  pinned: false
8
+ app_port: 7860
9
  ---
10
 
11
+ # 🎯 AI Smart Resume Screen & Extractor
12
+
13
+ **ResumeDataExtractor** is an intelligent Application Tracking System (ATS) tool powered by **Google Gemini AI**. It parses PDF resumes, extracts structured data, and compares candidates against specific job descriptions to provide a match score, reasoning, and skill gap analysis.
14
+
15
+ πŸ”— **Live Demo:** [Hugging Face Space](https://huggingface.co/spaces/LovnishVerma/ResumeDataExtractor)
16
+
17
+ ---
18
+
19
+ ## πŸš€ Key Features
20
+
21
+ * **πŸ“„ PDF Parsing**: extract raw text from PDF resumes reliably.
22
+ * **πŸ€– AI Analysis**: Uses Google's **Gemini 1.5 Pro/Flash** to interpret candidate data.
23
+ * **πŸ“Š Smart Scoring**: Compare a Resume against a Job Description (JD) to get a 0-100% match score.
24
+ * **🧩 Skill Gap Analysis**: Automatically identifies **Matching Skills** and **Missing Skills** based on the JD.
25
+ * **⚑ Hybrid Architecture**: Runs a **FastAPI** backend for logic/API processing and a **Streamlit** frontend for the UI in a single container.
26
+
27
+ ---
28
+
29
+ ## πŸ› οΈ How It Works
30
+
31
+ This project uses a microservices-in-a-box approach:
32
+ 1. **Backend (`main.py`)**: A **FastAPI** server running on port `8000`. It handles file uploads, text extraction, and communicates with the Google Gemini API.
33
+ 2. **Frontend (`app.py`)**: A **Streamlit** dashboard running on port `7860`. It accepts user input and sends requests to the local backend.
34
+ 3. **AI Engine**: The system dynamically selects the best available Gemini model (e.g., `gemini-1.5-flash` or `gemini-pro`) to process the text.
35
+
36
+ ---
37
+
38
+ ## πŸ’» Local Setup & Installation
39
+
40
+ ### Prerequisites
41
+ * Python 3.11+
42
+ * A Google Gemini API Key ([Get it here](https://aistudio.google.com/app/apikey))
43
+
44
+ ### 1. Clone the Repository
45
+ ```bash
46
+ git clone [https://huggingface.co/spaces/LovnishVerma/ResumeDataExtractor](https://huggingface.co/spaces/LovnishVerma/ResumeDataExtractor)
47
+ cd ResumeDataExtractor
48
+
49
+ ```
50
+
51
+ ### 2. Install Dependencies
52
+
53
+ ```bash
54
+ pip install -r requirements.txt
55
+
56
+ ```
57
+
58
+ ### 3. Set Environment Variables
59
+
60
+ Create a `.env` file in the root directory:
61
+
62
+ ```env
63
+ GEMINI_API_KEY=your_actual_api_key_here
64
+
65
+ ```
66
+
67
+ ### 4. Run the Application
68
+
69
+ You can run the startup script (Linux/Mac/WSL) which launches both services:
70
+
71
+ ```bash
72
+ chmod +x start.sh
73
+ ./start.sh
74
+
75
+ ```
76
+
77
+ **Or run them manually in separate terminals:**
78
+
79
+ *Terminal 1 (Backend):*
80
+
81
+ ```bash
82
+ uvicorn main:app --host 0.0.0.0 --port 8000
83
+
84
+ ```
85
+
86
+ *Terminal 2 (Frontend):*
87
+
88
+ ```bash
89
+ streamlit run app.py --server.port 7860
90
+
91
+ ```
92
+
93
+ Access the UI at: `http://localhost:7860`
94
+
95
+ ---
96
+
97
+ ## 🐳 Docker Deployment
98
+
99
+ This project is configured to run effortlessly in Docker (standard for Hugging Face Spaces).
100
+
101
+ ```bash
102
+ # Build the image
103
+ docker build -t resume-extractor .
104
+
105
+ # Run the container (Pass your API Key)
106
+ docker run -p 7860:7860 -e GEMINI_API_KEY="your_key" resume-extractor
107
+
108
+ ```
109
+
110
+ ---
111
+
112
+ ## πŸ“‚ Project Structure
113
+
114
+ * **`app.py`**: Streamlit frontend interface.
115
+ * **`main.py`**: FastAPI backend server.
116
+ * **`parser_logic.py`**: Core logic for PDF extraction and interaction with Google Gemini.
117
+ * **`start.sh`**: Entry point script to run both servers simultaneously.
118
+ * **`Dockerfile`**: Container configuration.
119
+
120
+ ---
121
+
122
+ ## πŸ›‘οΈ License & Disclaimer
123
+
124
+ This project uses Google Generative AI. Ensure you comply with their usage policies. Resume data is processed in memory and not permanently stored on the server.