AI Job Search 完全指南:让 Claude Code 帮你找工作(简历、求职信、面试一条龙)

AI 时代程序员必备技能

Codex、Claude Code、Cursor、Hermes Agent、OpenClaw等工程化实战专栏 ,讲透 AI 如何接管脏活累活

这不是一个"自动投简历"的工具。它是一个求职辅助框架——帮你筛选职位、量身定制简历和求职信、准备面试,但每一步都由你决策。作者用这套框架在自己失业后完成了 69 次申请、20 次一面,最终拿到了 AI 工程师的 offer。现在它开源了。

目录

  1. 这项目是干什么的?

  2. 作者的故事:一个真实成功的案例

  3. 核心工作流

  4. 前置条件:你需要准备什么

  5. 快速开始(四步上手)

  6. 所有命令详解

  7. /apply 深度揭秘:一个申请是怎么生成的

  8. 文件结构速览

  9. 自定义与扩展

  10. 实际效果与建议

  11. 安全与隐私

  12. 常见问题

  13. 局限性与注意事项

  14. 总结


1. 这项目是干什么的?

一句话ai-job-search 是一个基于 Claude Code 的开源求职框架,帮你完成从职位搜索、简历定制、求职信撰写到面试准备的完整流程。

它不是

  • ❌ 自动投递机器人(不会自动提交申请)

  • ❌ 批量海投工具(每个申请都是量身定制)

  • ❌ 替代你面试的作弊工具

它是

  • ✅ 求职辅助系统:帮你筛选、评估、定制

  • ✅ 本地运行:所有数据在你自己的机器上

  • ✅ 开源透明:你可以审查每一行代码

仓库数据

指标数值
GitHub Stars25,400+
Forks8,300+
许可证MIT
最新版本v1.0.0(2026-07-22)
语言TypeScript 61.9% + Python 33.0% + TeX 5.1%
作者MadsLorentzen

2. 作者的故事:一个真实成功的案例

作者 Mads 原本是一名地球物理学家(geophysicist)。2025 年底,他的岗位被裁了。

他没有像大多数人一样海投简历。他写了一个让 Claude Code 帮他找工作的框架——就是你现在看到的这个仓库。

他每周用自己的框架跑 /scrape → /apply → /interview 流程,对自己的求职过程进行管理。他坦诚地告诉了每一个面试官"我用 AI 辅助做了简历和求职信",结果不仅没有被扣分,反而经常引发一场技术讨论。

最终数据:

  • 69 次量身定制的申请

  • 20 次第一轮面试

  • 1 份签署的合同

2026 年 6 月,他正式入职成为 AI 工程师。

作者的原话:"人们不停地问我这东西到底管不管用。它帮我找到了工作。现在它是你的了。"


3. 核心工作流

┌─────────────────────────────────────────────────────────┐
│  /setup                                                  │
│  填写你的个人资料:教育背景、工作经验、技能、求职偏好       │
└────────────┬────────────────────────────────────────────┘
             ▼
┌─────────────────────────────────────────────────────────┐
│  /scrape / /rank                                         │
│  搜索职位 + 匹配度评分 + 排名推荐                         │
└────────────┬────────────────────────────────────────────┘
             ▼
┌─────────────────────────────────────────────────────────┐
│  /apply <url>                                            │
│  评估匹配度 → 定制简历 + 求职信 → 二审 → 编译 PDF → ATS 检查 │
└────────────┬────────────────────────────────────────────┘
             ▼
┌─────────────────────────────────────────────────────────┐
│  /outcome                                                │
│  记录结果 → 存档申请材料 → 更新追踪表                     │
└────────────┬────────────────────────────────────────────┘
             ▼
┌─────────────────────────────────────────────────────────┐
│  /interview / /upskill / /html-report                    │
│  面试准备 / 技能差距分析 / 申请仪表盘                     │
└─────────────────────────────────────────────────────────┘

核心原则:所有步骤由你决策,AI 只做辅助。简历和求职信的所有内容都基于你的真实资料,绝不编造经历


4. 前置条件:你需要准备什么

必须

工具说明
Claude Code CLI核心 AI 引擎。如果使用其他工具(Codex、Gemini CLI 等),从 AGENTS.md 开始
Python 3.10+用于部分工具脚本
BunJavaScript 运行时,用于职位搜索 CLI 工具
LaTeX 发行版编译 PDF 简历和求职信。推荐 TeX Live / MacTeX / TinyTeX / MiKTeX

可选

工具说明安装命令
pdftotext(poppler)简历 ATS 兼容性检查。缺失时退化为视觉关键词检查macOS: brew install poppler,Debian: apt install poppler-utils,Windows: choco install poppler

关于 LaTeX 的注意事项

  • 简历使用 lualatex 编译(内置 moderncv 模板)

  • 求职信使用 xelatex 编译(cover.cls 需要 fontspec)

  • 如果用 TinyTeX / BasicTeX 等最小化安装,需要额外安装一些包,详见 SETUP.md


5. 快速开始(四步上手)

步骤 1:Fork 并克隆

gh repo fork MadsLorentzen/ai-job-search --clone
cd ai-job-search

为什么要 fork?因为你要把自己的简历、资料、求职记录都放到这个仓库里。Fork 之后它就变成你的私人物品了。

步骤 2:安装职位搜索工具

PowerShell

$tools = @("jobbank-search", "jobdanmark-search", "jobindex-search", "jobnet-search", "linkedin-search", "freehire-search")
foreach ($tool in $tools) {
  Push-Location ".agents/skills/$tool/cli"
  bun install
  Pop-Location
}

Bash / zsh / Git Bash

for tool in jobbank-search jobdanmark-search jobindex-search jobnet-search linkedin-search freehire-search; do
  (cd .agents/skills/$tool/cli && bun install)
done

linkedin-search 和 freehire-search 零运行时依赖,bun install 只拉取 TypeScript 开发类型。

步骤 3:设置个人资料

claude
# 然后在 Claude Code 中运行:
/setup

/setup 提供三种路径:

路径说明
A - 文档文件夹如果你已经有 CV 的 PDF、LinkedIn 导出、学位证书、推荐信等,放到 documents/ 文件夹即可
B - 粘贴简历直接粘贴一份简历文本到聊天中
C - 面试式录入Claude 像面试一样问你,一步步收集你的经历

它会自动检测你有什么,然后选择最合适的路径。文档模式是幂等的(可以重复运行),随着你添加更多资料随时可以重新跑。

步骤 4:开始搜索职位

/scrape

这会同时在多个求职门户搜索匹配你背景的职位,去重后按匹配度排序展示。看到合适的,直接对 Claude 说"apply to this one"就行。

或者直接用 URL 申请

/apply https://jobindex.dk/job/1234567

6. 所有命令详解

核心命令(必用)

命令用途说明
/setup初始化个人资料三种路径(文档/粘贴/面试),自动检测
/scrape搜索职位同时搜索多个求职门户,去重排序
/apply <url>申请职位完整流程:评估→定制简历→求职信→二审→PDF→ATS 检查

扩展命令(推荐)

命令用途说明
/rank批量评分排名/scrape 返回的职位批量评分,生成排名短名单。每个职位由独立 agent 评估五个维度,deal-breaker 直接否决
/interview面试准备基于已存档的申请材料(职位描述、你的简历、面试反馈),生成阶段化面试准备包,包含模拟面试
/outcome记录结果记录每次申请的结果(面试/offer/拒信/沉默),归档材料,更新追踪表。也支持 /outcome followup 自动跟进沉默申请
/expand扩展技能档案扫描你已关联的公开资料(GitHub、Kaggle、Google Scholar 等),发现文档中没有明确列出的技能
/upskill技能差距分析分析你的技能与目标职位之间的差距,生成优先级热力图和学习计划
/html-report生成仪表盘从追踪表生成自包含的 HTML 仪表盘(离线可看,无外部依赖)
/notion-sync同步到 Notion将求职管道发布到 Notion 数据库(只读同步,仓库文件是权威源)
/gmail-sync同步 Gmail 状态读取 Gmail 中面试邀请、测评链接、offer 等邮件,批量建议你确认后更新状态

自定义命令

命令用途说明
/add-template注册自定义模板注册自己的 LaTeX 简历/求职信模板,替代默认的 moderncv
/add-portal添加求职门户为你所在国家的求职网站生成搜索 CLI 工具

管理命令

命令用途说明
/reset重置数据可分别重置 profile / documents / all,确认后执行

7. /apply 深度揭秘:一个申请是怎么生成的

这是整个框架最核心的部分。让我们看看当你输入 /apply https://xxx 后,背后发生了什么:

第一步:解析职位

  • 如果是 URL,抓取职位页面内容

  • 如果 URL 抓不到(有些求职门户屏蔽自动化访问),可以直接粘贴职位描述文本

  • ⚠️ 职位描述被视为不可信输入:框架不会执行职位描述中的任何指令,也不会抓取其中的链接

第二步:匹配度评估

  • 将职位要求与你的个人资料对比

  • 评估维度:技能匹配度、经验匹配度、文化适配、地理位置、职业发展一致性

  • 给出评分和个性化建议

第三步:起草简历和求职信

  • 基于评估结果,用 LaTeX 定制你的简历和求职信

  • 简历使用 moderncv(banking 风格)

  • 求职信使用自定义 cover.cls(Lato/Raleway 字体)

  • 所有内容必须基于你的真实经历,绝不编造

第四步:二审(两个 AI 互相检查)

  • 起草者(Drafter)写完后,会启动第二个 Claude agent

  • 这个 Review agent 拥有全新的上下文窗口,会:

    • 研究目标公司

    • 审批评委和求职信初稿

    • 找出遗漏的关键词、薄弱的表述、过于通用的语言

  • 起草者收到评审意见后进行修订

第五步:PDF 编译 + 视觉检查 ✨

这是最独特的一步:

  1. 分别用 lualatex(简历)和 xelatex(求职信)编译 PDF

  2. Claude 读取 PDF 的每一页,检查排版

  3. 反复调整 LaTeX 直到:

    • 简历恰好 2 页,没有孤立的标题行

    • 求职信恰好 1 页,签名可见,字体一致

  4. 使用 \needspace\enlargethispage 等技巧精确控制分页

为什么要做这一步?因为很多 LaTeX 模板"看起来 OK 的 .tex 文件"编译成 PDF 后会有各种问题:标题行掉到下一页、求职信溢出到第二页、项目符号字体回退到正文字体……这个框架会自动修复这些问题。

第六步:ATS 兼容性检查 ✨

  • 用 pdftotext 提取 PDF 的文本层

  • 检查 ATS 解析器实际看到的内容:

    • 联系信息是否以纯文本形式存在

    • 是否有乱码字符

    • 阅读顺序是否正常

    • 职位关键词覆盖率

  • 诚信规则:简历中不支持的技能被标记为差距,绝不会硬塞进去

第七步:输出

  • 展示最终简历和求职信

  • 附带验证检查清单

  • 你审阅后决定是否使用


8. 文件结构速览

ai-job-search/
├── CLAUDE.md                    # 你的个人资料 + 工作流规则
├── .claude/
│   ├── commands/                # 所有命令定义(/apply、/setup 等)
│   ├── skills/                  # 核心技能文件
│   │   ├── job-application-assistant/  # 核心申请技能(7 个文件)
│   │   ├── job-scraper/                # 职位搜索编排
│   │   └── upskill/                    # 技能差距分析
│   └── settings.json            # Claude Code 权限配置
├── .agents/skills/              # 职位搜索 CLI 工具
│   ├── jobbank-search/          # Akademikernes Jobbank(丹麦)
│   ├── jobdanmark-search/       # Jobdanmark.dk(丹麦)
│   ├── jobindex-search/         # Jobindex.dk(丹麦)
│   ├── jobnet-search/           # Jobnet.dk(丹麦政府门户)
│   ├── linkedin-search/         # LinkedIn 公开职位(全球通用)
│   └── freehire-search/         # freehire.dev 聚合器(科技岗)
├── cv/
│   └── main_example.tex         # moderncv LaTeX 模板
├── cover_letters/
│   ├── cover.cls                # 自定义求职信 LaTeX 类
│   └── OpenFonts/               # Lato + Raleway 字体
├── documents/                   # 个人资料源文件
│   ├── cv/                      # 主简历(PDF 或 .tex)
│   ├── linkedin/                # LinkedIn 导出(PDF)
│   ├── diplomas/                # 学位证书
│   ├── references/              # 推荐信
│   └── applications/            # 历史申请记录
├── templates/                   # 自定义模板(/add-template 注册)
├── job_search_tracker.csv       # 申请追踪表
├── salary_lookup.py             # 薪资对标工具
└── SETUP.md                     # 详细设置指南

9. 自定义与扩展

9.1 手动编辑

如果你不想用 /setup,也可以直接编辑以下文件:

文件内容
CLAUDE.md完整个人资料(姓名、教育、经历、技能、目标)
.claude/skills/job-application-assistant/01-candidate-profile.md结构化简历数据
.claude/skills/job-application-assistant/02-behavioral-profile.md行为风格评估
.claude/skills/job-application-assistant/04-job-evaluation.md技能匹配领域、职业目标、动机筛选
.claude/skills/job-application-assistant/07-interview-prep.md你的 STAR 事例

9.2 自定义简历/求职信模板

/add-template

把你的 .tex 文件(以及 .cls/.sty 和字体文件)交给它,它会:

  1. 采访你了解模板规则(编译引擎、字体、样式、页数限制)

  2. 存入 templates/ 目录

  3. 运行一次测试编译

  4. 激活模板,后续 /apply 使用新模板

管理命令

  • /add-template --list:列出已注册模板

  • /add-template --use <name>:切换模板

  • /add-template --use default:恢复默认 moderncv

9.3 添加你所在国家的求职门户

/add-portal

输入你当地求职网站的 URL,它会:

  1. 调查门户结构(搜索 URL 模式、结果页面结构、robots.txt/访问规则)

  2. 生成与已提供工具相同结构的 CLI 技能

  3. 运行一次实时查询测试

  4. 注册到系统中

需要认证的门户会被拒绝;有严格使用条款的门户会生成个人使用警告。

9.4 全球通用门户

项目内置了两个不限于丹麦的搜索工具:

工具说明
linkedin-search基于 LinkedIn 公开求职端点(无需登录),通过 -l 参数指定地点,全球通用。仅限个人使用
freehire-search基于 freehire.dev 公开 REST API(JSON,无需 API Key),科技岗为主,支持地区/远程筛选

9.5 薪资对标

# 查看薪资工具说明
cat tools/README_SALARY_TOOL.md

你可以导入自己的薪资数据(工会统计、Glassdoor 导出、个人调研等),格式详见 tools/README_SALARY_TOOL.md。没有薪资数据时,该步骤会被跳过。

9.6 保持更新

# 预览更新会触及哪些你自定义的文件
python3 tools/check_upstream_updates.py
​
# 更新到 tagged release(不要直接拉 master)
# 详见 SETUP.md 第 8 节

10. 实际效果与建议

作者的真实数据

指标数值
申请数69 次
一面数20 次
转化率29%(行业平均约 10-15%)
最终拿到 AI 工程师 offer ✅

提升效果的关键

1. 资料深度决定质量

这是最重要的因素。薄的资料产生通用的申请,详细的资料才能产生真正的定制化结果。

  • 不要只写"Python,机器学习",要写"用 Python + scikit-learn 构建了客户流失预测的 ML 流水线"

  • 不要只列职位头衔,要描述具体项目、工具、职责和量化成果

  • 描述你实际做了什么,而不是只写岗位要求

2. 两种求职模式

模式说明
明确目标型你知道想做什么行业/岗位,系统帮你精准匹配
潜在机会发现型分析你的完整经历(不仅是职位头衔,还有实际工作内容),发现你没想到的职业路径

想用好第二种模式,在 /setup 时多花时间描述:

  • 什么工作让你有成就感

  • 什么工作让你疲惫

  • 你希望未来多做什么

3. 简历投递后别忘了

/outcome followup 会在默认 10 天后自动提示沉默的申请,帮你写一封简洁的跟进邮件(只生成草稿,不会自动发送,且最多跟两次)。


11. 安全与隐私

你的数据

  • 所有数据在你本地:个人资料、简历、求职信、申请记录都存储在你自己 fork 的仓库里

  • 与 Anthropic 无关:项目是独立开源项目,不隶属于 Anthropic

  • 职位描述视为不可信输入:/apply 不会执行职位描述中的任何指令,也不会抓取描述中的链接

注意事项

  1. LinkedIn 搜索:仅限个人使用,自动化访问违反 LinkedIn 服务条款,请控制频率

  2. Gmail 同步/gmail-sync 读取你的 Gmail 邮件来检测申请状态,所有变更需要你逐条确认

  3. Notion 同步:只读单向同步,仓库文件是权威源,不会同步回写

  4. AI 生成内容:简历和求职信虽然基于你的真实资料,但建议在提交前人工审阅一遍

防诈骗提醒

该项目没有任何关联的加密货币、代币或付费赞助计划。任何声称与此相关的都是骗局。唯一支持项目的方式是:

  • 通过 Ko-fi 链接请作者喝咖啡

  • 在 GitHub 上贡献代码


12. 常见问题

Q1:这个适合中国国内的求职市场吗?

需要适配。职位搜索工具目前主要面向丹麦市场(Jobindex、Jobnet 等),但:

  • /add-portal 可以让你添加国内求职网站

  • linkedin-search 支持全球通用

  • 核心流程(简历定制、求职信、面试准备)是语言和地区无关的

Q2:不会 LaTeX 能用吗?

能。 默认模板是已经配好的,你不需要写 LaTeX 代码。框架自动编译和调整排版。如果你有自己用的模板,用 /add-template 注册即可。

Q3:会帮我自动投简历吗?

不会。 这个框架是辅助你做申请,不是代替你。每一步都需要你审阅和决策。最终输出的简历和求职信也是你手动提交。

Q4:我可以用其他 AI 工具代替 Claude Code 吗?

可以。 职位搜索技能在 Codex、Antigravity、Gemini CLI 等工具上开箱即用。完整的申请工作流可能需要社区适配,详见 AGENTS.md

Q5:简历和求职信能直接拿来用吗?

建议先审阅再提交。 虽然所有内容都基于你的真实资料,机制上也不允许编造经历,但 AI 生成的内容总有遗漏或措辞不准确的可能。花 5 分钟检查一遍是值得的。

Q6:需要什么级别的 LaTeX 安装?

  • 简历用 lualatex,求职信用 xelatex

  • 推荐完整安装 TeX Live 或 MacTeX

  • 如果用 TinyTeX/BasicTeX,需要额外安装包,详见 SETUP.md

Q7:简历一定是 2 页吗?求职信一定是 1 页吗?

是的,这是框架的硬性要求。 系统会反复调整 LaTeX 编译参数,直到简历恰好 2 页、求职信恰好 1 页。如果内容太多,它会按相关性评分裁剪内容。

Q8:/apply 支持哪些求职网站?

任何你能拿到职位描述 URL 或文本的网站都可以。但要注意:

  • 有些网站屏蔽自动化抓取,这时你可以直接粘贴职位描述文本

  • 内置搜索工具目前主要支持丹麦市场 + LinkedIn + freehire.dev


13. 局限性与注意事项

地域限制

  • 内置职位搜索工具主要面向丹麦市场(Jobindex、Jobnet、Jobbank、Jobdanmark)

  • 虽然提供了 linkedin-search(全球)和 freehire-search(科技岗),以及 /add-portal 生成器,但其他市场需要自己适配

  • 中文求职市场(智联招聘、BOSS 直聘、猎聘等)可能需要社区贡献

技术门槛

  • 需要安装 Claude Code CLIPython 3.10+BunLaTeX 四个依赖

  • 对不熟悉命令行和 LaTeX 的用户有一定门槛

  • 简历和求职信的质量高度依赖你输入的资料质量

不是万能药

  • 框架不能替代你的能力、经验和面试表现

  • 简历和求职信虽然经过 AI 优化,但最终打动面试官的是你本人

  • 如果你对目标行业/岗位一无所知,AI 也无法帮你"无中生有"

  • 对于某些行业(如传统制造业、政府机关),ATS 优化和 LaTeX 简历可能不是主流

维护成本

  • 上游更新频繁,需要定期同步(建议用 tagged release 而非 master)

  • 个人的求职状态、技能、偏好需要持续更新

  • 职位搜索工具可能因目标网站改版而失效

隐私提醒

  • 你的完整个人资料(简历、LinkedIn 导出、证书等)存放在你自己 fork 的仓库

  • 如果 fork 的是公开仓库,注意不要提交敏感个人信息到公开分支

  • 建议将个人资料分支设为 private,或将 documents/ 加入 .gitignore


14. 总结

适合谁?

  • ✅ 正在求职、想提高申请质量的开发者

  • ✅ 使用 Claude Code 或其他 AI 编程工具的求职者

  • ✅ 想系统化管理求职流程的人

  • ✅ 不介意命令行和 LaTeX 的技术人员

  • ✅ 想了解 AI 如何辅助求职的人

不适合谁?

  • ❌ 想找"一键自动投递"工具的人

  • ❌ 完全不懂命令行的用户

  • ❌ 不想 fork 和维护一个仓库的人

  • ❌ 只在国内求职网站找工作的用户(需自行适配)

核心价值

维度价值
定制化每个申请都量身定制,不是海投
质量检查PDF 视觉检查 + ATS 文字层检查 + 二审机制
透明度开源,所有代码可审查
本地化数据在你自己的机器上
已验证作者本人用它找到了工作

相关链接


声明:本文基于 ai-job-search v1.0.0(2026-07-22 发布)编写,数据来源于官方 README、GitHub 仓库页面和作者公开的求职数据。这是一个独立开源项目,与 Anthropic 无关。所有使用建议仅供参考,请根据个人情况判断。

作者注:简历和求职信的质量高度依赖你输入的原始资料。花时间写好你的个人资料,是使用这个框架最好的投资。

AI 时代程序员必备技能

Codex、Claude Code、Cursor、Hermes Agent、OpenClaw等工程化实战专栏 ,讲透 AI 如何接管脏活累活

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学心理学的程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值