AI Job Search
The job search that runs on your machine. AI job application framework built on Claude Code: evaluate postings, tailor CVs, write cover letters, prep interviews.
Evidence shows permission allowlist and CI security guards, but specific permissions not listed, so 2. User confirmation exists (e.g., /gmail-sync batch approval) but not comprehensive, 2. Data flow transparency: docs describe data flow but no detailed logs, 2. Sensitive data handling: personal data gitignored but no encryption mentioned, 2. Dependency security: dependency-review present but no dependency list, 2. External effects: explicitly no email sending but not all external calls, 2. Rollback: /reset exists but no version rollback, 1. Source attribution: clearly not Anthropic official but no author verification, 2.
Self-consistency: docs and code structure consistent but not all commands verified, 2. Dependency availability: dependencies like LaTeX, Bun common but no version pinning, 2. Failure messages: CLI tests cover error codes but not all scenarios, 2.
Audience and scenarios: clearly for job seekers but no multi-language support, 2. Capability boundaries: language-agnostic but no detailed boundaries, 2. Trigger precision: commands clearly defined but no parameter validation details, 2. Environment fit: multi-platform but no Windows specifics, 2.
Information architecture: clear file structure but no full documentation, 2. Install notes: detailed steps but no troubleshooting, 2. Naming stability: consistent command names but no version history, 1. Examples and FAQ: examples provided but no FAQ, 2. Known limitations: SECURITY.md threat model but not all limitations, 2. License: MIT clear, 2. Versioning/changelog: no CHANGELOG, 1. Maintenance responsibility: author maintains but no contribution guide, 2.
Output usability: outputs PDFs and reports but no format specs, 2. Marginal value: automation but no comparison data, 2. Cost-benefit: token efficiency mentioned but no concrete costs, 2.
Claim traceability: README claims personal success but no evidence, 2. Cross-source corroboration: no third-party verification, 1. Fact/inference separation: clearly separates facts and inferences, 2.
- Specific permissions not listed; review settings.json.
- No dependency list; check package.json etc.
- No CHANGELOG; version history unclear.
- Personal success claims lack evidence; treat cautiously.
What does this agent do, and when should you use it?
This is an AI-powered job application framework built on Claude Code, transforming it into a full-stack job application assistant. It provides a structured workflow including self-profiling, fit evaluation, a drafter-reviewer application pipeline, and PDF and ATS verification. The core workflow is language- and country-agnostic, but shipped job portal search skills target the Danish market, extensible via /add-portal. The author, a geophysicist by training, built this framework to run his own job search after his position was cut in late 2025, successfully landing a role as an AI engineer, proving its effectiveness. The framework features a mandatory PDF compilation loop and ATS check to ensure each CV and cover letter is tailored, ATS-friendly, and within page limits. Additional features include interview prep, skill gap analysis, HTML reports, and Gmail/Notion sync. The project is MIT-licensed and designed to be forked and personalized.
The framework runs around three core commands: /setup, /scrape, and /apply. It reads career materials from the user's profile, scrapes job portals (Jobindex, Jobnet, LinkedIn, etc.) for postings, evaluates fit, and drafts tailored CVs and cover letters in LaTeX. The /apply command runs a drafter-reviewer workflow that includes a PDF compilation loop and ATS verification, ensuring output is correctly formatted and keyword coverage is honest. It also provides ten additional commands: /interview generates stage-specific interview prep packs, /outcome records application results and archives materials, /gmail-sync detects application status from Gmail, /rank batch-scores scraped jobs, /expand enriches your profile from linked public sources, /upskill analyzes skill gaps and suggests learning plans, /html-report generates a self-contained HTML dashboard, /add-template registers custom document templates, /add-portal generates new portal search skills, and /reset wipes profile data. The framework also includes salary benchmarking via a provided tool that uses your own data.
- A job seeker who wants to automate the application process while retaining control over each application.
- A user who wants to leverage their profile for fit evaluation and tailor CV and cover letter for each specific job posting.
- A candidate preparing for an interview who needs a job-specific prep pack.
- A user who wants to track applications and sync status updates from Gmail or Notion.
- A developer who wants to adapt the framework to a new country or job board by generating custom portal skills via /add-portal.
What are this agent's strengths and limitations?
- End-to-end job search workflow: from scraping to applying, interview prep, and outcome tracking.
- Mandatory PDF compilation and visual inspection ensure CV and cover letter layouts are clean and within page limits.
- ATS verification: Extracts the PDF text layer to verify it parses correctly and checks keyword coverage honestly without stuffing.
- Extensible: /add-portal and /add-template allow adding custom job boards and document templates.
- Works out of the box without API keys (LinkedIn search uses public endpoints).
- Core workflow is tightly coupled to Claude Code; using other agent tools requires adaptation.
- Built-in portal search skills target the Danish market; other markets need customization.
- Requires a stack of tools (Claude Code, Python, Bun, LaTeX), raising the barrier to entry.
- Postings are treated as untrusted input, but agentic defenses are instruction-level, not a sandbox, so caution is needed on unfamiliar sites.
How do you install or deploy this agent?
- Fork and clone the repository: gh repo fork MadsLorentzen/ai-job-search --clone, then cd ai-job-search. 2. Install job search tools using Bun: In PowerShell, run a loop or bash script that runs bun install for each tool (jobbank-search, jobdanmark-search, jobindex-search, jobnet-search, linkedin-search, freehire-search) in its cli directory. 3. Ensure you have Claude Code, Python 3.10+, Bun, and a LaTeX distribution like TeX Live or MacTeX installed. 4. Run claude, then inside Claude Code run /setup to set up your profile.
How do you use this agent?
First run /setup to configure your profile. Then run /scrape to search for jobs and present matches sorted by fit. To apply, use /apply <URL> to run the full workflow: evaluate fit, draft CV and cover letter, review with a second agent, revise, compile PDFs, and ATS-check. Use /rank to batch-score jobs, /interview for interview prep, /outcome to record application results, /gmail-sync to sync Gmail status. Use /setup --section search to update search queries, /add-template to add custom templates, and /add-portal to add a new job portal skill.