AI Job Search

An open-source Claude Code framework that runs a whole job search: profile, portal search, fit scoring, tailored CV and cover letter, reviewer agent, interview prep and tracking.

AI Job Search turns Claude Code into a job application assistant. You fork the repository, fill in your profile once, and then run slash commands: search the job boards, score each posting against your profile, draft a tailored CV and cover letter, have a second agent critique them, and prepare for the interview.

It isn't an app or a service. It's a folder of instructions, skills and templates that runs on your own machine, with your own Claude subscription.

Author Mads Lorentzen, a geophysicist turned AI engineer, who built it for the Danish job market
Licence MIT
Language Python and TypeScript, with LaTeX templates
Created 18th March 2026
Traction 43,949 stars, 15,128 forks
Needs Claude Code (paid), Python 3.10+, Bun, and a LaTeX install

The story behind it

Lorentzen lost his position in late 2025 and built the framework for his own search, running the same commands every week. His result: 69 tailored applications, 20 first interviews and 1 signed contract. He started as an AI engineer in June 2026, and says he was open about the tool with every employer, which usually started a technical conversation rather than hurting him.

That track record is why the repository took off. It's a working system that got its author hired, not a demo.

What it does

The core is 3 commands:

  1. /setup builds your profile. It reads a documents/ folder (CV, LinkedIn export, diplomas, reference letters, past applications), imports a pasted CV, or interviews you.
  2. /scrape searches job portals, removes duplicates and sorts the results by fit.
  3. /apply <url> runs the full pipeline on 1 posting: evaluate the fit and score it, draft a CV and cover letter in LaTeX, pass them to a reviewer agent that critiques them, revise, and present the final PDFs.

10 more commands cover the rest of the search:

Command What it does
/rank Scores a batch of scraped postings in parallel and returns a ranked shortlist
/interview Builds a prep pack for a specific interview round, then offers a mock interview
/outcome Records results, archives what you sent, and drafts follow-ups for silent applications
/gmail-sync Reads Gmail for interview invites or rejections, and proposes tracker updates for approval
/notion-sync Publishes a read-only view of the pipeline to a Notion database
/html-report Builds an offline HTML dashboard of the whole search
/upskill Maps skill gaps against the postings, with a learning plan
/expand Adds skills found in your GitHub, portfolio or publications to the profile
/add-template Registers your own CV or cover letter template
/add-portal Generates a search skill for a job board in your country

For business people

The problem it solves: a serious job search means dozens of applications, each needing a tailored CV and letter. That's the "Sunday of cover-letter writing" the author wanted to get rid of.

Why it works better than asking a chatbot:

  • It knows you in detail. Profile, behavioural assessment, writing style and STAR examples live in files, so every draft starts from the same facts.
  • It says no. A scoring framework rates each posting on 5 dimensions, and deal-breakers veto a job before you spend time on it.
  • It checks its own work. A second agent reviews every CV and letter before you see them.
  • It remembers. A tracker and an archive of everything sent feed follow-ups, interview prep, and a later recalibration of the scoring from what actually got interviews.
  • It never invents. Gaps in experience get honest "bridge" answers, and follow-ups only use claims from materials you already sent.

The costs and limits:

  • Claude Code has no free tier. You need a Claude subscription or API credits.
  • The job boards are Danish. Jobindex, Jobnet, Akademikernes Jobbank and Jobdanmark come built in. The profile, scoring and application steps work in any country, and /add-portal generates a skill for a local board.
  • A fork is public. /setup writes your name, work history and salary expectations into tracked files. The README warns about this plainly: for a real search, use a private copy instead of a fork.
  • Postings are untrusted input. The workflow ignores instructions hidden in a job ad and doesn't follow its links, but the author calls these defences instruction-level, not a sandbox. Read what it fetched before you send anything.

For technical people

Install

gh repo fork MadsLorentzen/ai-job-search --clone
cd ai-job-search

# Portal search CLIs (TypeScript, run with Bun)
for tool in jobbank-search jobdanmark-search jobindex-search jobnet-search linkedin-search freehire-search; do
  (cd .agents/skills/$tool/cli && bun install)
done

claude    # then run /setup inside Claude Code

The CV compiles with lualatex and the cover letter with xelatex. pypdf is optional, for an ATS parseability check on the finished PDF.

How it's built

  • CLAUDE.md holds the candidate profile and the workflow rules.
  • .claude/skills/job-application-assistant/ is the core skill, split into 7 files: candidate profile, behavioural profile, writing style, job evaluation, CV templates, cover letter templates and interview prep.
  • .claude/commands/ holds 1 Markdown file per slash command.
  • .agents/skills/ holds 6 portal search tools, each a small CLI with its own tests.
  • CI compiles the LaTeX templates, lints the skills and type-checks the CLIs.
  • AGENTS.md lets Codex, Gemini CLI and other agents use the portal skills, and community forks adapt the full workflow.

⚠️ WARNING: 1 of the bundled search tools, linkedin-search, fetches LinkedIn's public job listings. Skip it if your LinkedIn account mustn't touch automated traffic.

Value

For a job search, it's the most complete open-source setup I've seen: the whole funnel from search to signed contract, with an honest scoring step that saves time on jobs you shouldn't apply for.

For me, the interest is the architecture. It uses the same patterns as my own NicAI setup, applied to a single domain:

  • Profile files as the source of truth, like my knowledge base (see The NicAI workspace ).
  • A writing-style file so drafts sound like the candidate (see The NicAI voice stack ).
  • A drafter and a reviewer agent, a lighter version of my review loop (see The Council ).
  • A tracker that recalibrates the scoring from real outcomes. That's the flywheel most AI setups promise and few build.

It's a good template for anyone who wants to see what a well-built, single-purpose Claude Code framework looks like.

Further Reading

NicAI
Written by NicAI, Nic's AI assistant, for his personal knowledge base. Researched and drafted by the model, not hand-written by Nic. Verify anything you plan to act on.