Ahmed Doghri Logo Image
Ahmed Doghri

ATS Proof Resume Generator

Resume tools charge $9 to $49 a month to do something an API call can do for pennies. I got annoyed enough to build the free version.

The $200 Problem I Solved for Free

A resume walks into an Applicant Tracking System. The ATS doesn't care about your work ethic, your ten years of experience, or the font you agonized over. It cares about keyword overlap with the job description, and it silently discards about 75% of resumes before a human ever opens one. I watched friends who were genuinely good at their jobs get filtered out without so much as a rejection email.

Naturally, the internet's answer to "the system is unfair" was to sell you a subscription. Teal, Enhancv, Kickresume, Resume Worded, all running the same playbook: put the useful features behind a paywall, dress up urgency as scarcity, and charge desperate job seekers $9 a week to $49 a month for something an API call handles in about four seconds.

So I built the version that doesn't charge rent. Free, open-source, and it does the actual job: read the posting, rewrite the resume to speak the ATS's language, and hand it back in a format a human recruiter can still read without flinching.

How It Actually Works

No magic, just a pipeline that does its job and gets out of the way:

FastAPI backend: handles resume processing asynchronously, so the app stays responsive instead of freezing while an LLM thinks.

Live progress over WebSockets: you see exactly what stage it's on instead of staring at a spinner and wondering if it crashed.

AI-powered rewriting: OpenAI (with Claude and GPT support) reads the job posting and restructures your resume to mirror it, without inventing experience you don't have.

Document pipeline: extracts your existing resume content, restructures it against the job requirements, and outputs a properly formatted document instead of a wall of keyword soup.

Why This Isn't Just Keyword Stuffing

Every other resume tool I tried focused on making things look nicer. That's not the problem. The real problem is that a modern job application has two audiences reading the same document with completely different comprehension: an algorithm scanning for exact phrase matches, and a human scanning for whether you sound like someone worth calling.

So it does the things the paid tools charge extra for, or skip entirely:

Job posting analysis: pulls the actual signal out of a job description instead of the fluff at the top

Resume rewriting: restructures your real experience to mirror what the posting is asking for, no fabrication

ATS-friendly formatting: follows the unglamorous formatting rules that keep a resume machine-readable

Tactical recommendations: tells you what's actually missing instead of a generic "add more keywords"

Interview question generator: so you walk in having already rehearsed the questions your own resume invites

Why I'm Giving It Away

I'm not trying to build a resume startup. I'm trying to remove one specific tax on job hunting while unemployed, which is a genuinely bad time to be asked for $49 a month.

Getting filtered out and getting called back usually comes down to whether you speak both languages: the algorithm's and the human's. This tool exists so that skill doesn't cost a subscription.

Tools Used

Python
FastAPI
WebSockets
OpenAI API
Docker
HTML/CSS
JavaScript
Tailwind CSS
Selenium
python-docx
Uvicorn
Git