AI Job Search is a Python-based framework built on top of Claude Code that turns the CLI agent into a full job-application pipeline. It's for job seekers comfortable forking a repo, filling in personal data files, and running slash commands rather than clicking through a SaaS dashboard. The core workflow (profiling, fit evaluation, CV/cover letter drafting) is language- and country-agnostic; the shipped job-portal search skills target the Danish market (Jobindex, Jobnet, Akademikernes Jobbank), but the pattern is meant to be adapted to local boards via /add-portal.
Everything runs locally against your own fork or private repo. Claude Code drives the process through custom commands and skills defined in markdown files, and your CV/cover letter output compiles from LaTeX templates.
/setup onboarding: builds your candidate profile from a documents folder, a pasted CV, or an interview-style Q&A, and is safe to re-run as you add material./scrape and /rank: search multiple job portals, deduplicate results, and batch-score postings against a structured fit framework with deal-breaker vetoes and deadline flags./apply drafter-reviewer pipeline: evaluates fit on a given posting, drafts a tailored CV and cover letter in LaTeX, has a second agent critique the draft, and revises before final output./interview prep packs: builds stage-specific prep from the actual submitted CV, cover letter, and any recorded feedback, maps questions to your STAR examples, and offers a mock interview./outcome tracking: archives submitted materials per application, updates a CSV tracker, and drafts (never auto-sends) follow-up notes for applications that have gone quiet./gmail-sync proposes tracker updates from Gmail signals for your approval, /notion-sync publishes a read-only pipeline view to Notion, and /html-report generates an offline HTML dashboard./add-template registers custom CV/cover letter templates (LaTeX, Typst, others), /add-portal scaffolds a new job-board search skill, and /expand//upskill enrich your profile and surface skill gaps.This fits someone doing an active, sustained job search who wants every application tailored rather than templated, and who is willing to set up a real toolchain (Claude Code, Python, Bun, a LaTeX distribution) to get there. It works well if you want your CV, cover letter, application tracking, and interview prep in one repo you control, with your personal data staying on your own machine or private repo.
It's not a fit if you want a hosted, no-setup tool, or if you're only applying to a handful of jobs and don't need scoring, tracking, or LaTeX-based document generation. It's also not ideal outside markets with comparable job portals unless you're willing to build a search skill for your own boards with /add-portal. Anyone uncomfortable running an AI agent against job postings and reviewing its output before submission should also think twice, since the safeguards are instruction-level, not a sandbox.
Prerequisites: Claude Code CLI, Python 3.10+, Bun, and a LaTeX distribution with lualatex and xelatex (TeX Live, MacTeX, TinyTeX, or MiKTeX). pdftotext from poppler is optional and used for an ATS parseability check.
Fork and clone (use a private repo with this as upstream if this is for your own job search, since forks are public and /setup writes personal data into tracked files):
gh repo fork MadsLorentzen/ai-job-search --clone
cd ai-job-search
Install the job-portal search tools:
for tool in jobbank-search jobdanmark-search jobindex-search jobnet-search linkedin-search freehire-search; do
(cd .agents/skills/$tool/cli && bun install)
done
Set up your profile inside Claude Code:
claude
# Then inside Claude Code:
/setup
Search for jobs and apply:
/scrape
/apply https://jobindex.dk/job/1234567
/apply also accepts a pasted job description if a portal URL can't be fetched.