Direct Answer
Mads Lorentzen did not build an auto-apply bot. He built a structured job-search operating system around Claude Code. It turns a candidate's verified history into a reusable evidence base, finds and ranks openings, evaluates fit before drafting, creates tailored documents, asks a separate reviewer agent to challenge them, compiles and inspects the PDFs, prepares interview material, and tracks outcomes. The candidate still decides where to apply and presses Submit.
That human boundary is the project's strongest design choice. It converts AI from a volume machine into a preparation and quality-control layer. Mads says he built the system after a layoff, used it during his own search, and later accepted an AI engineering role. The repository reports 69 tailored applications, 20 first interviews, and one signed contract. As of 3 August 2026, GitHub displayed about 29.4K stars and 9.9K forks, making the video's "30K" headline a fair rounded description rather than an exact count.
Watch the Interview and Demo
Credits: interview and demonstration by Andrew Warner and The Next New Thing; project and workflow by Mads Lorentzen. Watch the original video on YouTube and inspect the open-source repository before installing it.
What the Project Actually Proves
| Claim | Evidence | Responsible interpretation |
|---|---|---|
| The repository has 30K stars | GitHub showed 29.4K stars and 9.9K forks on 3 August 2026 | "Nearly 30K" is accurate today; star counts change and measure attention, not effectiveness. |
| Mads used it in a successful search | The README reports 69 applications, 20 first interviews, and one signed contract; Mads describes the same journey in the interview | A strong founder case study, not a controlled comparison or employment guarantee. |
| The workflow is reusable | MIT license, documented commands, portal skills, templates, tracking, and community forks | The core can travel, but portals, language, employment norms, and document formats need local adaptation. |
| The system protects accuracy | Evidence-first profile, explicit no-fabrication rule, independent review, PDF inspection, and manual submission | These controls reduce errors; the user still owns every claim and must inspect every output. |
| It automates job search | Research, ranking, drafting, review, preparation, and tracking are assisted | It does not replace judgment, networking, interviews, consent, or the final application action. |
The result statistics are unusually transparent, but they do not isolate the software's effect. Mads also brought his own experience, market timing, network, interview skills, and role selection. The better question is not "Will this get me hired?" It is "Does this improve the truthfulness, relevance, consistency, and learning rate of my search?"
The End-to-End Workflow
The repository is organized as commands and reusable skills rather than one enormous prompt. That matters because each stage has a different job, context, and failure mode.
| Stage | Command | What the agent does | What the candidate decides |
|---|---|---|---|
| Evidence base | /setup | Interviews the candidate and structures experience, skills, preferences, examples, and templates | Correct every fact, remove sensitive material, and decide what may be used. |
| Discovery | /scrape | Collects roles through configured portal skills and normalizes job data | Choose lawful sources, geography, seniority, and search boundaries. |
| Prioritization | /rank | Scores and sorts open roles against the candidate profile | Challenge the score and reject superficially attractive mismatches. |
| Application preparation | /apply <job URL> | Parses the role, evaluates fit, drafts documents, invokes a reviewer, revises, compiles, and checks output | Approve every factual claim, rewrite weak language, and choose whether to apply. |
| Interview work | /interview | Builds stage-specific preparation from the role and candidate evidence | Practice aloud, add personal judgment, and prepare honest questions. |
| Learning loop | /outcome | Records the result and keeps the tracker current | Log the real outcome and identify what to change next. |
| Reporting | /html-report | Produces an offline dashboard across applications and stages | Review conversion quality instead of chasing application volume. |
A minimal setup path
The official setup requires Claude Code, Python 3.10 or newer, Bun for portal tools, and a LaTeX engine such as lualatex or xelatex. Optional PDF text extraction helps with ATS checks. Follow the repository's current setup guide rather than an old copied command list.
gh repo fork MadsLorentzen/ai-job-search --clone
cd ai-job-search
claude
/setup
Forking is useful when you plan to adapt portal skills or templates. Before committing anything, inspect Git status and confirm that your profile, salary notes, tracker, CVs, and application archive remain ignored. Never push personal documents into a public fork.
Fit Before Volume
The project deliberately scores an opening before spending tokens and human attention on documents. The interview demonstrates dimensions such as technical skills, experience, behavioral fit, location, and career alignment. A score is not a verdict. It is a forcing function for reflection: which requirements are supported by evidence, which are learnable gaps, and which make the role a poor use of time?
This is where the workflow differs from generic resume generators. The system can retrieve examples already collected during setup and connect them to specific job requirements. A good output says, in effect, "This role asks for stakeholder alignment; here is the real project that demonstrates it." A bad output merely copies keywords into enthusiastic prose.
Why the Drafter-Reviewer Pattern Matters
During /apply, one agent drafts from the candidate profile and job description. A separate reviewer receives fresh context and looks for unsupported claims, weak evidence, generic language, missing requirements, and document problems. Its critique returns to the drafting process for revision.
Fresh context is useful because the second agent is less invested in the first draft's logic. It resembles an editor who did not sit beside the writer. The pattern still needs explicit acceptance criteria:
- Truth: every skill, result, date, title, and responsibility must trace to candidate-provided evidence.
- Relevance: the strongest evidence should map to the role's highest-value requirements.
- Specificity: remove claims that could describe any candidate.
- Voice: preserve language the candidate can comfortably defend in an interview.
- Document quality: inspect layout, page breaks, links, text extraction, and filename hygiene.
The repository's compile-and-inspect step is more important than it sounds. A polished source file can still produce a broken PDF, clipped text, a missing text layer, or a two-page cover letter. Verification belongs inside the workflow, not after the application deadline.
Why the Agent Stops Before Submit
Mads explicitly chose not to automate the final application action. That decision protects both sides of the labor market. Employers receive fewer indiscriminate submissions, while candidates keep responsibility for consent, accuracy, tone, and destination.
It also creates a clean accountability boundary. Before sending, the candidate can ask:
- Can I defend every sentence in a live interview?
- Did the system invent a metric, responsibility, tool, or level of fluency?
- Does this application explain why this role, rather than merely mirroring its keywords?
- Am I comfortable sharing every included personal detail with this employer?
- Does the application channel permit the way the job data was collected?
The submission pause is not unfinished automation. It is a product control. High-consequence workflows should make the final irreversible action obvious, reviewable, and attributable to a person.
The Funnel Mads Reported
| Stage | Reported count | Simple conversion | What it can tell you |
|---|---|---|---|
| Tailored applications | 69 | 100% | The denominator for this individual search. |
| First interviews | 20 | About 29% | The documents and role selection produced a meaningful response rate in this case. |
| Signed contract | 1 | About 1.4% of applications | The search ended in employment; it does not reveal the software's isolated causal contribution. |
Track more than these three numbers in your own search. Useful diagnostics include high-fit roles rejected before drafting, applications corrected for unsupported claims, time per accepted application, interviews per ten high-fit applications, stage-specific rejection patterns, and networking conversations. A workflow that sends fewer but better applications can be successful even before the final offer arrives.
GitHub Skills as Executable Knowledge
The project's broader lesson is about publishing expertise. A traditional tutorial explains a process. A repository can package the instructions, file structure, templates, validation steps, and extension points so another person can run and adapt it.
That does not make written explanation obsolete. Executable knowledge needs more documentation, not less: assumptions, inputs, permissions, failure cases, verification criteria, and boundaries must be visible. AI Job Search became useful because contributors could inspect the workflow, add portals, improve the dashboard, and adapt it to different markets without turning the core into a private black box.
The repository is MIT-licensed and independent of Anthropic. Its core is described as language- and country-agnostic, while many included portal integrations reflect Mads's Danish search. Expect to replace or build portal skills for your market and to localize employment language, CV conventions, privacy expectations, and application norms.
Privacy, Security, and Job-Board Rules
1. Local files do not mean fully offline
The project stores working files on the user's machine and excludes common personal artifacts from Git. Claude Code still communicates with a hosted model service. Review the applicable account, retention, training, and organizational controls before loading identity documents, salary history, addresses, private references, or confidential employer material.
2. Job descriptions are untrusted input
A fetched page can contain instructions aimed at the model, not the candidate. The project's security policy says posting text is treated as data, body links are not fetched, permissions are narrowed, and CI guards watch the allowlist. It also says clearly that these defenses are not a sandbox. Prompt injection remains a live risk whenever an agent reads untrusted web content beside personal files.
Review proposed commands, keep write access narrow, avoid shell pipelines from untrusted pages, inspect created files, and use an isolated environment when testing new portal scripts. Anthropic's own Claude Code security guidance recommends the same posture.
3. Technical access is not legal permission
The repository can be extended with job-board search skills. Every portal has different terms and technical controls. LinkedIn's current User Agreement, for example, prohibits unauthorized scraping and bot access. Prefer approved APIs, permitted exports, alerts, saved searches, or manual collection. Do not assume an open-source connector makes a data source permissible to automate.
4. Keep consequential judgment visible
Do not use fit scores to exclude yourself automatically, and do not let the system infer protected traits or make decisions for employers. This is a candidate-side preparation tool. Human review, truthful representation, and reversible steps are core requirements, not optional polish.
A Seven-Day Pilot
- Day 1: secure the environment. Fork or clone the repository, read SETUP.md and SECURITY.md, confirm ignored files, and use a separate test directory.
- Day 2: build a narrow profile. Add only the evidence needed for one target role family. Verify dates, achievements, tools, and writing samples line by line.
- Day 3: choose lawful discovery sources. Configure one permitted portal, feed, alert, or manual job list. Collect no more than 20 roles.
- Day 4: challenge ranking. Score the roles, then independently review the top ten. Record where the rationale is useful, vague, or wrong.
- Day 5: prepare two applications. Run the drafter-reviewer pipeline. Mark every unsupported, exaggerated, generic, or off-voice sentence.
- Day 6: verify files and practice. Check PDF rendering and text extraction, then use the interview workflow for one role. Keep the final submission manual.
- Day 7: decide with evidence. Measure preparation time, factual corrections, fit quality, document quality, and cognitive load. Keep the system only if it improves quality without weakening judgment.
Video Chapters
| Time | Topic | What to notice |
|---|---|---|
| 00:00 | Job-search automation | The system assists the process rather than applying blindly. |
| 00:55 | Dashboard | Applications, interviews, offers, rejections, and closed roles stay visible. |
| 01:50 | Job discovery | Portal selection must match the candidate's market and the source's rules. |
| 03:50 | Reusable skills | The project packages a workflow, not just a one-off prompt. |
| 04:50 | Fit analysis | The rationale behind the score matters more than the number. |
| 06:27 | CV and cover letter | Drafting is followed by a separate reviewer agent and revision. |
| 08:34 | Human in the loop | Mads explains why he avoids one-click auto-application. |
| 10:50 | Application tracking | The feedback loop becomes more useful than raw output volume. |
| 11:45 | Open-source growth | Community contributions broadened the workflow and dashboard. |
| 13:42 | Publishing workflows | Repositories can distribute repeatable expertise as executable knowledge. |
| 16:04 | Layoff to AI engineer | Mads connects the personal search, public project, and new role. |
Bottom Line
AI Job Search is compelling because it automates the tedious middle without automating away responsibility. It remembers the candidate's real evidence, filters opportunities, challenges drafts, verifies files, and keeps the funnel visible. The user still chooses the opportunity, owns the claims, and sends the application.
Its nearly 30K stars show that the problem resonates. Its real contribution is the workflow architecture: evidence before generation, fit before volume, critique before approval, verification before delivery, and outcomes fed back into the next decision. That pattern travels well beyond job search.
Sources and Further Reading
- Andrew Warner and Mads Lorentzen: He Built an AI Job Search Agent After Getting Laid Off
- MadsLorentzen/ai-job-search repository and README
- AI Job Search setup guide
- AI Job Search security policy
- AI Job Search MIT license
- Mads Lorentzen on LinkedIn
- Anthropic: Claude Code security
- LinkedIn User Agreement