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

JayRam NaiJayRam Nai
2 min read

🚀 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

0
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.