DEV Community

KunStudio
KunStudio

Posted on • Originally published at ai-coverletter.pages.dev

I built a cover letter generator that mirrors the actual job posting

Most cover letter tools hand you a template and make you do the real work by hand. The real work is reading the job description and reflecting its language back, so a human recruiter (and the ATS keyword filter before them) sees a match. I wanted a tool that did that part.

AI Cover Letter takes the job description plus a few lines about your background and writes a specific, ATS-ready letter that mirrors what the role actually asks for.

Why I built it

Generic cover letters get filtered out twice: once by an applicant tracking system scanning for keywords, and once by a human who can smell a mass-mailed template. The fix is tailoring each letter to each posting, which is exactly the tedious part everyone skips. If tailoring were one paste and one click, people would actually do it.

How it works technically

  • Hosting: Cloudflare Pages with Functions. No server to run, fast everywhere.
  • Generation: Claude writes the letter. The prompt combines the pasted job description with the applicant's background, and is instructed to reflect the role's own keywords and requirements so the output reads as a direct response to that posting, not a reusable form letter.
  • Free preview: It generates your real opening paragraph for free, tailored to that specific job, so you can judge fit before paying.
  • Payment: A one-time PayPal charge unlocks the full letter, with the option of a few versions to choose from. No subscription, because job hunts are bursty and a monthly fee for an occasional need is the wrong model.
  • Price validation: The unlock price is confirmed server-side, so it can't be edited in the browser.

Using it in three steps

  1. Paste the job. Title and description, plus a few lines about your background or resume.
  2. Preview free. It writes your real opening, tailored to that job.
  3. Unlock the full letter. Pay once, and get multiple versions if you want options.

Try it here: ai-coverletter.pages.dev

What I'd tell another builder

"ATS-ready" is not a magic setting, it is a consequence of using the job posting's own vocabulary. The useful move was feeding the job description in as first-class input and telling the model to mirror it, rather than generating a polished letter in a vacuum and hoping the keywords line up. Context beats polish.

Top comments (0)