📍 词元二号站 就业指导 用 Claude Code 搭一个私人求职助手:ai-job-search 从建档、匹配到简历定制的完整拆解

用 Claude Code 搭一个私人求职助手:ai-job-search 从建档、匹配到简历定制的完整拆解

摘要:一篇讲透开源求职框架 ai-job-search 的干货长文。从 ATS 机器筛选原理,到 Claude Code 的技能与子代理机制,再到起草—审阅双代理、PDF 视觉检查与 ATS 复核,手把手带你搭一个跑在命令行里的私人求职助手,告别无效海投、学会精准投递。
字号 100%
行距 2.05
本文由 辛梓煜@词元2号站(www.ciyuanerhao.com)撰写,转载请注明出处。

快速摘要

先给只想要结论的朋友一句话:ai-job-search 不是一个网站、也不是一个 App,而是一套跑在 Claude Code 里的"求职工作流框架"。你把它 Fork 到自己电脑上,填好个人资料,就能用三条命令走完一整套流程——/setup 建档、/scrape 找岗位、/apply 生成简历和求职信。它最狠的地方不是"帮你写",而是"帮你改":一个 AI 负责起草,另一个带着全新上下文的 AI 专门去研究目标公司、给初稿挑刺,然后再改。写完还会真的把 LaTeX 编译成 PDF、逐页"看"一遍排版,甚至模拟招聘系统抽取简历里的文字层做关键词复核。它是 MIT 协议的独立开源项目,和 Claude Code 的开发方并没有从属关系。

这套东西之所以最近在开源社区里被反复讨论、一路冲上 GitHub 趋势榜前列、star 数很快过万,是因为它把一个"人人都痛、但很少有人做对"的事情——精准投递——拆成了可复用、可验证的工程流程。

下面我会从"为什么海投注定失败"讲起,一路拆到它底层依赖的 Claude Code 技能与子代理机制,再手把手带你把它跑起来,最后聊聊我自己折腾下来的几个心得和坑。想看完整拆解,往下翻。


一、ai-job-search 到底是个什么东西

我第一次看到这个项目的名字,脑子里冒出来的第一反应是"又一个 AI 简历生成器吧"。市面上这类东西太多了,套路也大同小异:贴一段岗位描述,吐一段 Markdown,完事。真正上手翻了它的仓库之后我才发现,方向完全不一样。

1.1 它是一套"工作流",不是一个产品

准确地说,ai-job-search 是一套结构化的求职工作流框架,它把 Claude Code 这个命令行里的 AI 助手,改造成了一个"全流程求职参谋"。你不需要打开任何网页,也不用注册任何账号,整个过程都发生在你自己的终端里。

它的使用姿势是这样的:

  • 第一步,把项目 Fork 到你自己的仓库,再 clone 到本地;
  • 第二步,把你的简历、履历、证书这些材料喂给它,让它给你建一份结构化档案;
  • 第三步,剩下的评估岗位、定制简历、写求职信、准备面试,交给 AI 一条龙跑完。

它的核心是三条命令,逻辑非常直白。我用一张流程图把主链路画出来,你一眼就能明白它在干嘛:

flowchart TD
    A["/setup 建立个人档案"] --> B["/scrape 搜索岗位并按匹配度排序"]
    B --> C["/apply 评估匹配 + 生成申请材料"]
    A -.-> A1["产出:结构化档案文件"]
    B -.-> B1["产出:带匹配评分的岗位清单"]
    C -.-> C1["产出:定制简历 + 求职信 PDF"]

看懂这张图,你就抓住了这个框架七成的精髓:建档 → 匹配 → 申请,一条主线跑到底。除了这三条主命令,它还配了几条辅助命令(比如补全技能、缺口分析、注册自定义模板),后面我会一个个讲。

1.2 一个必须先说清楚的前提

有一点我觉得必须放在最前面讲,免得后面产生误会:这是一个社区个人维护的独立开源项目,采用 MIT 开源协议,作者本人在项目说明里写得很直白——它和 Claude Code 背后的官方团队没有从属、赞助或背书关系,提到官方工具只是为了说明"这套流程是搭在哪条工具链上的"。

换句话说,它是一个"民间高手"用官方提供的能力,攒出来的一套自动化玩法。这一点其实挺重要:它意味着你完全可以按自己的需求去魔改它,而不用担心动了谁的"官方规矩"。

1.3 它到底解决了谁的痛

找工作这件事,说起来就四个字——投简历、等面试;做起来能把人熬秃。每天刷招聘平台刷到眼花,看到个差不多的岗位就得重新折腾一版简历和求职信。最让人崩溃的是,你熬了一晚上改出来的材料,投出去经常连个回音都没有,像扔进了黑洞。

ai-job-search 想解决的,正是这个"黑洞"问题。它不追求"帮你多投几家",而是反过来——让你把每一份投递都做扎实。这背后其实藏着一个很反直觉的认知:在今天的招聘环境里,海投几乎是无效劳动。想弄明白为什么,我们得先看看你的简历投出去之后,第一关到底遇到了什么。

辛梓煜@词元二号站在研究这个项目的时候,最感兴趣的也是这一点:它不是在"提高投递数量",而是在"提高每一次投递的命中率"。这是一个思路上的分水岭。


二、为什么"海投"没用:先搞懂招聘背后的机器筛选

要理解这个框架的价值,你得先接受一个可能有点扎心的事实:你的简历,很可能第一关就没被人看到,是被机器刷掉的。

2.1 挡在你和 HR 之间的那道"闸门"

现代招聘流程里有一个几乎无处不在的角色,叫 ATS(Applicant Tracking System,申请人跟踪系统)。你可以把它理解成企业招聘的"前台机器人"——所有投进来的简历,先经过它这一道自动化筛选,达标的才会被推到 HR 面前。

这道闸门有多普遍、又有多严?公开的行业数据给出的画面相当残酷:绝大多数中大型企业都在用 ATS 来处理简历,而在这些企业里,很大一部分简历会在机器筛选环节就被直接淘汰,HR 连看都不会看一眼。想象一下,一个热门岗位放出去,几天内可能收到成百上千份简历,靠人一份份读根本不现实,机器初筛就成了刚需。

这就解释了那个折磨无数人的场景:你背景明明对口,投出去却石沉大海——问题很可能不是你不够好,而是你的简历没能通过那道闸门。

2.2 ATS 到底怎么"读"你的简历

搞清楚 ATS 的工作方式,你才知道该怎么对付它。它的处理链条大致是这样几步:

步骤

机器在干什么

对你的影响

解析

把 PDF / Word 拆成结构化字段(联系方式、技能、经历、学历)

排版太花,机器读乱,信息直接丢

关键词匹配

拿岗位描述里的关键词去简历里比对

关键词没出现,等于你没这项能力

相关性打分

按关键词命中率、经历新近程度等打分

分低的排后面,基本没机会

硬性过滤

按年限、学历、证书等硬条件筛

不达标的直接出局

排名

生成候选人排名,把高分的推给 HR

只有排在前面的才被人看到

这里有个特别关键、也特别容易被忽视的点:**即使两个人实际经验一模一样,只要关键词的写法不同,ATS 给出的分数就可能天差地别。**举个例子,岗位要"项目管理",你写成"项目协调",稍微传统一点的系统就可能识别不到;虽然更聪明的系统会尝试理解近义词,但你没必要把命运押在"它今天心情好不好"上。

再往深一层,稍微高级点的 ATS 还支持布尔搜索——招聘方可以用"与、或、非"这类逻辑运算符,拼出很精细的检索条件,比如"必须同时出现 A 和 B、但不能出现 C"。这意味着在一些筛选严格的岗位上,你简历里关键词的组合是否齐全,会直接决定你排在候选池的哪个位置。同时,很多系统还维护着一个庞大的简历数据库,你这次没被选中的简历,可能会被存进去,等下一个岗位空出来时再被检索到。

这里有一个特别容易被误解的点,我得专门说一下:优化关键词,绝不等于把岗位描述里的词一股脑抄进简历。机械堆砌关键词,一来在人看来非常刺眼、显得很假,二来一些成熟系统还会通过和海量真实简历的写法比对,识别出这种"注水"痕迹。正确的做法,是把这些关键词自然地融入你真实的经历和成果描述里——这本身就是个技术活,也正是 ai-job-search 后面用 AI 帮你干的核心事情之一:它不是替你"塞词",而是帮你用招聘方看得懂的语言,把你真做过的事重新讲一遍。

2.3 花哨简历是"排版党"的坟墓

还有一个坑,专坑那些花了大价钱做"设计感简历"的人。ATS 在解析阶段最怕两样东西:多栏复杂布局图形化元素。很多好看的双栏模板、带图标进度条的"技能雷达图",在机器眼里就是一团乱码,甚至会把你的姓名、电话都解析丢。

所以对求职者友好的做法其实很朴素:单栏、清晰层次、纯文本能被正常抽取。这一点,恰恰是 ai-job-search 在后面"PDF 复核"环节死磕的地方——它不光要生成简历,还要保证生成出来的东西在机器眼里是干净、可读的

2.4 结论:解药是"精投",不是"多投"

把上面这些串起来,逻辑就通了:

  • 海投失败,是因为一份"通用简历"对任何一个具体岗位的关键词覆盖都不够;
  • 想过闸门,你得针对每个岗位的描述,把简历里真实存在、但没写清楚的能力,用对方看得懂的词重新组织一遍;
  • 但"针对每个岗位重写一遍简历"这件事,靠人力根本扛不住,一天投三家就精疲力竭了。

这就是 ai-job-search 切进来的口子:用自动化把"精投"的成本压到你能承受的范围。它不是让你偷懒少投,而是让"认真投"这件事变得可持续。想让 AI 干好这件事,它得先有一套足够聪明的底层机制。下一节我们就掀开引擎盖,看看它是靠什么跑起来的。


三、它凭什么跑得起来:Claude Code 的技能与子代理机制

很多人看到"基于 Claude Code 构建"就直接划过去了,觉得那是开发者的事。但如果你想真正用好这个框架、甚至改造它,这一节的原理值得花几分钟搞懂。我尽量用大白话讲。

3.1 先认识一下 Claude Code

Claude Code 是一个跑在命令行里的 AI 编程助手。你可以把它想成一个住在你终端里的"数字助理",它能读你的文件、写文件、执行命令,还能按照你事先写好的规矩办事。它本来是给程序员写代码用的,但因为它足够通用、又能被高度定制,慢慢就被人拿来干各种"结构化的自动化活儿"——求职,就是其中一个很妙的用法。

它有三个可定制的"积木"值得认识,ai-job-search 整套东西就是拿这三块积木搭出来的。

3.2 三块积木:斜杠命令、技能、子代理

**第一块:斜杠命令(Slash Command)。**就是你在对话框里敲的那种 /setup/apply。它本质上是一段被起好名字、存起来的"标准指令"。你不用每次都把一长段要求复述一遍,敲一个斜杠命令,AI 就知道该照着哪套流程走。这正是它把"重复劳动"固化下来的方式。

**第二块:技能(Skill)。**技能比单条命令更"重"一点。它通常是一个文件夹,里面有一个叫 SKILL.md 的说明文件,外加各种支撑材料(模板、脚本、参考文档)。一个很聪明的设计是:平时只有技能的"名字和简介"被加载进上下文,AI 知道"有这么个本事可以用";只有真正用到的时候,技能的完整内容才会被读进来。这样既省资源,又不会让 AI 的"脑容量"被一堆用不上的说明挤爆。

第三块:子代理(Subagent)。这块是理解 ai-job-search 精髓的钥匙。子代理相当于主 AI 临时"外包"出去的一个专员——它在一个全新的、干净的上下文里独立干活,干完只把最终结论回传给主线,中间那一堆过程和杂念,不会污染主对话。

三者的区别,我做了张表帮你对齐概念:

积木

本质

适合干什么

关键特性

斜杠命令

存起来的标准指令

高频重复的单一动作

一敲就触发,可编排流程

技能

带支撑文件的完整工作流

需要模板/脚本/规则的复杂流程

按需加载,省上下文

子代理

独立上下文的临时专员

需要隔离、需要"换个脑子"重新看

上下文隔离,只回传结论

3.3 为什么"上下文隔离"这么关键

你可能会问:既然主 AI 已经写了简历,为什么还要专门叫一个子代理来审?让同一个 AI 自己检查一遍不行吗?

还真不太行。这里有个很反直觉、但一线用过 AI 的人都深有体会的现象:一个 AI 审自己刚写的东西,很容易"自我感觉良好"。因为它写的时候的所有思路、所有自我说服,都还留在上下文里,它会不自觉地维护自己的判断,挑不出真正的毛病。

而子代理不一样。它是在一个干净的上下文里"空降"进来的,它没看过起草者的心路历程,只看到最终的稿子。它会像一个第三方 reviewer 一样,冷静地拿岗位要求去对照、去研究目标公司、去揪那些"读起来通顺但其实很空"的套话。这种"换个脑子重新看"的机制,正是靠子代理的上下文隔离实现的。

3.4 为什么"求职"这件事,特别适合这套机制

你可能会好奇:这套技能加子代理的玩法,本来是给写代码用的,怎么套到求职上反而这么顺?

我琢磨下来,是因为求职这件事的"形状",天生契合这三块积木。业内有一条被反复验证的经验法则:**判断该用哪块积木,看的是活儿的"形状",不是活儿的大小。**一段反复要用的固定指令,就该做成命令;一套需要模板、脚本、规则手册撑着的多步流程,就该做成技能;一个需要在干净上下文里、和主线并行或隔离跑的活儿,才值得动用子代理。

对照一下求职:投每个岗位都要走"评估—起草—审阅—排版"这套固定动作,天然适合固化成命令;简历模板、求职信模板、评分规则这些需要成套材料支撑,天然适合封装成技能;而"跳出起草者视角、独立审稿"这个需求,又刚好命中子代理"上下文隔离"的看家本领。三块积木各就各位,谁也没被硬塞去干不擅长的活儿——这种"形状上的严丝合缝",是它跑得顺、也跑得稳的深层原因。

理解了这三块积木,你再回头看 ai-job-search,就会发现它其实是一份组织得相当讲究的"工作流剧本":用命令做入口,用技能装规则和模板,用子代理做那个最关键的"审稿人"。接下来,我们就顺着它的主流程,一段段看它是怎么把你从一份原始履历,变成一份份精准投递的申请材料的。


四、智能建档:/setup 怎么把你"数字化"

一切的起点是建档。这一步做得好不好,直接决定了后面所有产出的质量。我自己踩过的第一个坑就是这里——一开始图省事,档案填得敷衍,结果生成的简历千篇一律,毫无针对性。后来老老实实把档案填厚,输出质量立刻上了一个台阶。

4.1 三种建档方式,按你的家底选

运行 /setup,框架会引导你建立个人档案,它很贴心地准备了三条路,会自动探测你手上有什么、再问你走哪条:

4.1.1 文档导入模式(推荐)

把你所有和职业相关的材料——简历 PDF、领英资料导出文件、学历证书、推荐信、过往的申请记录——统统丢进 documents/ 文件夹,框架会自己去读、去交叉比对,然后整理成一份结构化的能力档案。

我个人最推荐这一种。因为你手上的材料越全,它就越能把你身上那些"你自己都快忘了"的经历挖出来。而且这个模式是可以反复跑的(幂等设计),你后面再往文件夹里加材料,重跑一遍就行,不会把之前的搞乱。

4.1.2 CV 粘贴模式

如果你只有一份现成的简历,直接把文本贴进对话,或者用 @ 提一下文件,框架会自动解析,然后针对缺失的信息追问你几个问题补齐。适合手上材料不多、想快速起步的人。

4.1.3 引导式访谈模式

这一种最像"面对面聊"。框架会像面试官一样,一个板块一个板块地问你问题,你逐条回答,它帮你把档案搭起来。适合那种"简历早就过时了、干脆重新捋一遍"的场景。

三条路殊途同归,最后都会产出一套完整的档案文件。

4.2 建档到底生成了什么

这里我觉得有必要把它内部的档案结构给你看一眼,因为这直接体现了它对"求职"这件事的理解深度。它不是简单存一份简历文本,而是把你拆成了好几个维度的档案文件:

候选人档案      —— 你的教育、经历、技能(简历的结构化版本)
行为画像        —— 你的性格 / 行为倾向自评
写作风格        —— 语气、结构、该做和不该做的表达
岗位评估框架    —— 给"人岗匹配度"打分的标准
简历模板规则    —— 不同岗位类型的简历结构与裁剪规则
求职信模板      —— 求职信的结构模板
面试准备库      —— 你真实经历里的 STAR 案例 + 面试框架

看到"行为画像""写作风格"这些,你大概能体会到作者的用心:它想让 AI 写出来的东西像你、而不是像 AI。它甚至专门存了一份"写作风格"档案,来约束语气和用词——这也是为什么它产出的求职信读起来不那么"机器味"。

顺带一提,框架整体的文件组织长这样,你 Fork 下来大致会看到这么个结构:

ai-job-search/
├── CLAUDE.md              # 主档案 + 工作流规则
├── .claude/
│   ├── commands/          # 各条命令的定义(apply / setup / expand ...)
│   ├── skills/            # 核心技能(申请助手、岗位搜索、缺口分析)
│   └── settings.json      # 权限配置(限定在特定命令范围内)
├── cv/                    # 简历 LaTeX 模板
├── cover_letters/         # 求职信 LaTeX 类文件 + 字体
├── templates/             # 通过命令注册的自定义模板
├── documents/             # 你的原始职业材料(建档 / 补全用)
├── job_search_tracker.csv # 投递追踪表
└── SETUP.md               # 详细安装说明

4.3 /expand:把你"没写出来"的本事挖出来

建完档,还有一条我特别喜欢的辅助命令:/expand

它会去扫描你在档案里已经填过的公开信息源——比如你的 GitHub 仓库、个人作品集网站、Kaggle 主页、学术主页,甚至去查你写过的那些课程、证书的教学大纲,然后把这些地方体现出来、但你简历里没明说的能力,补进你的档案里,还会给每一项打上"来源标签",让你知道这条是从哪儿挖出来的。

这一步的价值在于,很多人的真实能力是"沉默"的——你做过的开源项目、打过的比赛,本身就是能力证明,但你从没在简历里把它翻译成"技能词"。/expand 干的就是这个翻译活儿。建完档、紧接着跑一次 /expand,往往能让你的档案立刻丰满一圈。

4.4 建档时的一个真实体感

我自己第一次走文档导入模式的时候,有个体感想分享:它读完材料后,不是直接生成档案就完事,而是会像个认真的顾问一样反过来追问你——某段经历的时间对不上、某个项目缺了产出结果、某项技能没写清楚用在哪。这个"追问"环节,很多人会嫌烦,但恰恰是它最值钱的地方。

因为它逼着你把那些含糊的、你自己都没想清楚的经历,说明白。我记得有一段我随手写的"负责过一个内部工具",被它连追了两问:这个工具解决了什么问题、谁在用、有没有可衡量的效果。等我把这几个问题答完,那段原本干瘪的经历,一下子就立起来了。所以我的建议是:**别把建档当成一次性的填表,把它当成一次和"数字版自己"的深聊。**你在这一步越舍得花时间,后面每一份简历就越省心。这也是为什么我一直强调,档案深度几乎决定了整个框架的产出上限。

档案立好了,下一步就是去外面的世界找机会。


五、岗位搜索与匹配:/scrape 不只是关键词那么简单

5.1 它怎么找、怎么排

运行 /scrape,框架会去多个招聘门户抓取职位,把重复的去掉,然后按匹配度排序呈现给你。你看到的不是一堆杂乱无章的岗位,而是一份"从最适合你到不太适合你"的清单。看中哪个,直接拿它去跑 /apply 就行。

这里的匹配,不是那种简单粗暴的关键词碰运气。它背后有一套结构化的评估体系,会从技能、经验、文化契合、地理位置、职业发展路径几个维度综合打分。也就是说,它不光看"你会不会",还看"你合不合适、去了能不能长久"。

别小看"去重"和"排序"这两个动作,它们其实治的是求职里一个隐形的病——信息过载。你自己刷招聘平台的时候,同一个岗位可能被不同渠道重复推给你好几遍,你还得一个个点进去看、判断值不值得投,光是这个筛选过程就足够消耗心力。跨平台抓取之后先去重,等于帮你把这些重复噪音清掉;再按匹配度从高到低排好,等于替你把"最该先看的"顶到最前面。你打开清单,看到的是一份已经过初步判断的"优先级列表",而不是一片让人无从下手的岗位汪洋。这种"把选择的认知负担降下来"的设计,用过就回不去了。

顺带提一句体验上的小细节:它会记住你已经看过的岗位,避免下次搜索时把老面孔又端上来,让你每次刷到的都尽量是新鲜的机会。这些琐碎但贴心的处理,累积起来就是"用着顺手"和"用着别扭"的区别。

5.2 一个国内用户必须知道的现实问题

需要坦诚说明的是:这个项目的作者身处丹麦,所以它内置的门户搜索工具是围绕丹麦本地招聘平台做的,另外还带了一个"全国家通用"的、基于公开职位接口的搜索工具。

对国内用户来说,直接照搬这几个门户显然不现实。但好在,这个框架从设计上就是"门户可替换"的。作者提供了一条 /add-portal 命令,能按同样的结构,为你本地能正常访问的招聘网站生成一套对应的搜索工具,注册前还会先跑一次真实查询做验证。

所以正确的姿势是:把它的"门户搜索"部分当成一个模板,换成你日常在用的、能合规访问的本地招聘站。它真正值钱的部分——建档、匹配评估、起草—审阅的申请流水线——是和国家、语言无关的,这部分才是你要留下来的核心。使用任何平台的自动化抓取时,也记得控制频率、遵守对应平台的使用条款,别给自己惹麻烦。

5.3 显性目标 vs 潜在机会

/scrape 还支持两种找工作的模式,我觉得第二种尤其有意思:

  • 显性目标:你很清楚自己要什么岗位、什么行业,系统帮你在这个范围内精挑细选、排优先级。
  • 潜在机会发现:这是我觉得最有想象力的地方。它会分析你的完整经历(不只是职位头衔,而是你实际做过的事),去发现一些你自己都没想到的职业方向——比如你的某项可迁移技能,恰好能对上一个你从没考虑过的行业;又或者某个把你的领域知识和新技术结合起来的新兴岗位。

想吃到第二种模式的红利,秘诀还是回到建档那一步:/setup 的时候多花点时间,不光写你干过什么,还写写什么让你有干劲、什么让你消耗、你想多做点什么。这些看似"软"的信息,会直接影响它给你推什么。

选定了目标岗位,好戏才真正开场。


六、核心引擎:/apply 的"起草—审阅"双代理工作流

如果说前面都是热身,那 /apply 就是这个框架真正的心脏。它跑起来是一套完整的**"起草者—审阅者"双代理流水线**,中间还强制插入了 PDF 编译这一环。我把它的七步拆开讲,这是全文最值得慢慢看的部分。

6.1 七步流水线全景

先上一张流程图,建立整体印象:

flowchart TD
    S1["1. 解析岗位(URL 或粘贴文本)"] --> S2["2. 评估匹配度(技能/经验/文化/地点/发展)"]
    S2 --> S3["3. 起草:用 LaTeX 写定制简历 + 求职信"]
    S3 --> S4["4. 派出审阅子代理:研究公司 + 挑刺"]
    S4 --> S5["5. 起草者根据反馈修改"]
    S5 --> S6["6. 编译 + 逐页检查两份 PDF"]
    S6 --> S7["7. 附核对清单,交付最终稿"]
    S6 -.->|排版不达标| S6

逐步说一下每一步在干嘛:

  1. 解析岗位:你可以直接给它一个岗位链接;如果那个招聘站拦截自动访问、抓不到,你也可以把岗位描述整段粘贴进去,效果一样。
  2. 评估匹配度:拿岗位要求去和你的档案逐维度对照,先把"合不合适"这个账算清楚。
  3. 起草:起草引擎登场,根据这个岗位的描述,量身写一版简历和求职信,用的是 LaTeX(后面第七章会解释为啥用它)。
  4. 派出审阅子代理:这是灵魂所在。系统会开一个全新上下文的子代理,它专门去研究这家目标公司,再回过头对初稿挑毛病——哪些关键词漏了、哪些表述太弱、哪些是放之四海而皆准的空话。
  5. 修改:起草引擎收到审阅意见,据此把稿子改扎实。
  6. 编译并逐页检查:把 LaTeX 真的编译成 PDF,然后"读"渲染出来的页面,不合格就回炉重排(这一步可能循环好几次)。
  7. 交付:附上一份核对清单,把最终稿给你。

6.2 为什么"两个 AI"比"一个 AI"强

前面第三章埋过伏笔,这里正式收线。这套双代理机制,直击 AI 生成内容一个最常见的毛病——自嗨

起草者负责写,它满脑子都是"我这么写多妙啊";而审阅者是另一个 AI,带着全新的上下文空降,它没被起草者的思路"洗脑",只冷冰冰地看结果。它会去查这家公司到底是做什么的、最近在关注什么,然后拿岗位关键词和公司背景,去对照初稿里那些华而不实的地方。这样一来,"漏掉的关键词、站不住的表述、通用得像模板的句子",就很容易被逮出来。

用工程的话说,这叫上下文隔离带来的独立视角。这也是我认为它区别于"一键生成简历"类工具的最大分水岭——它不是生成一次就完事,而是内建了一道"批判"的关卡。

6.3 一个魔鬼细节:相关性加权裁剪

简历超过篇幅怎么办?这是所有简历工具都要面对的问题,而大多数工具的处理方式很笨——从"最老"的经历开始机械地砍。

ai-job-search 的做法明显更聪明。当简历溢出两页时,它不是按时间顺序砍,而是给每一条候选内容打一个综合分,考量三个因素:

  • 这条内容和目标岗位的相关性有多高;
  • 这条内容在整份简历里的独特性(是不是别处已经说过了);
  • 求职信是否依赖这条内容。

然后,它砍掉综合分最低的那一条。结果就是:一条命中了岗位关键词的"老经历",会活得比一条没命中关键词的"新经历"更久。这个设计非常符合"精投"的哲学——留下的每一行,都是为这个岗位服务的。

6.4 一条不能碰的红线:绝不编造

最后必须强调它的一条底线:简历和求职信里的所有陈述,都会拿你的真实档案去核对,系统绝不会凭空捏造你没有的技能或经历。

这一点在 AI 求职工具里尤其难得。很多人担心"AI 帮我写简历会不会吹过头,面试一问就穿帮"。这个框架从机制上就堵住了这条路:它做的是"把你真实拥有的东西,用对方看得懂的方式重新组织和突出",而不是"帮你编一个更好的人设"。这既是对你负责,也是对招聘方的基本诚信。

6.5 藏在流程背后的工程取舍

多说一句,这套流程在效率上其实是有精打细算的,这也是我作为一个爱研究细节的人特别欣赏它的地方。

比如那个审阅子代理,它拿到初稿的方式是"随派发一起带过去",而不是让它再重新读一遍稿子——这一下就省掉了一大笔重复读取的开销。再比如那份最终的核对清单,是在整个流程走到最后只跑一次,而不是起草者和审阅者各跑一遍、白白重复。

但作者也很坦诚地讲了一个取舍:后来加进去的"编译并逐页检查 PDF"这一步,会把前面省下来的开销吃掉一部分。它相当于用一点额外的处理成本,去换一个实打实的结果——大幅减少那种"排版崩了的 PDF"最终落到你手里的概率。在我看来这笔账算得很值:谁也不想辛苦生成的简历,最后败在一个孤儿标题或者字体不一致上。这种"知道自己在拿什么换什么"的清醒,正是它作为一套成熟工作流的底气。

材料写完了,还有一个很多人根本不会想到的环节,恰恰是它口碑爆棚的原因之一。


七、被低估的细节:PDF 编译 + 视觉检查 + ATS 复核

7.1 先解释一下:为什么用 LaTeX

简历用的是 LaTeX。对没接触过的朋友解释一句:LaTeX 是一种"用代码来排版文档"的工具,特别擅长生成排版精致、格式稳定的 PDF,学术圈用得很多。好处是排版一致、专业感强;坏处是——它有个臭名昭著的问题:代码看起来没毛病,编译成 PDF 却经常翻车

具体翻什么车?项目作者列得很到位:职位标题被挤到了下一页变成"孤儿标题"、求职信莫名其妙多溢出到第二页、某些条目的字体悄悄回退成了正文字体导致前后不一致。这些问题在 .tex 源码里完全看不出来,只有真正渲染成 PDF 才露馅。

7.2 它请了一个"强迫症编辑"

这就引出了这个框架最让我拍案的功能——PDF 视觉检查闭环

它不是编译完就交差。它会把生成的 PDF 真的"看"一遍(逐页读渲染效果),然后不断迭代调整 LaTeX,直到满足一组硬标准:简历恰好两页、没有孤儿标题;求职信恰好一页、签名可见、字体前后一致。为了实现这些,它会用一些 LaTeX 的排版技巧(比如控制分页、微调页面容量的命令)做精准修复,而且这个检查每次投递都会自动跑

这个功能解决的是一个特别真实的痛点:很多人辛辛苦苦调好的简历,投出去才发现在别人电脑上排版乱了、或者多出了半页。有了这个"强迫症编辑"守门,你投出去的材料,体面程度是有保证的。

两个技术细节顺便说一下:简历这边用的编译引擎能更稳地处理现代字体扩展,求职信那边因为要用自定义字体,用的是另一套支持字体嵌入的引擎。你不用记这些,知道它对"字体和排版稳定性"较真到了这个程度就行。

7.2.1 担心 LaTeX 门槛太高?其实你不用碰它

我猜到有人看到 LaTeX 就想劝退了——毕竟它确实有学习成本。但这里要给你吃颗定心丸:**整个过程里,写 LaTeX、调 LaTeX、修 LaTeX 的活儿,全是 AI 在干,你基本不用碰源码。**你要做的,只是把环境装好、把档案填好,剩下的排版细节它会自己死磕到底。

如果你实在看不惯它自带的模板样式,框架也留了口子:有一条命令能让你把自己的简历或求职信模板注册进去,替换掉默认的那套。注册的时候,它会问清楚你这套模板用哪个编译引擎、要哪些字体、有什么样式规矩、页数上限是多少,然后强制先跑一次测试编译,确认能正常出 PDF,才把它接进主流程。而且这些自定义模板是以占位符形式存储的,不带你的个人数据,所以可以安全地提交和分享。对追求"这份简历必须长成我想要的样子"的朋友来说,这个自由度相当到位。

7.3 站在机器视角再检查一遍:ATS 复核

如果说 PDF 视觉检查是站在"人"的视角看简历好不好看,那还有一步是站在"机器"的视角看简历好不好读——这正好呼应了第二章讲的 ATS 原理。

它会用工具把 PDF 的文字层抽取出来,模拟 ATS 解析器"看到"的样子来验证:联系方式是不是以纯文本形式老老实实存在、有没有乱码、阅读顺序正不正常。然后,它拿岗位描述里的关键词,去给这份抽取结果做覆盖度打分

最妙的是它对待关键词的态度:**只有你档案里真实支撑得起的关键词,才会被加进去;真实存在的缺口,就让它明明白白地留着,绝不硬塞。**这又一次呼应了"绝不编造"的底线——它优化的是"让机器正确地读到你真实的样子",而不是"骗过机器"。

把这三道检查串起来看,你会发现它的产出逻辑很完整:**先保证内容真实且对口(起草—审阅),再保证人看着体面(PDF 视觉检查),最后保证机器读得懂(ATS 复核)。**一份简历要过的三关,它一关不落。


八、进阶玩法:技能缺口分析与薪酬行情参考

主流程之外,还有两个进阶功能,是给"想更进一步"的人准备的。

8.1 /upskill:不光告诉你差啥,还告诉你咋补

假设你看中了一个特别心仪、但自己好像还差点火候的岗位,别急着放弃。/upskill 这条命令,会去分析你的档案和目标岗位之间的差距(可以针对你追踪的一批岗位,也可以对着单个岗位跑),然后产出两样东西:

  • 一张按优先级排布的技能缺口热力图,让你一眼看清"哪块最欠、最该先补";
  • 一份配套的学习计划,里面带着联网搜来的学习资源,还给每一项配了时间估算。

说白了,它相当于给你随身配了个职业规划师——不光帮你诊断差距,还给你开药方、排学习日程。在两次投递之间的空档,拿它来规划一下自我提升,是个很实在的用法。

我想特别强调一下这个功能的长期价值,因为它很容易被当成一个可有可无的附赠品略过。求职这件事,绝大多数工具都只盯着"眼前这一次投递",帮你把这一份材料弄好就算完;但 /upskill 关心的是"下一次、再下一次"。它把"你想去的地方"和"你现在的位置"之间的距离,量化成了一张看得见的图,还把"怎么走过去"拆成了可执行的步骤。

这对处在瓶颈期的人尤其有用。很多人不是不想进步,而是不知道该补哪一块、按什么顺序补,一腔干劲全耗在了原地打转上。有了这张按优先级排好的热力图,你至少知道该先啃哪块硬骨头、大概要花多久。换个角度说,它把求职从一个"投了就等结果"的被动动作,变成了一个"持续迭代自己"的主动过程。这种从"求职"到"成长"的视角转换,我觉得是这个框架里最容易被低估、却最有嚼头的一层设计。

8.2 薪酬行情:投递前先摸清底

框架里还内置了一个薪酬参考工具。它的设计思路是"自带数据"——你可以把自己搜集到的薪酬数据(比如行业公开统计、各类薪酬调研数据等)导入进来,投递前查一查市场行情,谈薪的时候心里就有底,不至于面试到最后一环两眼一抹黑。如果你手头没有这类数据,这一步会被自动跳过,不影响主流程。

这个功能虽然不起眼,但体现了一个成熟求职者的思维:信息差就是议价权。提前把行情摸清楚,是对自己劳动价值的基本尊重。


九、手把手:从零把它跑起来

讲了这么多原理,你肯定想上手试试。这一节给你一份最小可用的上手路径。需要提醒的是:它对运行环境有一定要求,动手前先把家伙什备齐。

9.1 先备齐环境

依赖

用途

备注

Claude Code(命令行版)

整个框架的运行底座

需要对应的账号 / 密钥

Python 3.10+

跑薪酬参考工具

版本别太低

Bun

跑门户搜索的命令行工具

一个 JS 运行时

LaTeX 发行版

把简历 / 求职信编译成 PDF

需要包含对应的编译引擎

LaTeX 发行版可以选择常见的几种大型套件,装的时候注意把简历和求职信各自需要的编译引擎、字体宏包都装上,否则编译会报错。这一步是新手最容易卡住的地方,建议耐心一点。

9.2 获取代码

推荐用官方命令行工具直接 Fork 并克隆:

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

如果你没装 gh 这个工具,直接用 git 克隆也行(不过更推荐先在网页上 Fork 到自己名下,再克隆你的 Fork):

git clone https://github.com/MadsLorentzen/ai-job-search.git
cd ai-job-search

9.3 安装门户搜索工具的依赖

项目里带了几个门户搜索的命令行工具,需要分别装一下依赖。大致是进到每个工具的目录里执行安装,再退回项目根目录。这一步针对的是作者内置的那几个门户;如果你打算换成本地招聘站,可以先跳过,等你用 /add-portal 生成自己的门户工具后再处理。

9.4 启动并建档

在项目根目录启动 Claude Code:

claude

进去之后,敲第一条命令开始建档:

/setup

按前面第四章讲的,优先走"文档导入模式",把材料丢进 documents/ 文件夹让它自动提取。

9.5 搜索与申请

建档完成后,搜索匹配岗位:

/scrape

看中某个岗位,直接申请(把链接换成你要投的那个):

/apply 岗位链接

如果链接抓不到,就把岗位描述整段粘贴进来:

/apply <这里粘贴完整的岗位描述>

9.6 新手最容易卡住的几个地方

按我自己和身边人踩坑的经验,上手阶段的绊脚石高度集中在环境这一块,提前给你打个预防针:

  • **LaTeX 装不全导致编译报错。**这是头号拦路虎。简历和求职信各自需要特定的编译引擎和字体宏包,装的时候图快漏掉一个,一到编译环节就红字一片。建议装大型完整套件,别装精简版,省得后面缺这缺那。
  • **求职信字体找不到。**求职信模板依赖特定的字体文件,如果对应的字体目录是空的,编译就会失败。确认一下那个放字体的目录确实存在、并且里面有需要的字体文件。
  • **门户工具依赖没装好。**内置的门户搜索工具需要先装依赖才能跑;如果你打算换成本地招聘站,这几个可以先不管,等生成自己的门户工具后再说。
  • **岗位链接抓不到。**有些招聘站会拦截自动访问,这时候别死磕链接,直接把岗位描述整段粘贴进去,效果是一样的。

一句话总结:**内容层面它很省心,真正需要你耐心的是环境搭建这一关。**把这关过了,后面基本就是行云流水。如果卡住了,优先照着报错信息去查是不是哪个依赖或字体没到位,八成问题都出在这儿。

9.7 命令速查

最后给你一张常用命令速查表,收藏备用:

命令

作用

/setup

建立 / 更新个人档案(三种方式)

/scrape

搜索岗位、去重、按匹配度排序

/apply

评估匹配 + 起草—审阅 + 编译 PDF + 交付

/expand

从公开信息源补全隐性技能

/upskill

技能缺口热力图 + 学习计划

/add-template

注册你自己的简历 / 求职信模板

/add-portal

为本地招聘站生成搜索工具

/reset

清空档案 / 材料,重新开始


十、我自己的使用心得与几个提醒

工具再好,也得用对。这一节是辛梓煜@词元二号站折腾下来,觉得真正影响体验的几点,掏心窝子说给你听。

10.1 档案深度,几乎决定一切

如果你只从这篇文章里带走一句话,我希望是这句:输出质量的头号变量,是你档案的详细程度。

档案填得薄,产出的申请材料就通用、干瘪;档案填得厚,它才能真正做到"千岗千面"。具体怎么填厚,我的经验是:

  • **写经历别只写职位名。**别只写"做过产品经理",要写你在这个位置上具体做了什么项目、用了什么工具、扛了什么责任、拿到了什么可量化的结果。你给的料越多,它帮你"重新包装"到不同岗位时就越精准。
  • **写技能要带场景。**别干巴巴列"Python、项目管理",要写你在哪、怎么用的它。"用 Python 和相关库搭了一套客户流失预测的数据管线",比孤零零一个"Python"能提供的信息量大得多。

10.2 AI 是放大器,不是替身

必须泼一盆冷静的水:AI 是工具,不是替代者。

ai-job-search 能帮你把最繁琐、最耗神的活儿自动化,但你最终能不能拿到那个 offer,靠的还是你的真实实力和面试准备。它替你省下来的时间和精力,最好花在两件事上——继续打磨自己、认真准备面试,而不是拿去投更多家。

而且,正因为它内建了"绝不编造"的底线,它产出的每一份材料都是你真实能力的映射。这意味着面试时你不会心虚,因为纸面上写的都是你真做过的。这种"表里如一",才是它最该被珍惜的地方。

10.3 隐私和几个现实提醒

  • **注意个人信息。**你的档案里会塞满真实的个人信息,别不小心把这些内容提交进一个公开的 Fork 里。作者在这方面也做了考虑——比如自定义模板是以占位符形式存储的,方便安全地分享;权限配置也做了范围限定。你自己操作时,多留一个心眼。
  • **合规使用平台。**前面反复强调过:门户搜索部分请换成你本地能合规访问的招聘站,自动化访问任何平台都要控制频率、遵守其使用条款。
  • **别过度依赖单一工具。**它能极大提效,但求职是个系统工程,人脉、内推、行业信息、面试临场,哪一样都不是一个框架能全包的。把它当成你工具箱里很趁手的一件,而不是唯一那件。

10.4 它适合谁,又不适合谁

聊了这么多优点,也得实事求是地说清楚它的适用边界,免得你抱着错误的期待上手。

在我看来,它特别适合这几类人:愿意花时间把档案填厚、追求投递质量而非数量的人;对命令行不排斥、动手能力还行的人;手上材料比较丰富(有像样的简历、作品集、开源项目)、需要针对不同岗位反复定制的人。这几类人用起来,会有种"如虎添翼"的感觉。

反过来,它可能不太适合这几种情况:完全不想碰任何技术环境、看到命令行就头大的纯小白(虽然照着教程能跑通,但中途卡壳时需要一点排查能力);材料极度贫乏、几乎没什么经历可写的人(再好的工具也变不出无中生有的能力);以及那些指望"一键投一百家、躺着等面试"的人——这个框架从骨子里就是反海投的,你会发现它和你的诉求南辕北辙。

10.5 几个我被问得最多的问题

顺手把大家常问的几个问题集中答一下:

  • 它会不会把我的简历写得很假? 不会。它有"绝不编造"的硬底线,所有陈述都拿你真实档案核对,它做的是重新组织和突出,不是无中生有。
  • 我不会 LaTeX 能用吗? 能。排版全程 AI 代劳,你不用写一行 LaTeX。
  • 国内能用吗? 核心流程(建档、匹配、起草—审阅)和国家无关,可以用;门户搜索部分建议换成你本地能合规访问的招聘站。
  • 它能保证我拿到 offer 吗? 不能,也没有任何工具能保证这个。它能保证的是——让你每一次投递都做得更扎实、更对口,把你真实的样子清楚地呈现出去。剩下的,靠你自己。

十一、写在最后

找工作这件事,耗时、耗力,还特别容易让人在一次次石沉大海里怀疑自己。很多人的迷茫,其实不是因为不够努力,而是因为把力气用错了地方——在"海投"这条注定低效的路上,反复消耗。

ai-job-search 给出的思路,我觉得特别值得琢磨:它没有让你"投得更多",而是用一整套工程化的流程,让你"每一份都投得更值"。从建档、匹配,到起草—审阅双代理、PDF 视觉检查、ATS 复核,它把"精投"这件原本靠人力扛不住的事,拆成了可复用、可验证的自动化环节。

更难得的是它对"真实"的坚持——绝不编造、只优化不作假。这让它不只是一个效率工具,某种程度上也是一种更健康的求职观:你要做的不是把自己包装成别人想要的样子,而是让真实的你,被对的机会正确地看见。

如果你正被"投出去没回音"折磨得心力交瘁,我的建议是:先别急着再投下一家,停下来,把这套"精投"的思路好好想一遍。有时候求职卡壳,缺的不是再多投几份的力气,而是换一个更聪明的打法。哪怕你不打算真的去搭这个框架,光是把它背后那套"建档—匹配—起草—审阅—复核"的逻辑搬进自己的求职习惯里,也够你少走很多弯路了。

至于工具本身,它还在快速迭代,star 数、功能细节都可能随时变化,具体以项目仓库最新说明为准。真正的主角,永远是屏幕前那个愿意把自己打磨好的你。


个人学习实践总结声明

本文为辛梓煜个人学习与实践过程中的整理总结,基于公开开源项目的资料与个人体验重新梳理创作,仅供学习交流参考,不构成任何投递或职业决策建议。文中涉及的工具功能、数据与结论均可能随项目迭代而变化,请以官方仓库最新说明为准。

转载请注明出处:辛梓煜@词元二号站(www.ciyuanerhao.com)。

 

✏️ 发表评论

请先登录后发表评论

前往登录
📊 站点统计
今日发布4 篇
文章总数106 篇
昨日发布3 篇
本月发布14 篇
建站时间37 天
🔍 搜索
📅 日历
« 2026 » « 08 »
     12
3456789
10111213141516
17181920212223
24252627282930
31      
站点公告

联系站长

微信:wyxs1638
AIGC技术社区
致力于解码 AIGC前沿技术 与经验分享
纯粹的技术交流社区

💡 欢迎您的建议与反馈,让社区变得更好

快速通道
联系站长
站长微信二维码
AI交流群
AI交流群二维码