AI Job Search: Run a Local AI Application Workflow
Set up Mads Lorentzen's Claude Code framework, tailor a real application and keep the final submit under your control
What this project does, and what it does not
A local Claude Code workflow for researching roles and tailoring application drafts
The human-in-control workflow
- Set up locally — Your files stay on your computer
- Find and rank roles — Use /scrape or a job URL
- Tailor documents — Use /apply for a CV and cover-letter draft
- Review every claim
- Accurate and relevant — Compile final PDFs
- Wrong, exaggerated or private — Edit or discard the draft
- You submit manually — No auto-apply or automatic sending
The workflow map animates in on the page. Reduced-motion browser settings are respected.
[AI Job Search](https://github.com/MadsLorentzen/ai-job-search) is an open-source, **local-first job-search framework built around Claude Code**. It can organise your profile, search supported job sources, assess fit and prepare tailored CV and cover-letter drafts.
The important correction: it does **not** safely replace your judgment or press Apply for you. Treat every generated sentence as a draft. You still verify the role, remove anything inaccurate, choose the attachments and submit on the employer's site yourself.
Do not make a public fork with your personal data The upstream setup can write your profile details into tracked files. A public GitHub fork can expose that information. Clone it locally or use a **private** repository, and review `git status` before every push.
Before you install on Windows
- A GitHub account and git installed
- Claude Code CLI. The full upstream workflow is designed for this CLI
- Python 3.10 or newer: check with `py --version`
- Bun, used by the included job-search CLI tools
- MiKTeX or another LaTeX distribution if you want polished PDF output
- Your existing CV and only the documents you are comfortable placing in a local work folder
Or let an AI agent do it
Paste this into a local coding agent to prepare the project safely
Install the AI Job Search project locally and prepare it for me.
Repository: https://github.com/MadsLorentzen/ai-job-search
Install location: choose a sensible folder inside my Documents directory and tell me the exact path before you begin.
Do this:
1. Check whether git, Node/npm, Python 3.10+, Bun and a LaTeX distribution are already installed. Show me the result.
2. Before installing any missing system tool, tell me exactly what you will install and ask for my approval.
3. Clone the repository locally. Do not create or use a public GitHub fork.
4. Disable pushes to the original remote so personal career data cannot be pushed by accident:
git remote set-url --push origin DISABLED
5. Install Claude Code globally only if it is missing:
npm install -g @anthropic-ai/claude-code
6. Install Bun only if it is missing, then install dependencies in each included job-search CLI folder:
.agents/skills/jobbank-search/cli
.agents/skills/jobdanmark-search/cli
.agents/skills/jobindex-search/cli
.agents/skills/jobnet-search/cli
.agents/skills/linkedin-search/cli
.agents/skills/freehire-search/cli
7. Verify the setup with `claude --version`, `bun --version` and `py --version`.
8. Stop after installation and give me the exact commands for the next steps: `claude`, then `/setup`.
Rules:
- Show each command before running it and report real errors.
- Do not upload or commit anything.
- Do not open job sites, run `/scrape` or `/apply`, attach documents, sign in, or submit an application.
- Do not invent profile details, CV content or job history.
- Keep all changes inside the chosen project folder, except for approved system-tool installs.Good stopping point After the agent finishes, open the project folder yourself, run `claude`, and use `/setup` only when you are ready to supply your real documents. Review every generated file before you use `/apply`.
1. Clone the project into a private local folder
Keep the working copy somewhere you control, not in a public fork
Set-Location $HOME\Documents
git clone https://github.com/MadsLorentzen/ai-job-search.git
Set-Location ai-job-searchPrevent accidental pushing If this is your real job-search workspace, make the remote push URL unusable until you have deliberately created a private repository: `git remote set-url --push origin DISABLED`. Fetching upstream updates still works; it only blocks `git push` to the original remote.
2. Install the local requirements
Claude Code runs the workflow; Bun runs the portal search tools
| Requirement | Windows check or install | Why it is needed |
|---|---|---|
| Claude Code | `npm install -g @anthropic-ai/claude-code` | Runs `/setup`, `/scrape` and `/apply` |
| Python | `py --version` | Required by the project setup |
| Bun | `winget install Oven-sh.Bun` | Installs the job-search CLI dependencies |
| LaTeX | Install MiKTeX, then run `lualatex --version` and `xelatex --version` | Compiles the generated CV and cover letter PDFs |
npm install -g @anthropic-ai/claude-code
winget install Oven-sh.Bun
py --version
bun --versionAbout Codex, Gemini CLI and Antigravity The repo includes portal-search skills for those tools, but its end-to-end setup and slash-command workflow is documented for **Claude Code**. Do not assume another CLI will run every command exactly the same way.
3. Install the job-search tool dependencies
Run this once inside the cloned project
$portalCliFolders = @(
'.agents/skills/jobbank-search/cli',
'.agents/skills/jobdanmark-search/cli',
'.agents/skills/jobindex-search/cli',
'.agents/skills/jobnet-search/cli',
'.agents/skills/linkedin-search/cli',
'.agents/skills/freehire-search/cli'
)
foreach ($folder in $portalCliFolders) {
Push-Location $folder
bun install
Pop-Location
}Check the job sources before trusting results Several bundled portal integrations are Denmark-specific. If your roles are elsewhere, a `/scrape` run may not be useful by itself. Start with a real role URL, use an included source that covers your market, or add a portal deliberately with `/add-portal`.
4. Start Claude Code and build your profile
Give the workflow documents, not invented claims
claude- Type `/setup` inside Claude Code.
- Choose the route that matches what you have: a documents folder, a single existing CV, or interview-led setup.
- Give it only truthful material. Remove old phone numbers, sensitive IDs, private references and anything you would not want copied into a draft.
- Open the generated profile files and correct facts before you run an application workflow.
5. Find roles, then use /apply for one specific job
Start narrow so you can validate the first result end to end
/scrape
/apply https://company.example/careers/job-posting`/apply` evaluates the fit and prepares tailored documents. It can create files such as `cv/main_<company>_<role>.tex` and `cover_letters/cover_<company>_<role>.tex`. Before you compile anything, check every achievement, date, tool and salary expectation against your real experience.
Human review before you apply
- Open the source job posting and make sure it is current and legitimate
- Remove any AI-invented metric, project or skill
- Check the company name, role title, location and work-authorisation answer
- Read the cover letter aloud and make it sound like you
- Attach only the final PDFs you reviewed, then submit on the employer's own website
6. Compile the final PDFs and submit yourself
Keep a traceable version of what you actually sent
Set-Location cv
lualatex main_<company>_<role>.tex
Set-Location ..
Set-Location cover_letters
xelatex cover_<company>_<role>.tex
Set-Location ..What to do after submission Record the exact role URL, date submitted, versions of the documents and follow-up date. The project includes commands such as `/outcome`, `/rank` and `/interview`, but your own application log is still the source of truth.
If something fails
Fix the dependency that is actually missing, instead of reinstalling everything
`claude` is not recognised in PowerShell
Close PowerShell, open a new window and run `npm install -g @anthropic-ai/claude-code` again. Then check `claude --version`. If it still fails, check that Node/npm's global bin folder is on PATH.
`bun` is not recognised
Restart the terminal after installation. Run `bun --version`; if it is still missing, reinstall Bun using its official Windows installer and follow its PATH instructions.
The PDF command says lualatex or xelatex is missing
Install MiKTeX or another LaTeX distribution, restart PowerShell and run the command with `--version`. The upstream project uses lualatex for the CV and xelatex for the cover letter.
A job board page will not load or gives the wrong jobs
Do not bypass the site's controls. Paste the public job description or use the employer's official career URL, then review the application manually. A portal integration is not a guarantee of coverage or accuracy.
Can it submit applications automatically?
It should not. This guide recommends using it only to research and prepare drafts. Keep the final decision, facts, attachments and submission in your hands.
Source material: **[AI Job Search repository](https://github.com/MadsLorentzen/ai-job-search)** and the upstream **[Windows setup instructions](https://github.com/MadsLorentzen/ai-job-search/blob/master/SETUP.md)**. This RexxuLabs guide is an independent walkthrough, checked on 29 Aug 2026. Upstream features and commands can change, so check the repository before an update.