MadsLorentzen / ai-job-search

MadsLorentzen / ai-job-search

AI Job Search An AI-powered job application framework built on Claude Code. Fork it, fill in your profile, and let Claude evaluate job postings, tailor your CV, write cover letters, and prepare you for interviews. AI 求职助手 这是一个基于 Claude Code 构建的 AI 驱动求职框架。Fork 该项目,填写你的个人资料,然后让 Claude 评估职位发布、定制你的简历、撰写求职信并为你准备面试。

Note: This is an independent open-source project and is not affiliated with, endorsed by, sponsored by, or maintained by Anthropic. Anthropic and Claude Code are referenced only to describe the toolchain this workflow uses. 注意:这是一个独立的开源项目,与 Anthropic 公司无任何关联,也未得到其认可、赞助或维护。文中提及 Anthropic 和 Claude Code 仅用于描述该工作流所使用的工具链。

What this is

A structured workflow that turns Claude Code into a full-stack job application assistant. The core workflow (self-profiling, fit evaluation, and the drafter-reviewer application pipeline) is language- and country-agnostic. The job portal search skills are built for the Danish market (Jobindex, Jobnet, Akademikernes Jobbank, etc.), but the pattern is designed to be swapped for your local job boards.

项目简介

这是一个结构化的工作流,将 Claude Code 转变为全栈求职助手。其核心工作流(自我画像、匹配度评估以及“起草-审核”申请流水线)与语言和国家无关。目前的职位搜索技能是针对丹麦市场(Jobindex, Jobnet, Akademikernes Jobbank 等)构建的,但其模式设计为可轻松替换为你当地的招聘网站。


Workflow Overview

/setup -> /scrape -> /apply
  |        |        |
  v        v        v
Fill in  Search job  Evaluate fit
your profile portals Score & recommend
  |        |        |
  v        v        v
Profile  Present matches  Draft CV + Cover Letter
         files ready with fit ratings (LaTeX, tailored)
           |        v
           v        v
         Pick a match Reviewer agent critiques -> /apply -> Revise -> Final output

工作流概览

/setup -> /scrape -> /apply
  |        |        |
  v        v        v
填写个人资料 搜索招聘网站 评估匹配度、评分并推荐
  |        |        |
  v        v        v
个人画像   展示匹配结果  起草简历 + 求职信(LaTeX 格式,已定制)
           |        v
           v        v
         选择职位   审核代理评估 -> /apply -> 修改 -> 最终输出

The framework encodes career guidance best practices, including structured evaluation criteria, forward-looking cover letter framing, and optional salary benchmarking. 该框架整合了职业指导的最佳实践,包括结构化的评估标准、前瞻性的求职信框架以及可选的薪资基准分析。

Prerequisites

  • Claude Code (CLI)
  • Python 3.10+
  • Bun (for Danish job search CLI tools)
  • LaTeX distribution with lualatex and xelatex: TeX Live or MiKTeX. 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.
  • Optional: pdftotext from poppler (macOS: brew install poppler, Debian/Ubuntu: apt install poppler-utils, Windows: choco install poppler) — used by /apply’s ATS parseability check on the compiled CV. If missing, the check degrades gracefully to a visual keyword review.

前置要求

  • Claude Code (CLI)
  • Python 3.10+
  • Bun(用于丹麦求职 CLI 工具)
  • LaTeX 发行版(需包含 lualatexxelatex):如 TeX Live 或 MiKTeX。简历使用 lualatex 编译(pdflatex 在现代 MiKTeX 安装中常因 fontawesome5 字体扩展错误而失败);求职信使用 xelatex 编译,因为 cover.cls 需要 fontspec
  • 可选: 来自 poppler 的 pdftotext(macOS: brew install poppler, Debian/Ubuntu: apt install poppler-utils, Windows: choco install poppler)——用于 /apply 对编译后的简历进行 ATS 可解析性检查。如果缺失,检查将自动降级为视觉关键词审查。

Quick start

  1. Fork and clone gh repo fork MadsLorentzen/ai-job-search --clone cd ai-job-search
  2. Install job search tools cd .agents/skills/jobbank-search/cli && bun install && cd ../../../.. (Repeat for other search skills…) For linkedin-search the install is optional: it has zero runtime dependencies and runs with plain bun; bun install only pulls TypeScript dev types.

快速开始

  1. Fork 并克隆仓库 gh repo fork MadsLorentzen/ai-job-search --clone cd ai-job-search

  2. 安装求职搜索工具 cd .agents/skills/jobbank-search/cli && bun install && cd ../../../.. (对其他搜索技能重复此步骤…) 对于 linkedin-search,安装是可选的:它没有任何运行时依赖,可以直接用 bun 运行;bun install 仅用于拉取 TypeScript 开发类型。

  3. Set up your profile claude # Then inside Claude Code: /setup /setup offers three paths: read your documents/ folder, import a single CV, or walk through an interview.

  4. 设置个人资料 claude # 然后在 Claude Code 内部输入: /setup /setup 提供三种方式:读取你的 documents/ 文件夹、导入单份简历,或通过面试问答进行设置。

  5. Search for jobs /scrape This searches multiple job portals, deduplicates results, and presents them sorted by fit. Run /rank to batch-score them all against the fit framework.

  6. 搜索职位 /scrape 此命令会搜索多个招聘网站,对结果进行去重,并按匹配度排序展示。运行 /rank 可根据匹配框架对所有职位进行批量评分。

  7. Apply to a job /apply https://jobindex.dk/job/1234567 If the URL can’t be fetched, paste the job description directly: /apply <paste the full job description here>

  8. 申请职位 /apply https://jobindex.dk/job/1234567 如果无法抓取 URL(某些招聘网站会拦截自动化访问),可以直接粘贴职位描述:/apply <在此粘贴完整的职位描述>

Other commands

  • /outcome: Records application status and archives files.
  • /rank: Bridges /scrape and /apply by batch-scoring postings.
  • /expand: Enriches your profile by scanning linked sources (GitHub, Kaggle, etc.).
  • /upskill: Analyzes skill gaps and creates a learning plan.
  • /add-template: Registers custom LaTeX templates.
  • /add-portal: Generates a new job-portal search skill.

其他命令

  • /outcome:记录申请状态并归档文件。
  • /rank:通过批量评分职位连接 /scrape/apply
  • /expand:通过扫描已关联的来源(GitHub, Kaggle 等)来丰富你的个人资料。
  • /upskill:分析技能差距并制定学习计划。
  • /add-template:注册自定义的 LaTeX 模板。
  • /add-portal:生成新的招聘网站搜索技能。