基于 Claude Code 构建的 AI 求职申请框架,Fork 后填个人档案,让 Claude 评估职位/定制简历/写求职信/准备面试。11.4k stars,MIT 协议,TypeScript + LaTeX。
定位
与 career-ops 类似,都是”Fork 仓库、填档案、用 Claude Code 驱动求职全流程”的框架,但 ai-job-search 更聚焦单份申请材料的精细打磨(LaTeX 简历/求职信的 PDF 排版正确性 + ATS 解析验证),而不是批量投递或大盘筛选。核心工作流是三个命令:
/setup → 填档案(读 documents/ 文件夹、粘贴 CV、或对话式访谈三选一)
/scrape → 搜索职位门户(丹麦本地门户为主,模式可迁移到任意国家)
/apply → 评估 + 定制简历/求信 + Reviewer Agent 审查 + PDF 编译校验
核心工作流语言/国家无关;职位门户搜索 Skill 是丹麦市场专用(Jobindex/Jobnet/Akademikernes Jobbank 等),但设计上可替换为本地门户。
核心特性
- Drafter-Reviewer 双 Agent 工作流:一个 Agent 起草,另一个全新上下文 Agent 研究公司并批判草稿,起草者据此修订
- PDF 编译校验闭环:
lualatex编译简历、xelatex编译求职信,Claude 读取渲染后的 PDF 页面并迭代修 LaTeX,直到简历精确 2 页无孤行、求职信精确 1 页签名可见 - ATS 文本层校验:用
pdftotext提取编译后 PDF 的文本层,验证联系方式是否为可提取文本、无乱码字形、阅读顺序正常,并核对关键词覆盖率——诚实原则:档案不支撑的关键词标记为差距,绝不硬塞 - 相关性加权简历裁剪:简历超 2 页时不machine机械裁最老的部分,而是按(相关性/独特性/求职信是否依赖该条目)三维打分,砍掉总分最低的条目
- Token 高效 Reviewer 派发:Reviewer 直接接收 inline 草稿而非重新读取,验证清单只跑一次
六个扩展命令
| 命令 | 作用 |
|---|---|
/outcome | 记录申请结果(面试/offer/拒绝/无回应),归档材料,反哺评分框架校准 |
/rank | 并行 Agent 批量给已抓取职位打分,返回排序短名单(一票否决项+截止日期提醒+过期标记) |
/expand | 扫描档案中已链接的公开来源(GitHub/portfolio/Kaggle/Google Scholar)补充技能标签 |
/upskill | 分析档案与目标职位间的技能差距,生成优先级热力图 + 学习计划 |
/add-template | 注册自定义 LaTeX 简历/求职信模板,强制测试编译 |
/add-portal | 为本地职位门户生成搜索 Skill(调研 URL 模式/结果结构/robots.txt,鉴权门户会拒绝生成) |
项目结构
ai-job-search/
├── CLAUDE.md # 主档案 + 工作流规则
├── .claude/
│ ├── commands/ # /setup /scrape /apply /rank /outcome /expand /add-template /add-portal /reset
│ └── skills/
│ ├── job-application-assistant/ # 核心 Skill:candidate-profile/behavioral-profile/writing-style/job-evaluation/cv-templates/cover-letter-templates/interview-prep
│ ├── job-scraper/ # 职位搜索编排
│ └── upskill/ # 技能差距分析
├── .agents/skills/ # 职位门户 CLI 工具(jobindex/jobnet/jobbank/jobdanmark 丹麦 + linkedin-search 国家无关)
├── cv/main_example.tex # moderncv LaTeX 简历模板
├── cover_letters/cover.cls # 自定义求职信 LaTeX class(Lato/Raleway 字体)
├── documents/ # CV/LinkedIn导出/学历证书/推荐信/历史申请记录
└── salary_lookup.py # 薪资对标工具(需自备数据)
linkedin-search 值得单独一提:基于 LinkedIn 公开无鉴权的 jobs-guest 端点,零运行时依赖(仅需 bun),地区参数化(-l "Berlin, Germany"),是仓库里唯一开箱即用、国家无关的门户 Skill;仅限个人使用(自动化访问违反 LinkedIn 条款)。
前置依赖
Claude Code CLI + Python 3.10+ + Bun(丹麦 CLI 工具)+ LaTeX 全套(lualatex + xelatex,推荐 TeX Live/MiKTeX)+ 可选 pdftotext(poppler,ATS 校验用,缺失时降级为视觉关键词审查)。
中国用户适用性
内置的职位门户搜索 Skill 对国内求职基本无用:
- 4 个丹麦本地门户(Jobindex/Jobnet/Jobbank/Jobdanmark)仅覆盖丹麦市场,与中国无关
linkedin-search号称”国家无关”(零依赖,-l参数传任意地区),但 LinkedIn 在中国大陆自 2021 年起访问不稳定,实际使用通常需要代理/add-portal生成器理论上可以自己写一个猎聘/BOSS直聘门户 Skill,但国内招聘网站普遍有较强的反爬(验证码/风控/登录墙),实操难度和 ToS 风险都不低- 简历/求职信模板是英文 LaTeX(moderncv banking 风格 +
cover.cls),没有中文模板
核心工作流本身(/setup 自我建档、/apply 的评估-定制-审查-PDF 校验闭环、/upskill 技能差距分析)是语言/国家无关的,所以更适合的场景是:用中文材料建档,投递海外/远程/外企岗位(这些岗位本身也更可能挂在 LinkedIn 或用 Greenhouse/Lever 等海外 ATS 上)。投国内岗位需要自己补一个门户 Skill 或直接手动粘贴职位描述给 /apply(README 里 /apply <paste the full job description here> 支持直接粘贴文本,绕开门户抓取)。
与相关工具的关系
- career-ops — 同属 Fork-and-run 的 Claude Code 求职框架,career-ops 侧重批量筛选+Go TUI 仪表盘+45+ 公司 Portal 预扫描,ai-job-search 侧重单份材料的 LaTeX 排版正确性+ATS 文本层校验+Drafter-Reviewer 双 Agent 审查
- 职位搜索 CLI Skill 来自 mikkelkrogsholm/skills(作者致谢)
资源
- GitHub: https://github.com/MadsLorentzen/ai-job-search
- License: MIT