Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

2 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ“„ AI Resume Extraction Engine

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.


๐Ÿš€ Features

  • 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

๐Ÿ›  Tech Stack

Backend

  • FastAPI
  • Python
  • SQLite
  • SQLAlchemy
  • Pydantic

Frontend

  • Streamlit

AI Integration

  • Google Gemini API

PDF Processing

  • pdfplumber

๐Ÿ“‚ Project Structure

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

โš™๏ธ Installation & Setup

1๏ธโƒฃ Clone Repository

git clone https://github.com/shubham99557/document_ext_eng.git
cd document_ext_eng

2๏ธโƒฃ Create Virtual Environment

python -m venv venv

3๏ธโƒฃ Activate Virtual Environment

Windows

venv\Scripts\activate

Linux/Mac

source venv/bin/activate

4๏ธโƒฃ Install Dependencies

pip install -r requirements.txt

5๏ธโƒฃ Add Gemini API Key

Create a .env file inside the backend folder.

GEMINI_API_KEY=your_api_key_here

โ–ถ๏ธ Running Backend

Inside backend folder:

uvicorn main:app --reload

Backend URL:

http://127.0.0.1:8000

Swagger API Docs:

http://127.0.0.1:8000/docs

โ–ถ๏ธ Running Frontend

Inside project root folder:

streamlit run frontend/app.py

Frontend URL:

http://localhost:8501

๐Ÿ”Œ API Endpoints

๐Ÿ“ค Extract Resume

POST /extract-resume

Uploads a resume PDF and extracts structured information using AI.


๐Ÿ“„ Get All Resumes

GET /all-resumes

Returns all stored resumes from the SQLite database.


๐Ÿค– AI Workflow

  1. User uploads a resume PDF
  2. PDF text extracted using pdfplumber
  3. Extracted text sent to Gemini API
  4. Gemini returns structured JSON response
  5. Response validated using Pydantic
  6. Resume data stored in SQLite database
  7. Extracted information displayed in Streamlit UI

๐Ÿ“Œ Sample JSON Output

{
  "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"
  ]
}

๐Ÿ“ธ Screenshots

๐Ÿ  Home Page

Home Page


๐Ÿ“ค Resume Upload Page

Resume Upload


โœ… Resume Extraction Output

Resume Extracted


๐Ÿ“„ Swagger API Docs

Swagger Page


๐Ÿ“„ Swagger API Output

Swagger Output


๐Ÿ“‚ All Resume API

All Resume API


๐Ÿ“„ All Resume Output

All Resume Output


๐Ÿ—„ Database Output

Database


๐Ÿ“ Folder Structure

Folder Structure


๐Ÿ’ป Streamlit Frontend

Frontend


๐Ÿ”ฎ Future Improvements

  • Resume Ranking System
  • ATS Score Generation
  • Resume Summarization
  • Multi-file Upload Support
  • Skill Matching Engine
  • Export to CSV/Excel
  • OCR Support for Scanned PDFs

๐Ÿ‘จโ€๐Ÿ’ป Author

Shubham Raj
B.Tech CSE
Sikkim Manipal Institute of Technology


About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages