| title | ResumeDataExtractor |
|---|---|
| emoji | 🦀 |
| colorFrom | indigo |
| colorTo | pink |
| sdk | docker |
| pinned | false |
| app_port | 7860 |
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.
🔗 Live Demo: Hugging Face Space
- 📄 PDF Parsing: extract raw text from PDF resumes reliably.
- 🤖 AI Analysis: Uses Google's Gemini 1.5 Pro/Flash to interpret candidate data.
- 📊 Smart Scoring: Compare a Resume against a Job Description (JD) to get a 0-100% match score.
- 🧩 Skill Gap Analysis: Automatically identifies Matching Skills and Missing Skills based on the JD.
- ⚡ Hybrid Architecture: Runs a FastAPI backend for logic/API processing and a Streamlit frontend for the UI in a single container.
This project uses a microservices-in-a-box approach:
- Backend (
main.py): A FastAPI server running on port8000. It handles file uploads, text extraction, and communicates with the Google Gemini API. - Frontend (
app.py): A Streamlit dashboard running on port7860. It accepts user input and sends requests to the local backend. - AI Engine: The system dynamically selects the best available Gemini model (e.g.,
gemini-1.5-flashorgemini-pro) to process the text.
- Python 3.11+
- A Google Gemini API Key (Get it here)
git clone [https://huggingface.co/spaces/LovnishVerma/ResumeDataExtractor](https://huggingface.co/spaces/LovnishVerma/ResumeDataExtractor)
cd ResumeDataExtractor
pip install -r requirements.txt
Create a .env file in the root directory:
GEMINI_API_KEY=your_actual_api_key_here
You can run the startup script (Linux/Mac/WSL) which launches both services:
chmod +x start.sh
./start.sh
Or run them manually in separate terminals:
Terminal 1 (Backend):
uvicorn main:app --host 0.0.0.0 --port 8000
Terminal 2 (Frontend):
streamlit run app.py --server.port 7860
Access the UI at: http://localhost:7860
This project is configured to run effortlessly in Docker (standard for Hugging Face Spaces).
# Build the image
docker build -t resume-extractor .
# Run the container (Pass your API Key)
docker run -p 7860:7860 -e GEMINI_API_KEY="your_key" resume-extractor
app.py: Streamlit frontend interface.main.py: FastAPI backend server.parser_logic.py: Core logic for PDF extraction and interaction with Google Gemini.start.sh: Entry point script to run both servers simultaneously.Dockerfile: Container configuration.
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.