Most AI job-search tools stop at generating a generic cover letter.
MadsLorentzen/ai-job-search is more ambitious. It is an MIT-licensed job application framework built on Claude Code. The idea is simple: fork the repo, fill in your profile, then let Claude evaluate job postings, tailor your CV, draft cover letters, critique the drafts, compile PDFs, and prepare you for interviews.
What makes the project interesting is that it treats job applications like an engineering workflow.
There is profile setup. There are source documents. There are job portal search tools. There is a fit-scoring framework. There is a drafter-reviewer pipeline. There are LaTeX templates. There is a PDF verification loop. There is an application tracker. There are commands for adding templates, expanding a profile, adding local job portals, and analyzing skill gaps.
That is much stronger than “paste a job description into ChatGPT and hope the result sounds good.”
What AI Job Search Is
AI Job Search is a Claude Code project template for managing a job search with agent workflows.
The repository is designed to be forked. You add your profile, documents, templates, and search preferences. Claude Code then uses the repo’s commands and skills to help with setup, job discovery, application drafting, review, and interview preparation.
The main workflow is built around three commands:
/setupbuilds your profile from documents, an existing CV, or an interview-style onboarding flow./scrapesearches configured job portals, deduplicates roles, and presents matches with fit ratings./apply <url>evaluates a job, drafts tailored application materials, sends them through review, revises, compiles PDFs, and presents a final checklist.
There are also commands for /expand, /upskill, /add-template, /add-portal, and /reset.
The result is not a single AI response. It is a reusable application operating system.
Why This Is Different From Generic Resume AI
Most resume AI tools optimize for generation. They create text quickly.
AI Job Search optimizes for process quality:
- It keeps a structured candidate profile.
- It checks fit before drafting.
- It uses actual profile claims instead of inventing experience.
- It separates drafting and review.
- It compiles the CV and cover letter into PDFs.
- It visually inspects layout problems.
- It tracks applications and supports skill-gap analysis.
That last point matters. A job application is not just copywriting. It is evidence selection under constraints.
The right CV is not the longest CV. It is the version that best matches the target role while staying truthful. The right cover letter is not a generic enthusiasm paragraph. It is a forward-looking argument about why the role, company, and candidate fit together.
The Drafter-Reviewer Pipeline
The /apply workflow is the strongest part of the project.
It starts by parsing a job posting from a URL or pasted text. Then it evaluates the role against the candidate profile: skills, experience, culture, location, and career alignment.
Only after that does it draft the CV and cover letter.
The CV and cover letter are LaTeX documents, which gives the workflow more control over final layout than a plain markdown document. The system then spawns a second Claude agent as a reviewer. That reviewer researches the company and critiques the drafts.
The drafter revises based on the reviewer’s feedback, compiles both PDFs, inspects the rendered pages, and iterates until the output is clean.
That is a serious improvement over one-pass generation.
PDF Verification Is the Practical Detail
The repository calls out a real failure mode: LaTeX resume drafts can look fine in source and still break in the PDF.
Job titles can be orphaned onto the next page. Bullet fonts can silently fall back. A cover letter can spill onto a second page. The signature can disappear. A two-page CV can become two and a half pages after one small change.
AI Job Search addresses this by compiling and inspecting the final PDFs. It uses lualatex for the CV and xelatex for the cover letter because the templates have different font and package needs.
This is exactly the kind of detail that separates useful automation from polished demo output.
Search, Portals, and Local Markets
The job-search tooling is designed around Danish portals out of the box: Jobindex, Jobnet, Akademikernes Jobbank, Jobdanmark, and LinkedIn public listings.
But the project is not only for Denmark.
The README is clear that the core workflow is language- and country-agnostic. The portal search skills are the part that needs localization. The /add-portal command exists to investigate a job board, scaffold a search skill, test a live query, and register it.
That design is sensible. Job boards vary wildly by country and profession. The reusable part is the process: profile, search, fit, draft, review, verify, track, improve.
Profile Setup and Evidence Discipline
The /setup flow can read a documents/ folder containing a CV, LinkedIn export, diplomas, references, and past applications. It can also import a pasted CV or walk the user through an interview.
This is more useful than asking an LLM to infer everything from a resume.
A job application assistant needs source material. It needs to know what claims are allowed, which projects prove which skills, how the candidate writes, what roles are worth targeting, and which constraints matter.
The project also includes structured skill files for candidate profile, behavioral profile, writing style, job evaluation, CV templates, cover-letter templates, and interview prep.
That structure is what keeps the agent from becoming a generic writer.
Upskilling and Career Strategy
The /upskill command adds a strategic layer.
Instead of only helping with the next application, it can compare the candidate profile against tracked job postings or a single posting. It then produces a skill-gap analysis and learning plan with study resources and time estimates.
This is important because a job search has two feedback loops:
- How do I improve this application?
- How do I improve my profile for the next wave of roles?
Most automation focuses on the first loop. AI Job Search also gives attention to the second.
Risks and Good Boundaries
This kind of tool needs careful boundaries.
The project is strongest when it improves truth, relevance, structure, and review. It is weakest if someone uses it to mass-generate applications without reading them.
The good news is that the workflow explicitly avoids fabricating claims. It is built around your profile and source documents. That should be treated as a hard rule.
The human still owns the application. The agent can draft, evaluate, revise, and verify layout. But the candidate must decide whether the role is genuinely interesting, whether the claims are accurate, and whether the final voice still sounds like them.
My Take
AI Job Search is compelling because it turns job applications into a repeatable workflow rather than a blank-page panic.
It uses Claude Code in a way that fits the medium: commands, skills, source documents, review agents, file outputs, LaTeX compilation, and checklists.
For candidates, the value is not that AI writes a cover letter. The value is that the application pipeline becomes more structured: fit first, evidence second, draft third, review fourth, verify fifth.
For developers, the repo is also a useful pattern for personal AI workflows. It shows how to wrap an LLM around a real process with files, commands, templates, reviewers, and verification gates.
If you are job searching and already comfortable with Claude Code, MadsLorentzen/ai-job-search is worth studying, even if you adapt the portal search layer for your own market.