MadsLorentzen/ai-job-search
The job search that runs on your machine. AI job application framework built on Claude Code: evaluate postings, tailor CVs, write cover letters, prep interviews. Fork it and own it.
AI Job Search – an AI‑powered job‑application assistant
What it is – A command‑line framework that lets you run the whole job‑search funnel on your own machine, using Claude Code (Anthropic’s code‑assistant model) as the reasoning engine. After you feed it a personal profile, the tool can:
- Scrape a set of job boards (currently Danish portals plus LinkedIn and freehire.me) and rank the postings against a fit‑scoring rubric.
- Apply to a chosen posting: the model evaluates fit, drafts a LaTeX CV and cover letter, spawns a reviewer agent to critique the drafts, iterates until the PDFs meet strict layout rules, and runs an ATS‑readability check.
- Prepare for interviews with a mock‑interview flow that pulls company info, maps likely questions to your STAR examples, and generates a prep pack.
- Track outcomes – record interview stages, offers, rejections, and automatically draft polite follow‑ups.
- Sync the pipeline to Notion or Gmail, generate an offline HTML dashboard, and even suggest up‑skilling plans based on identified skill gaps.
Why it matters – Most AI‑assisted résumé tools are one‑off generators. This project bundles the entire end‑to‑end workflow (search → fit evaluation → drafting → review → ATS verification → outcome tracking) into reproducible CLI commands, and it does so with a strong emphasis on verifiable output (PDF compilation checks, no fabricated claims).
Quick‑start overview (from the README)
- Fork & clone the repo – keep a private fork if you don’t want your personal data in a public repo.
- Install the job‑search tools (Bun‑based CLI scrapers) for each portal you care about.
- Run
/setupinside Claude Code to import your CV, LinkedIn export, diplomas, etc., or answer an interview‑style questionnaire. This creates the structuredCLAUDE.mdprofile used by all later commands. - Search with
/scrape. The command queries the bundled portals, de‑duplicates results, and returns a list sorted by the fit score. - Apply with
/apply <job‑url>(or paste the full description). The system:- parses the posting,
- scores fit,
- drafts LaTeX CV + cover letter,
- runs a reviewer agent,
- iterates until the PDFs are clean (2‑page CV, 1‑page cover letter),
- runs an ATS‑text extraction check, and
- presents the final documents and a checklist.
- Optional extras –
/interviewfor mock interviews,/outcometo log results,/rankto batch‑score scraped jobs,/upskillfor learning‑plan suggestions,/html-reportfor a local dashboard,/notion-syncand/gmail-syncfor live views.
Core components (file‑tree highlights)
.claude/commands/– Markdown definitions of each CLI command (apply.md,setup.md,interview.md, …) that Claude Code reads to execute the workflow..claude/skills/– Prompt libraries:job-application-assistant/holds the candidate‑profile schema, writing‑style guide, scoring rubric, and LaTeX template specs.job-scraper/orchestrates portal queries.upskill/performs skill‑gap analysis.
.agents/skills/– Small Bun‑based scrapers for each supported job board (e.g.,jobindex-search). They are installed withbun install.cv/&cover_letters/– LaTeX source files (moderncvtemplate, customcover.cls). The framework compiles them on‑the‑fly for each application.documents/– Your personal source material (PDF CV, LinkedIn export, diplomas, past applications)./setupreads this folder automatically.job_search_tracker.csv– A simple spreadsheet that records every application, its status, and fit scores; used by/html-reportand the sync commands.- Utility scripts (
salary_lookup.py, varioustools/*.py) – Helpers for salary benchmarking, CI linting, PDF verification, and security checks.
Prerequisites (as listed)
- Claude Code CLI (the only supported LLM tool; other agents possible via
AGENTS.md). - Python 3.10+.
- Bun (for the portal‑scraper CLIs).
- A full LaTeX distribution with
lualatex(CV) andxelatex(cover letter). TinyTeX works if you add the extra packages noted inSETUP.md. - Optional:
pypdf(or systempopplerutilities) for the ATS‑text extraction step.
Who might use it
- Job seekers who already use Claude Code and want a reproducible, locally‑run pipeline rather than a web service.
- Developers comfortable with CLI tools who want to customise the scraping skills or LaTeX templates.
- Anyone looking for a transparent, audit‑friendly AI assistant that never fabricates experience.
Limitations & cautions (from the README)
- The workflow does not sandbox scraped job pages; you should skim the fetched content before sending any application.
- Profile data is written to tracked files; keep your fork private if you don’t want that information public.
- The current portal scrapers are tuned for the Danish market; swapping in a new board requires creating a new skill via
/add-portal. - The system relies on Claude Code; usage costs and rate limits are governed by your Anthropic account.
Bottom line
ai-job-search is a genuine open‑source project that combines LLM prompting, web scraping, LaTeX document generation, and workflow automation to give you a self‑hosted AI job‑application assistant. All features described above are taken directly from the repository’s README; no additional capabilities have been inferred.
Written about in
Related
- Project
- Project
- Project
- Project
- Project