vnhax
MadsLorentzen / ai-job-search
View on GitHub ↗

Independent review by VNHAX. Not affiliated with or endorsed by the project's authors.

🔥 1,397 STARS IN ONE DAY (18 OCT 2026)BUILT ON CLAUDE CODEDRAFTER + REVIEWER AGENTSNEVER INVENTS EXPERIENCEMIT LICENSE
AI Job Search workflow: a job posting goes through parse, fit, draft and review steps to a tailored CV and cover letter
MadsLorentzen / ai-job-search — the job search that runs on your machine

AI Job Search: A Claude Code Framework for Tailored CVs, Cover Letters & Interview Prep

Fork it, fill in your profile once, and let Claude handle the repetitive parts of applying.
It scores each posting for fit, drafts a LaTeX CV and cover letter, has a second agent critique them, compiles and checks the PDFs, and preps you for interviews. Every claim is checked against your real profile.

69 → 20 → 1
Applications → interviews → contract
The author's own job search (his result, not a guarantee)
3 + 10
Core + extra slash commands
/setup, /scrape, /apply, then /rank, /interview…
2 pages + 1
CV + cover letter, verified
Compiled PDFs checked for layout and ATS text
HOW IT WORKS

How /apply Works (Drafter-Reviewer Pipeline)

Every application runs through the same eight steps, as described in the README:

1. Parse

Read the job posting from a URL, or from pasted text if the site blocks automated access.

2. Evaluate fit

Score skills, experience, culture, location and career alignment against your profile.

3. Draft

Write a tailored CV and cover letter in LaTeX.

4. Review

Spawn a separate reviewer agent with fresh context that researches the company and critiques the drafts.

5. Revise

Apply the reviewer's feedback.

6. Compile & inspect

lualatex for the CV, xelatex for the letter. Iterate until the CV is exactly 2 pages and the letter 1 page.

7. ATS check

Extract the PDF text layer and verify contact details, reading order and keyword coverage. Gaps stay visible, never stuffed.

8. Present

Show the final output with a verification checklist.

Commands: Core Workflow & Extensions

CommandWhat It Does
/setupBuilds your profile from a documents folder (CV, LinkedIn export, diplomas), a pasted CV, or an interview.
/scrapeSearches job portals for matching roles, deduplicates them and sorts by fit.
/apply <url>Runs the full drafter-reviewer pipeline above.
/rankBatch-scores newly scraped postings with parallel agents and returns a ranked shortlist.
/interviewBuilds a stage-specific prep pack and offers a mock interview. Gaps get honest bridge answers, never invented experience.
/outcomeRecords interviews, offers and rejections, archives what you sent, and drafts follow-ups (drafts only, never sends).
/gmail-sync · /notion-syncReads Gmail for status signals (you approve every change); publishes a read-only pipeline view to Notion.
/expand · /upskillEnriches your profile from public sources you linked; maps skill gaps to a learning plan.
/html-reportGenerates an offline HTML dashboard of your applications.
/add-template · /add-portalRegisters your own CV/letter template (LaTeX, Typst…); generates a search skill for a job board in your country.

Prerequisites

RequirementNotes
Claude CodeNo free tier: needs a Claude Pro, Max or Team plan, or Anthropic API credits.
Python 3.10+For the helper tools and salary lookup.
BunRuns the job-portal CLI tools.
LaTeX (lualatex + xelatex)TeX Live, MacTeX, TinyTeX or MiKTeX. The CV compiles with lualatex, the cover letter with xelatex.
pypdf (optional)Enables /apply's ATS parseability check; Poppler's pdftotext is a fallback.
Setup

Install & First Run

python3 tools/install_portal_clis.py

Run this after cloning, then start claude and run /setup, /scrape and /apply <url>. For your own search, use a private repository with this project as upstream (see the warning below).

More Commands:
Fork & clone (only to contribute):
gh repo fork MadsLorentzen/ai-job-search --clone && cd ai-job-search
Windows:
python tools\install_portal_clis.py
Apply with pasted text (if a site blocks fetching):
/apply <paste the full job description here>
Reconfigure only the job search:
/setup --section search

Why the Reviewer Agent Matters

The drafter writes; a second Claude agent with a fresh context researches the company and critiques the drafts before revision. The README says this catches missed keywords, weak framing and generic language that a single pass often leaves in. The reviewer receives drafts inline instead of re-reading files, to save tokens.

Works Outside Denmark Too

The profile, fit scoring and application pipeline are language- and country-agnostic. The shipped portal skills cover Danish job boards plus LinkedIn and freehire.me; /add-portal investigates your local job board and scaffolds a matching search skill, test-running a live query before registering it.

HONEST NOTES

Read This Before You Start

Points the README itself stresses:

  • Forks are public: /setup writes your name, contact details, history and salary expectations into tracked files. A fork of a public repo is always public, so use a private repo for your own search.
  • It costs money: Claude Code has no free tier, and each application runs several agents plus PDF compile loops.
  • Postings are untrusted input: The workflow follows no instructions inside postings, but these defences are instruction-level, not a sandbox. Skim what was fetched before you send anything.
  • One success story: 69 applications, 20 interviews and one contract is the author's personal result. Your market and profile will differ.
🔒 Your Data

Everything lives in files in your own repository. Gmail and Notion sync are optional and propose changes for you to approve.

⚖️ License

MIT License. Independent project, not affiliated with or endorsed by Anthropic.

⚠️ Scam Warning

The author says the project has no cryptocurrency, token or paid sponsorship program. The only support channels are Ko-fi and GitHub contributions.

Frequently Asked Questions

Do I need a paid Claude plan to use AI Job Search?

Yes. The README notes Claude Code has no free tier, so you need a Claude Pro, Max or Team subscription or Anthropic API credits. It also points users of other agent tools to AGENTS.md and community forks.

Is my personal data safe in this repository?

Your profile is written into tracked files in your copy of the repo. The README warns that a fork of a public repository is always public, so for your own job search it recommends a private repository with this project as upstream instead of a public fork.

Does it work outside Denmark?

The profile, fit evaluation and application pipeline are language- and country-agnostic. The shipped job-portal skills target Danish boards, plus LinkedIn and freehire.me; /add-portal generates a search skill for a job board in your own market.

Will employers mind an AI-assisted application?

The author says he was open about using the tool with every employer and that it usually started a technical conversation rather than counting against him. Whatever tool you use, review every application yourself before you send it.