Job search work is rarely one single task. Postings sit on different sites, every role needs a slightly different CV, cover letters need rewriting, and the outcome has to be tracked somewhere. After a few weeks, it easily becomes a mess of tabs, PDFs, and half-maintained spreadsheets.
MadsLorentzen/ai-job-search puts that workflow inside Claude Code. You build a profile, search and rank jobs, generate tailored CVs and cover letters, and record what happened after applying. It is a structured workflow template, not a one-click mass-application bot.
What It Solves
ai-job-search focuses on four problems:
- turning your experience, skills, education, and writing style into structured profile files;
- searching job portals and sorting opportunities by fit;
- drafting CVs and cover letters for a specific posting;
- recording outcomes so later applications can be calibrated against real feedback.
That framing is useful. It does not promise to get you an offer automatically; it helps reduce the repeated, error-prone parts of applying.
Core Workflow
The main commands are /setup, /scrape, /rank, and /apply.
1. /setup: Build Your Profile
Start in Claude Code:
|
|
The setup command can read materials from documents/, import a pasted CV, or interview you to build the profile. The richer and more honest this step is, the better the later scoring and writing will be.
2. /scrape: Search for Jobs
After setup:
|
|
The bundled search tools are strongest for the Danish market, including Jobindex, Jobnet, and Akademikernes Jobbank. The pattern can be adapted to other markets, and LinkedIn public job listings are more general.
If a site blocks fetching, you can still paste the full job description into /apply.
3. /rank: Prioritize Matches
When search returns too many roles, use:
|
|
It scores postings against the fit framework, including skills, experience, culture, location, and career alignment. That matters because many failed applications are not writing problems; they are targeting problems.
4. /apply: Produce the Application Package
For a selected job:
|
|
Or paste the posting text:
|
|
The command parses the posting, evaluates fit, drafts a tailored CV and cover letter, runs a reviewer agent, revises, compiles PDFs, checks ATS readability, and presents the final package with a checklist.
Why the ATS Check Matters
A PDF can look beautiful and still parse badly in an applicant tracking system. Icons, multi-column layouts, special fonts, and LaTeX output can produce garbled text or a broken reading order.
ai-job-search can use pdftotext to inspect the PDF text layer, verify contact details, and compare keyword coverage against the posting. The README also makes the honesty rule explicit: unsupported keywords stay visible as gaps and are not stuffed into the CV.
Extra Commands
The project includes several commands beyond the core flow:
/outcomerecords interviews, offers, rejections, and silence;/expandenriches the profile from public sources such as GitHub, portfolio sites, Kaggle, or Google Scholar;/upskillturns job gaps into a learning plan;/add-templateregisters a custom LaTeX CV or cover letter template;/add-portalscaffolds a search skill for a local job board;/resetstarts over.
This makes it closer to a maintained job-search system than a one-off resume generator.
Requirements
The project expects Claude Code CLI, Python 3.10+, Bun for search CLIs, a LaTeX distribution such as TeX Live or MiKTeX, and optionally pdftotext for ATS checks.
Quick start:
|
|
Then install the job-search tool dependencies and run /setup in Claude Code.
This is not lightweight for non-technical users. It fits people who already use command-line tools and are comfortable configuring Claude Code and LaTeX.
Who It Fits
It is useful if you are applying to many roles, tailoring applications seriously, already using Claude Code, care about PDF quality, and want to track outcomes over time.
It is less useful if you only apply to one or two jobs, do not want command-line setup, expect one-click mass applications, or are unwilling to organize your real experience.
Notes
Do not let AI invent experience. Keep the repository private if it contains CVs, references, diplomas, or application history. And expect local job-board integration to require work outside the Danish portals bundled by default.
Conclusion
ai-job-search is valuable because it turns job searching into a repeatable workflow: profile, search, rank, tailor, check, submit, record, and learn. If you already use Claude Code and are running a serious job search, it is a practical open-source framework worth studying.
Sources: