Case study / 2026
Joben
Resume builder with an ATS check that works without an account.
- Role
- Author of 419 of 421 commits.
- Next.js
- TypeScript
- Supabase
- Clerk
- Anthropic API
- Stripe
- Upstash Redis
- next-intl

01
Problem
People send resumes and hear nothing back. Many companies run resumes through an automated screening system first. Most candidates never learn whether that system could read theirs.
Joben answers that question. It scores a resume from 0 to 100, points to weak bullets and rewrites them, writes cover letters and exports a PDF. The interface is in English and Romanian.
02
What was missing
The first thing a person does with Joben is check a resume. That check sat behind an account. A visitor had to sign up before seeing any result.
The homepage button added to it. It sent visitors to sign-up instead of the checker.
03
How I investigated
I walked the path a visitor takes from the homepage to the first result. That is where I found the button.
The free check calls a language model, and every call costs money. An open check needs limits before it can go public. That shaped the decisions below.
04
What I built
I removed the login from the check. Two public checks run without an account.
One check calls the model and allows one scan per day per visitor. The other has no model call and allows 20 per hour per IP address.
The rate limit needs both the IP address and a device cookie to be under the cap. If Redis fails, the limit denies the request.
Text is extracted on the server and the file is never stored. The public check never touches user or resume tables. Model output goes through a filter that removes false positive issues before a visitor sees it.
Email capture uses double opt-in. A scan made without an account carries into the new account at sign-up.
PDF export and resume parsing run as separate services.
05
Result
Joben is live at joben.eu in English and Romanian, with more than 50 active users.
The repository has 421 commits and 82 test files. I wrote 419 of the commits.