DEV Community

Cover image for I Built a Local, AI-Powered ATS & Resume Generator to Hack the Job Search
zubairlearntech
zubairlearntech

Posted on

I Built a Local, AI-Powered ATS & Resume Generator to Hack the Job Search

Introduction

Applying for tech roles is a numbers game, but sending a generic resume is a guaranteed rejection. Every application needs a tailored resume, but manually rewriting bullet points for every single Job Description (JD) is exhausting.

As a Cloud and DevOps Engineer, I prefer automating my problems. So, I built a completely local, zero-cost, AI-powered Applicant Tracking System (ATS) and Resume Tailor. It ingests my master profile, reads a target JD, uses a local LLM to rewrite my experience, and spits out a perfectly formatted, ATS-friendly PDF.

Here is a look under the hood at how I built it, the architecture, and how you can run it locally.

The Tech Stack
I wanted an architecture that was robust, decoupled, and cloud-ready for eventual deployment to AWS.

  • Frontend: React (Vite) for a lightning-fast, dynamic UI.
  • Backend: FastAPI (Python) for asynchronous routing and high performance.
  • Database: MongoDB (Containerized via Docker) for unstructured document storage.
  • AI Engine: LangChain orchestrating Ollama (Llama 3), running entirely locally for data privacy and zero API costs.
  • PDF Rendering: WeasyPrint & Jinja2 templates.

Core Features

  1. Dynamic Master Profile Builder Instead of relying on a static text file, I built a LinkedIn-style dashboard. It allows you to dynamically add, edit, and organize your professional experience, technical projects, and certifications. This acts as the "source of truth" database for the AI.

Master Profile Builder

  1. AI Resume Tailoring & Rendering You simply paste a target Job Description into the generator. The FastAPI backend streams this to the local Llama 3 model, which intelligently filters and rewrites your master profile to highlight the exact keywords the employer is looking for. It then compiles this into a strict, Harvard-style HTML template and renders a downloadable PDF—guaranteed to pass automated ATS parsers.

AI Resume Tailoring

  1. Kanban Application Tracker Once the resume is generated, the app automatically tracks the application. I built a drag-and-drop Kanban board to visualize the CI/CD pipeline of the job hunt: from Preparing to Applied, Interviewing, and Offered.

Kanban Application Tracker

How to Run It Locally
I have open-sourced the project so you can use it for your own job hunt. You will need Docker and Ollama installed.

  1. Clone & Start the Database:
Bash
git clone https://github.com/zubair-gulbarge/job-hunter-ai.git
cd job-hunter-ai
docker-compose up -d

Enter fullscreen mode Exit fullscreen mode
  1. Start the Backend:
Bash
cd backend
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
uvicorn app.main:app --reload

Enter fullscreen mode Exit fullscreen mode
  1. Start the Frontend:
Bash
cd frontend
npm install
npm run dev

Enter fullscreen mode Exit fullscreen mode

What’s Next?
Building this was a massive learning experience in uniting AI with full-stack development and containerization. I am planning to implement AWS infrastructure via Terraform next.

I would love the community's feedback! Clone the repo, try tailoring your own resume, and let me know what features you think I should add next. If you run into issues, drop a comment below or open a PR.
https://github.com/zubair-gulbarge/job-hunter-ai.git

Top comments (0)