From FastAPI to Ollama: Building an AI Resume Analyzer with Local LLM Support


🚀 Why I Built This
As a web developer transitioning into the world of GenAI and LLMs, I wanted to work on a project that was not only practically useful but also demonstrated my ability to build full-stack applications powered by AI. Resume matching is a common challenge for job seekers (like me), and I thought: why not use LLMs to help tailor resumes for specific job descriptions?
🛠️ What It Does
This project is an AI-powered Resume Analyzer and Enhancer. You upload your resume and a job description (in DOCX or PDF format), and the app does the following magic:
Analyzes both using an LLM (OpenAI or Ollama-powered local models like Gemma)
Provides improvement suggestions based on the job description
Shows a match percentage
Optionally calculates ATS (Applicant Tracking System) scores
Generates a downloadable, improved resume
All of this happens on your machine, with no user data stored (if LLM_PROVIDER
is Ollama).
🔍 Tech Stack
Frontend: Streamlit (interactive UI with file upload)
Backend: FastAPI (handles parsing, LLM calls, resume processing, and API)
LLM Support:
OpenAI (e.g.,
gpt-3.5-turbo
)Ollama for local models like
gemma3:1b
CI/CD: GitHub Actions with PyTest
🧪 Challenges
Local LLM latency: Gemma works great, but takes a few seconds longer than OpenAI
PDF encoding issues: Special characters require tweaking to avoid encoding errors
Resume formatting: Generating a clean, usable resume from text output
💡 What I Learned
Working with local LLMs via Ollama
Writing Docker and Docker Compose for local dev + deployment
Using Streamlit + FastAPI together smoothly
📦 How to Use It
Clone the repo, install requirements, or run with Docker
Pull a local model with
ollama pull gemma3:1b
Run the app and start analyzing!
Full instructions in the GitHub README
✨ What’s Next
More advanced ATS scoring
Hosting options
Support for more models
🤝 Let’s Connect
I built this as a part of my journey to transition into AI/LLM-focused roles. I'd love to connect if you’re working in this space or have feedback!
Check out the GitHub repo here: https://github.com/jramnai/ai-resume-analyzer
#GenAI #LLM #FastAPI #OpenSource #CareerTools #Ollama #Gemma
Subscribe to my newsletter
Read articles from JayRam Nai directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by

JayRam Nai
JayRam Nai
Open edX expert and open-source enthusiast.