AI Resume Parser is a FastAPI-based backend service that extracts structured work experience from resumes using advanced natural language processing. Built to serve as a microservice for the PortFlow app, it converts uploaded resumes into a JSON format that can be consumed by frontends or other services.
- ๐ Accepts resume files (
.pdf) via POST requests - ๐ค Parses job titles, companies, dates, and descriptions using LLMs (Mistral AI)
- ๐งผ Handles and sanitizes messy or unstructured resume data
- ๐ FastAPI-based RESTful API
- ๐ก๏ธ Handles errors gracefully with fallback responses
- ๐ Secure API key usage via environment variables
- Python
- FastAPI โ Web framework
- Uvicorn โ ASGI server
- Mistral AI โ For language-based parsing
- python-docx, PyMuPDF โ Resume file handling
- Clone the repository:
git clone https://github.com/ShawnN24/AI-Resume-Parser.git
cd AI-Resume-Parser- Create a virtual environment:
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate- Install dependencies:
pip install -r requirements.txt- Set up your environment variables:
API_KEY="YOUR_OPENROUTER_API_KEY"
PROJECT_KEY="WRITE_YOUR_OWN_KEY_HERE"uvicorn app.main:app --reloadForm Data: file: Resume file (.pdf)
Example Response (on success):
{
"name": "Example Name",
"email": "example@gmail.com",
"skills": [
"javascript",
"googlecloud",
"python",
"amazonwebservices",
"github",
"react"
]
}Form Data: file: Resume file (.pdf)
Example Response (on success):
{
"experience": [
{
"job_title": "Full Stack Example Intern",
"company": "Example Inc.",
"location": "Remote",
"start_date": "Jan 2025",
"end_date": "Current",
"bullets": [
"Developing an AI Resume Parser using python, FastAPI, Uvicorn, and Mistral AI",
"Designed a web app to auto generate portfolio websites given a Github profile and a Resume"
]
}
]
}