Files
ai-job-search/SETUP.md
T
Mads LorentzenandClaude Opus 4.7 00678f9669 docs: document PDF verification loop and relevance-weighted cutting
Updates README.md and SETUP.md to reflect the new /apply workflow
additions shipped in the previous commit:

- Bumps the /apply step list from 6 to 7, adding "Compile and inspect"
  between Revise and Present
- Adds a "What makes this workflow different" subsection highlighting the
  PDF verification loop, relevance-weighted CV cutting, drafter-reviewer
  separation, and token-efficient dispatching
- Updates prerequisites note to call out lualatex (CV) and xelatex (cover
  letter) explicitly, with the reason each engine is required
- Updates SETUP.md's LaTeX section to match (pdflatex -> lualatex for the
  CV, with the MiKTeX fontawesome5 caveat)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-24 19:36:45 +02:00

4.8 KiB

Setup Guide

Step-by-step instructions for getting the AI Job Search framework running.

1. Prerequisites

Claude Code

Install Claude Code (Anthropic's CLI for Claude):

npm install -g @anthropic-ai/claude-code

You'll need an Anthropic API key or a Claude Pro/Team subscription. See the Claude Code docs for details.

Python

Python 3.10+ is required for the salary lookup tool. Check with:

python --version

Bun (for job search tools)

The Danish job portal CLIs are written in TypeScript and run with Bun:

curl -fsSL https://bun.sh/install | bash

LaTeX (for compiling CVs and cover letters)

Install a LaTeX distribution to compile the generated .tex files to PDF:

  • Windows: MiKTeX
  • macOS: MacTeX
  • Linux: sudo apt install texlive-full or sudo dnf install texlive-scheme-full

The CV compiles with lualatex (pdflatex often fails on modern MiKTeX installs with fontawesome5 font-expansion errors). The cover letter compiles with xelatex because cover.cls requires fontspec for its custom Lato/Raleway fonts.

2. Fork and clone

gh repo fork MadsLorentzen/ai-job-search --clone
cd ai-job-search

Or manually: fork on GitHub, then clone your fork.

3. Install job search CLI dependencies

for tool in jobbank-search jobdanmark-search jobindex-search jobnet-search; do
  cd .agents/skills/$tool/cli && bun install && cd ../../../..
done

4. Run the setup interview

Start Claude Code in the repository:

claude

Then run the onboarding:

/setup

Claude will offer two paths:

  • Path A (recommended): Share your existing CV (mention the file with @ or paste the text). Claude extracts your information and asks follow-up questions for anything missing.
  • Path B: Answer structured interview questions section by section.

Both paths produce the same result: fully populated profile files.

What gets populated

File Content
CLAUDE.md Your full candidate profile
01-candidate-profile.md Structured education, experience, skills
02-behavioral-profile.md Behavioral assessment
04-job-evaluation.md Personalized skill match areas and career goals
05-cv-templates.md Profile statement templates for your background
07-interview-prep.md STAR examples from your experience
cv/main_example.tex Your LaTeX CV with actual details
search-queries.md Job search queries for /scrape

Re-running setup

You can update specific sections later:

/setup --section skills
/setup --section experience
/setup --section search

The --section search option is especially useful as your priorities evolve. It re-runs the search configuration interview and suggests role types you may not have considered based on your full profile.

5. Optional: Set up salary benchmarking

If you have salary data (from a union, salary survey, Glassdoor, or personal research):

  1. Option A: Create salary_data.json manually in the repo root (see tools/README_SALARY_TOOL.md for the format)
  2. Option B: Convert from Excel:
    pip install openpyxl
    python tools/convert_salary_excel.py path/to/salary-data.xlsx --source "My Salary Data 2025"
    

This creates salary_data.json which the /apply workflow uses for salary benchmarking. If you skip this step, salary lookup is simply omitted.

6. Test the workflow

Find a job posting you're interested in, then:

/apply https://jobindex.dk/job/1234567

Or paste the job description directly:

/apply [paste job posting text here]

Claude will:

  1. Evaluate the fit against your profile
  2. Ask if you want to proceed
  3. Draft a tailored CV and cover letter
  4. Have a reviewer agent critique the drafts
  5. Revise and present the final output

7. Compile your documents

After /apply creates the LaTeX files:

# Compile CV
cd cv && pdflatex main_<company>.tex && cd ..

# Compile cover letter
cd cover_letters && xelatex cover_<company>_<role>.tex && cd ..

Troubleshooting

"salary_data.json not found"

This is expected if you haven't set up salary benchmarking. The /apply workflow skips this step automatically.

Job search CLI tools not working

Make sure Bun is installed and you ran bun install in each CLI directory. The tools require network access to fetch job listings.

LaTeX compilation errors

  • CV: uses pdflatex (standard LaTeX)
  • Cover letter: uses xelatex (for custom fonts in OpenFonts/fonts/)
  • Make sure your LaTeX distribution includes the moderncv package

Fonts not found in cover letter

The cover letter template expects fonts in cover_letters/OpenFonts/fonts/. Make sure this directory exists and contains the Lato and Raleway font files.