A small tool that tailors a resume to a specific job posting — paste a link or upload a PDF, and get back a version rewritten to match, grounded entirely in what's already there. Live at resume-tailor.afyagateway.io.
The problem
Tailoring a resume per application is tedious but genuinely helps — re-emphasizing the right bullets and keywords for each posting takes real time to do well by hand. This started as a local script (comparing a resume against a job posting, the way I'd normally do it by hand) and grew into a small hosted app once it was clear the workflow was worth having on demand, from anywhere.
Approach
Claude proposes targeted, surgical edits — reworded bullets, re-ordered emphasis, adjusted tags — matched against known role/company entries in a structured resume schema, explicitly instructed never to invent experience or credentials. Suggestions use the Anthropic API's structured outputs (a Pydantic schema enforced during generation) rather than asking the model to format JSON via prompt instructions, so malformed output isn't possible. A resume can also be uploaded as a PDF — Claude's native document understanding digitizes it into the same schema for review before tailoring, rather than requiring hand-written YAML.
Stack
Django, deployed on Render's free tier with a custom subdomain. WeasyPrint renders the final tailored resume to a downloadable PDF, reusing the same branding as my CV page on this site. Stateless by design — nothing is stored server-side beyond a single request's session; auth-gated since it's a personal tool, not a public service.
Status
Live and in personal use. Source is private — this write-up covers the approach and architecture rather than linking a public repo.