Agent frameworks#Coding agent

ai-job-search: a reviewable job application workflow

ai-job-search screens roles, drafts applications, reviews CVs, and checks PDFs with Claude Code. Its maintainer reports 69 applications and 20 first interviews.

Project facts

GitHub Ecosystem
Repositorygithub.com/MadsLorentzen/ai-job-search
License
MIT
Language
Python
Stars
49,003
Data checked
2026-10-17

Snapshot figures reflect the check date and may change over time.

The hours in a job search often go into work that happens before anyone sees an application: sorting postings, tailoring a CV, checking the PDF, and preparing for interviews. ai-job-search is a local Claude Code workflow that scores a role before drafting application materials, then sends those drafts through a separate reviewer agent. Its maintainer reports 69 tailored applications, 20 first interviews, and a signed AI engineer contract in June 2026. That is one person’s account, not a conversion-rate promise. As of October 17, 2026, the repository has 49,003 GitHub stars, uses the MIT license, and is primarily written in Python.

Core features

  • Candidate profile as the evidence base: /setup can read a folder of CVs, LinkedIn exports, diplomas, references, and past applications; it can also import one CV or build a profile through an interview. The workflow tells the agent to ground application claims in that profile instead of inventing skills or experience.
  • Role triage before drafting: /scrape searches configured job portals and deduplicates postings. /rank scores matches against skills, seniority, location, salary, career direction, and language requirements. Deal-breakers can remove a posting before it consumes time or model tokens.
  • A separate reviewer pass: /apply accepts a job URL or pasted description, evaluates fit, and drafts a tailored CV and cover letter. A reviewer agent in a fresh context checks for unsupported claims, generic framing, and missing role keywords; the drafter then revises. Gaps that the candidate profile cannot support remain gaps.
  • PDF and ATS checks: the workflow compiles the CV and cover letter with LaTeX, checks pagination and layout, and extracts the PDF text to inspect what an ATS may parse. It looks for readable contact details and relevant terms, while refusing to stuff in skills the profile does not support. The project recommends lualatex for the CV and xelatex for the cover letter; pypdf is optional.
  • Follow-up and interview preparation: /interview builds a preparation pack from the actual posting and submitted materials. /outcome records stages and results. /gmail-sync proposes email-derived updates for approval before changing the tracker, and follow-up commands create drafts instead of sending them.

Typical use cases

  • A technical job search across portals: the repository ships Danish job-board tools plus LinkedIn and freehire search skills. /add-portal can scaffold an integration for another public job board, but the user still needs to check the site’s access rules and terms.
  • Applications that break after compilation: candidates who have seen a clean LaTeX source produce a two-page overflow, an orphaned heading, or unreadable PDF text can catch those issues before submission.
  • A job search that needs a paper trail: the profile, postings, generated drafts, and outcomes live in local files, making the process inspectable and compatible with Git versioning.

This is a developer-oriented setup. It needs Claude Code and a Pro/Max/Team subscription or API credits, Python 3.10+, Bun, and a LaTeX distribution with both compilers. Repeated drafting and review can add token costs. The included portal tools focus heavily on Denmark; other markets may need a custom integration. For adjacent coding-agent workflows, see Everything Claude Code and agent-skills, which package engineering practices as installable skills.

Quick start

Clone the repository, install the portal CLIs, and start Claude Code to create a candidate profile:

gh repo clone MadsLorentzen/ai-job-search
cd ai-job-search
python3 tools/install_portal_clis.py
claude

Run /setup inside Claude Code, then /scrape to find postings, /rank to sort them, and /apply <job URL> for a selected role. The README calls for Python 3.10 or later, Bun, and a LaTeX distribution that includes lualatex and xelatex. Some job sites block automated fetching, in which case the workflow accepts pasted job descriptions.

Summary

ai-job-search suits candidates comfortable with a command line who want a repeatable way to screen roles and verify application files before making their own submission decision. It does not decide whether a career move is right, and it never clicks the final apply button. The candidate remains responsible for fit criteria, factual accuracy, and sending the application.

Treat the repository’s privacy guidance as part of setup. A fork of a public GitHub repository remains public, while /setup writes candidate details into tracked files. The maintainer recommends creating a private repository for personal use and adding this project as an upstream remote; sensitive documents, salary data, and application archives are covered by .gitignore rules. The project is independent and is not affiliated with Anthropic. It is MIT-licensed and primarily Python. The maintainer’s interview and hiring results describe a single job search, not an expected outcome for other users.