DEV Community

Cover image for I built AI skills that tailor my CV to every job link
mohamedaminehamdi
mohamedaminehamdi

Posted on

I built AI skills that tailor my CV to every job link

Job hunting has an annoying loop: read the posting, rewrite the CV, work out
who to contact, write the message. Then do it again for the next job. Most
people skip the rewrite and send the same CV everywhere, and that CV is rarely
the right one.

So I built jobhunt: eleven skills for the coding agent you already use
(Claude Code, Codex, Gemini CLI, Cursor, Cline or Windsurf). You paste a job
link, and you get a CV built for that posting, the people worth messaging, and
the message to send them.

▶️ 22-second demo · 🌐 Site · 💻 Code

Same facts, better order

Here's the idea in one picture. The same six lines from one profile, against
one posting:

The same six CV lines reordered for a Senior Data Engineer posting: the three it asks for move above the fold, and the score goes from 1 of 3 to 3 of 3

Most readers stop after the first screenful. On the CV you send everywhere,
your three strongest lines for this job sat below it. Nothing about your
experience changed, only what a reader meets first.

What happens when you paste a link

You say something like:

prepare an application for https://boards.greenhouse.io/acme/jobs/42

and it runs, in order:

  1. Your profile, once. The first run reads your CV into profile.yaml and stops so you can check it. A model just read your career, so you approve it once and everything after is built on facts you agreed to.
  2. The posting. It reads the page in your own browser and pulls out what the job actually asks for.
  3. Fit, before. Every requirement is checked against your own work: what backs it, and what's a real gap.
  4. A CV for this job. Your strongest lines for this posting move to the top.
  5. Fit, after. The same check again, so you can see what the tailoring bought you.
  6. Cover letter and PDFs. The letter is written in the posting's language, and you get PDFs of both.
  7. Critique. What's still weak, before you send.
  8. Outreach. Who to message (alumni first, because they're the ones who reply), the LinkedIn searches that find them, and a draft note.

Everything lands in one folder per job. Each skill also works on its own: "how
good is my CV?" runs just the review, and "how well do I match " runs
just the fit score.

How it's built

Each skill is two halves:

  • SKILL.md, the judgement half. It holds plain-language instructions for the model: what to read, what to decide, when to stop and ask.
  • A small Python script, the exact half. Argv in, JSON out. It does the scoring, the ordering and the PDFs: anything that should be the same every time.

That split is why there's no API key. Your agent is the model, so whatever
you already pay for covers it. The scripts use only the Python standard
library, run on the 3.9 that ships with macOS, and each skill carries its own
copy of the library, so one skill installed alone works exactly like all
eleven.

Not making things up

A CV tool built on a language model has one obvious failure: inventing things.
jobhunt handles it structurally rather than with a promise:

  • Roles come from your profile. The CV is assembled from roles picked out of your profile, not written from scratch.
  • Added skills are dropped. A skill the model adds that your profile doesn't list is removed, and you're told.
  • Unbacked claims are flagged. If the tailored CV still names something your profile doesn't back, the after score says so: claimed but not evidenced.

It also never applies, never logs in and never sends anything. LinkedIn walls
off automated access, and the risk would land on your account, so it builds the
searches and you run them.

Try it

Inside Claude Code:

/plugin marketplace add mohamedaminehamdi/job-hunter
/plugin install jobhunt@jobhunt
Enter fullscreen mode Exit fullscreen mode

Any other agent, on macOS or Linux:

curl -fsSL https://raw.githubusercontent.com/mohamedaminehamdi/job-hunter/main/install.sh | sh
Enter fullscreen mode Exit fullscreen mode

Or download the folders from the site
and drop them in. It needs Python 3.9+ and Chrome, Chromium, Edge or Brave.

What's next

One-click apply on the boards that allow it, jobs found for you, and
application tracking. None of that is built yet: today it prepares the
application, and you send it.

jobhunt is free for your own job search, and the code is on GitHub. If you try
it, I'd love to hear where it breaks: open an issue, or leave a comment here.

I built jobhunt with Claude Code, and drafted this post with Claude's help.

Top comments (0)