An AI-powered Resume Extraction Engine that extracts structured information from resume PDFs using Google Gemini AI.
The system processes uploaded resumes, extracts important details, validates the extracted data, and stores it in a SQLite database using a FastAPI backend and Streamlit frontend.
- Resume PDF Upload
- AI-powered Resume Parsing using Gemini API
- Structured JSON Data Extraction
- PDF Text Extraction using pdfplumber
- SQLite Database Storage
- FastAPI REST APIs
- Streamlit Frontend UI
- Resume History Endpoint
- Pydantic Validation
- Error Handling & Retry Logic
- Confidence Score Support
- FastAPI
- Python
- SQLite
- SQLAlchemy
- Pydantic
- Streamlit
- Google Gemini API
- pdfplumber
document_ext_eng/
โโโ backend/
โ โโโ main.py
โ โโโ gemini_service.py
โ โโโ extractor.py
โ โโโ database.py
โ โโโ models.py
โ โโโ schemas.py
โ โโโ utils.py
โ โโโ prompts.py
โโโ frontend/
โ โโโ app.py
โโโ uploads/
โโโ screenshots/
โโโ requirements.txt
โโโ README.md
โโโ .gitignore
git clone https://github.com/shubham99557/document_ext_eng.git
cd document_ext_engpython -m venv venvvenv\Scripts\activatesource venv/bin/activatepip install -r requirements.txtCreate a .env file inside the backend folder.
GEMINI_API_KEY=your_api_key_hereInside backend folder:
uvicorn main:app --reloadBackend URL:
http://127.0.0.1:8000
Swagger API Docs:
http://127.0.0.1:8000/docs
Inside project root folder:
streamlit run frontend/app.pyFrontend URL:
http://localhost:8501
POST /extract-resumeUploads a resume PDF and extracts structured information using AI.
GET /all-resumesReturns all stored resumes from the SQLite database.
- User uploads a resume PDF
- PDF text extracted using pdfplumber
- Extracted text sent to Gemini API
- Gemini returns structured JSON response
- Response validated using Pydantic
- Resume data stored in SQLite database
- Extracted information displayed in Streamlit UI
{
"name": "SHUBHAM RAJ",
"email": "shubham_202300334@smit.smu.edu.in",
"phone": "+91 6299821330",
"skills": [
"Python",
"Django",
"JavaScript"
],
"education": "B.Tech CSE, SMIT",
"projects": [
"Kartloop",
"Smart Parking System"
]
}- Resume Ranking System
- ATS Score Generation
- Resume Summarization
- Multi-file Upload Support
- Skill Matching Engine
- Export to CSV/Excel
- OCR Support for Scanned PDFs
Shubham Raj
B.Tech CSE
Sikkim Manipal Institute of Technology









