每日开源 · 早间篇 089

把求职变成一条可编程流水线——

Claude Code 驱动的 AI 求职框架开源

2026年7月10日 · ai-job-search · 18,995+ Stars

如果你正在找工作,大概率经历过这些:手动为每个岗位改简历、复制粘贴写求职信、担心 ATS 系统把你的 PDF 读成乱码、面试前对着 JD 瞎猜会考什么。而 GitHub 上一个叫 ai-job-search 的项目,用一套基于 Claude Code 的 9 命令流水线,把这一整套流程全部自动化了。

它今天在 GitHub Trending 以 +3,716 Stars 登顶,3 月底由丹麦开发者 Mads Lorentzen 发布。核心理念很简单:**Fork 仓库 → 填写你的职业档案 → 让 Claude 替你评估职位、定制简历、撰写求职信、准备面试。**不是「AI 帮我写简历」那种浅尝辄止的用法,而是一个完整的求职 Agent 工作台。

项目速览

项目名****MadsLorentzen/ai-job-search

语言 TypeScript + Python + LaTeX

许可证 MIT 完全开源

Stars 18,995+(今日 +3,716 🔥)

发布 2026年3月23日 · 55 次提交

GitHub github.com/MadsLorentzen/ai-job-search

9Slash 命令2协作 Agent6国家无关门户2xPDF 验证

它能解决什么问题?

大多数「AI 简历工具」做的事就是你的名字+岗位名称丢进模板,给你一个看起来还行的 PDF。问题是:

🔴 痛点 1:表面定制,实则模板填空

AI 生成一份简历容易,但写出「针对这个特定岗位、突出这部分真实经历、规避那个经验短板」的简历,绝大多数工具做不到。

🔴 痛点 2:ATS 系统把 PDF 读成乱码

你精心排版的 LaTeX 简历,投进 Workday/Lever 之后邮箱变成 ▖、bullet 列表消失、多列布局读出火星文。ATS 读的是 PDF 文本层,不是渲染效果。

🟡 痛点 3:求职是流水线,不是单一步骤

找岗位 → 评估匹配 → 写简历 → 写求职信 → 编译 PDF → 检查 ATS → 面试准备 → 跟踪结果 → 反推校准。任何一个环节掉链子,整条链白跑。

ai-job-search 逐个击破这三个痛点:它不是生成一份通用简历,而是走完一条完整的、带自我验证的求职流水线

核心亮点:把求职拆成九步流水线

仓库的核心是 .claude/commands/ 目录下 9 个命令文件,每个承担一个明确职责:

# 核心工作流(5 个)/setup→ 建立候选人档案(文档/CV粘贴/访谈 三选一)/scrape→ 扫描多个招聘门户,去重排序/rank→ 批量打分 30 个岗位,返回 Top-N 短名单/apply→ 完整起草-审查-编译-ATS 验证流程/outcome→ 记录申请结果,归档材料,反推校准# 扩展命令(4 个)/interview→ 模拟面试 + STAR 示例映射/expand→ 从 GitHub/Portfolio/Google Scholar 补齐档案/upskill→ 分析技能差距,生成带来源的学习计划/add-portal→ 为本地市场生成招聘门户搜索 Skill

这些命令不是孤立的——上一步的输出就是下一步的输入,共享同一份候选人档案,档案随流程演进。

亮点一:Drafter-Reviewer 双 Agent 协作

/apply 是整条流水线的核心,284 行命令定义了一个撰写-审查分离的 6 步流程:

Step 0-2 DRAFTER(起草者):

解析职位描述 → 5 维匹配评分(技能/经验/行为/地点/职业方向)→ 撰写 LaTeX 简历和求职信

Step 3 REVIEWER(审查者):

全新空 context 启动独立 Agent,做公司调研 + 审查草稿,返回结构化反馈

Step 4-6 DRAFTER 修订 + 双验证:

按反馈修订 → lualatex/xelatex 编译 PDF → 视觉检查(强制恰好 2 页 CV + 1 页 Cover Letter)→ pdftotext 提取文本层 → ATS 合规检查

这里有两个关键设计决策:

审查者从空 context 启动。

如果复用起草者的上下文,审查者不自觉地被已写内容带跑——起草者写什么它就跟着夸什么。空 context 让它从头解析岗位、独立研究公司,才能挑出起草者完全没想到的角度。

草稿内联传递,不让审查者读文件。

通过 <CV_DRAFT>...</CV_DRAFT> 标签将内容内联传给审查 Agent,省下一次文件读取的 Token,把预算留给公司调研和深度反馈。

来自深度体验者 jackssybin 的评价:「我见过的最诚实的做法。多 Agent 系统的失败 90% 在 context 管理,而不是 prompt 写得好不好。」

亮点二:PDF 视觉 + ATS 文本层双重验证

所有用过 LaTeX 写简历的人都踩过同一个坑:.tex 文件看起来没问题,生成 PDF 打开也挺漂亮,但投进 ATS 系统就变成一团乱码。

ai-job-search 的解决方法是把验证作为强制不可跳过的一步,写死在 /apply 工作流里:

# Step 5: 编译 + 视觉检查 PDF(强制通过才能继续)lualatex编译 CVxelatex编译 Cover Letter检查项:├── CV 恰好 2 页(不是 1 也不是 3) ├── 无孤立的 \cventry 标题(标题在页底、内容在下一页) │ └── 自动修复:\needspace + \enlargethispage ├── Cover Letter 恰好 1 页,签名与正文在一起 └── Cover Letter bullets 字体不回退到 Computer Modern # Step 6: 提取 PDF 文本层 + ATS 校对pdftotext 抽出文本 →验证├── 无 (cid:*) 标记或乱码替换字符 ├── 邮箱电话作为 literal 明文存在(不只是挂在图标上) ├── 阅读顺序与视觉顺序一致 └── 岗位关键词覆盖评分(covered/synonym-only/missing)

CSDN 的分析文章指出:「LaTeX 简历最常见的问题不是内容不行,是渲染结果出 bug。moderncv 在 MiKTeX 下把标题渲染成黑色而非蓝色、itemize 间距坍缩、图标字形替代了联系信息——ai-job-search 把这些全自动化了。」

亮点三:贵/便宜命令分离——工程化的成本控制

为什么要拆成 /rank 和 /apply 两个命令,而不是 /apply 一条龙?

/rank:廉价、快速、可并行

只做基于岗位描述的文本匹配打分,一次跑 30 个。内部并行派多个 Agent(每个处理约 5 个岗位),只花分类和排序的 Token。

/apply:昂贵、精细、单发

一次一个,独立起 reviewer Agent 做公司调研、深度审查、PDF 编译验证。花钱就要花在 Top-N 上。

「用便宜的排序过滤,让昂贵的申请只花在 Top-N 上」——这是 AI Agent 工作流中非常成熟的工程思维,而不是「把所有事情扔进一个大 Prompt」。

亮点四:/add-portal——让框架覆盖全球市场

项目内置了 6 个门户搜索工具(4 个丹麦市场 + LinkedIn + freehire),但对其他市场的支持通过 /add-portal 命令实现可扩展:

# 为你的本地市场生成职位搜索 Skill/add-portalhttps://www.zhipin.com/web/geek/job工作原理:1. WebFetch 探测门户搜索 URL 模式、结果结构、访问规则 2. 从既有 6 个门户 Skill 的结构脚手架出 CLI 骨架 3. 强制跑一次 live query test 4. 测试通过 → 注册进 /scrape orchestrator 5. 需认证/Auth-walled 门户直接拒绝

这个设计让框架具备了地区无关的扩展能力——无论你在丹麦、中国还是德国,只需要一条命令。

实战场景展示

场景一:日常求职流程

# 早上一杯咖啡,启动 Claude Code claude # 扫描今天新发的岗位/scrape data science # 返回 30 个岗位,懒的一个个看 → 让 AI 排序/rank --top 10 # Top-3 中选一个最心仪的/apply https://jobindex.dk/job/12345 # 6 步流程跑完 → 拿到两份 PDF(CV + Cover Letter)# 都经过视觉检查 + ATS 文本层验证# 投出去后记录结果/outcome# 收到面试邀请 → 准备面试/interview

场景二:面试准备

/interview 命令基于你已跟踪的申请存档,构建阶段专属准备包:

准备工作包含:

• STAR 示例映射——你的每条经历对应哪些常见行为问题

• 公司/面试官调研(从应用存档加载精确职位发布)

• 模拟面试角色扮演(Claude 扮演面试官,多轮追问)

• 差距桥接:对于你的薄弱点,给予诚实的桥接答案而非编造

场景三:技能差距分析与学习规划

/upskill 分析你的档案和你跟踪的职位之间的差距,生成带优先级的技能差距热力图和带学习资源的学习计划。对于特定岗位可以用 /upskill <URL> 单独分析。

上手指南:5 分钟接入

前置依赖:

• Claude Code CLI — 整个框架的运行载体

• Python 3.10+

• Bun — 用于职位搜索 CLI 工具的运行时

• LaTeX 发行版 — TeX Live / MacTeX / MiKTeX(含 lualatex 和 xelatex)

• poppler-utils(可选,用于 ATS 检查)— macOS: brew install poppler

三步启动:

# 1. Fork + Clone gh repo fork MadsLorentzen/ai-job-search --clone cd ai-job-search # 2. 安装门户 CLI 依赖(Linux/macOS)for portal in jobbank-search jobdanmark-search jobindex-search jobnet-search linkedin-search; do (cd .agents/skills/$portal/cli && bun install) done# 3. 启动 Claude Code,跑 /setup claude /setup

/setup 的三条路径:

路径 A(推荐):Documents 文件夹

把 CV PDF、LinkedIn 导出、学位证、推荐信、过往申请材料丢进 documents/ 文件夹,命令自动读取。幂等,可安全重复运行。

路径 B:粘贴 CV

在聊天中直接粘贴完整 CV 文本。

路径 C:访谈式

通过问答访谈一步步建立你的职业档案。

**关键提醒:**资料深度直接决定输出质量。不是简单罗列技能名称,而是描述你在什么场景下用过什么工具、做了什么具体项目、取得了什么成果。「用 Python 和 scikit-learn 构建了客户流失预测的 ML 管道」远比「Python, Machine Learning」给 AI 更多可操作信息。

三个求职工具,三种哲学

同类赛道中还有两个项目值得对比,它们代表了求职自动化的三种思路:

AIHawk(自动填表)

侧重点:网页自动化,自动打开浏览器帮你填 100 份申请表单。追求「数量」——适合需要海投的场景。

career-ops(管道化批量处理)

侧重点:多 Worker 并行 + Go TUI 仪表盘 + A-F 评分系统。更像一个求职操作系统,追求「效率」。

ai-job-search(深度定制)

侧重点:每个岗位高度定制 + PDF-ATS 双重验证。追求「质量」——不帮你点提交,只帮你写出最好的申请。

CSDN 文章精辟总结:「AIHawk 做的是数量——打开浏览器自动填 100 份表格。ai-job-search 做的是质量——不替你点提交按钮,它替你想这份申请应该怎么写。」

适用边界:谁适合用它?

✅ 适合:

• 你的思路是「少投几份但每一份都高度定制」

• 你对排版质量有要求(投欧洲市场,LaTeX 简历几乎是标配)

• 你不介意花时间搭建环境和填写详细资料

• 你想学习 Claude Code 多 Agent 工作流的工程实践

❌ 不适合:

• 你的思路是「三天内海投 200 个岗位」→ 用 AIHawk 或 career-ops

• 你不熟悉命令行和 LaTeX → 有学习成本

• 你的目标市场不在 LinkedIn/freehire 覆盖范围且不方便 /add-portal → 需要评估

今日总结

ai-job-search 真正的价值不在于「又一个 AI 简历生成器」,而在于它展示了一种成熟的 AI Agent 工作流设计范式

1. 多命令 + 单档案

所有命令共享同一份候选人档案,每个命令按需读取,档案随 /setup → /expand → /outcome 持续演进。这个模式可以套到读书笔记、代码审查等任何多阶段任务。

2. 贵/便宜命令分离

/rank 廉价并行跑 30 个,/apply 昂贵单发一个。这是工程决策——你得替 AI 决定什么时候可以省 Token,什么时候必须多花。

3. 验证挂在真实产物上

不是让 AI 承诺「LaTeX 一定 2 页」,而是编译出 PDF 亲自看;不是保证「关键词都覆盖」,而是用 pdftotext 抽出来 grep。任何 AI 工作流的最后一环必须是客观的、可运行的验证。

如果你正处在换工作的窗口期,或者想找一个把 Claude Code 用得很深的项目来学习多 Agent 架构——这个仓库值得 Fork 下来跑一遍 /setup,半小时就能感受到 drafter-reviewer 循环的价值。

💬 聊一聊

你觉得 AI 在求职这件事上,最应该帮你做什么?

是自动海投、深度定制、面试模拟,还是别的?欢迎留言分享你的想法。

🔗 项目地址

github.com/MadsLorentzen/ai-job-search

MIT License · 18,995+ Stars · 2026年3月发布

📮 明天见。每天一个值得深读的开源项目,从代码看到思维。

本文基于公开资料整理,仅供技术学习与交流。项目使用可能涉及第三方平台服务条款,请自行评估合规性。

Logo

小龙虾开发者社区是 CSDN 旗下专注 OpenClaw 生态的官方阵地,聚焦技能开发、插件实践与部署教程,为开发者提供可直接落地的方案、工具与交流平台,助力高效构建与落地 AI 应用

更多推荐