Most candidates apply to jobs with the same generic resume. ATS systems filter them out before a human ever reads a word.
The problem isn't that candidates lack experience — it's that their resume doesn't speak the language of the specific role they're applying for. Keywords, phrasing, and structure all matter enormously at the filtering stage. Yet tailoring a resume for each application takes 30–45 minutes of manual effort per job.
Rothr Resume Builder collapses that to under two minutes.
Paste your resume. Paste the job description. Get a tailored resume built around the role.
A two-model routing strategy — speed where it matters, quality where it counts.
The system uses a centralized AI router (/lib/ai-router.ts) to
direct tasks to the appropriate model:
This approach keeps latency low for the interactive parsing steps while reserving compute for the outputs the candidate actually sees and submits.
Supabase handles session state and resume version storage. Netlify functions manage the API layer, with timeout configuration tuned for longer Sonnet inference calls.
The hardest design problem wasn't the AI — it was trust.
Candidates are inherently skeptical of AI-rewritten resumes. They worry the output will sound generic, misrepresent their experience, or feel inauthentic. Three decisions addressed this directly:
The ATS score is shown as a before/after comparison so candidates see measurable improvement, not just a finished document.
Resume Builder is the entry point into the Rothr candidate journey.
After generating a tailored resume, candidates can use the same profile to apply for roles directly through the Rothr platform — where they may be invited to complete an AI interview scored by Claude Sonnet. The resume data flows into the interview context, giving the AI interviewer a grounded understanding of the candidate's background before the session begins.
This creates a coherent candidate experience: one profile, one place, used across both the application and interview stages.
Building this as both designer and developer surfaced a tension I didn't anticipate: the AI output quality is only as good as the prompt, and the prompt is only as good as the structured data fed into it. The real design work wasn't the UI — it was designing the parsing pipeline that converts a messy pasted resume into clean structured JSON the model can reason over.
If I were to go deeper, I'd invest in a smarter resume parser that handles edge-case formatting (two-column layouts, skills as commas, hybrid roles) and a learning layer that improves bullet rewriting based on which versions candidates actually keep.