项目初衷:痛点分析

在开发 resume-helper 之前,我调研了市面上主流的 AI 简历优化工具,发现三个核心痛点。

痛点一:幻觉问题(Hallucination)

大多数 AI 简历工具为了追求优化效果,会无意识地"润色"甚至捏造工作经历。例如:

  • 将"熟悉 Python"升级为"精通 Python 并有大型项目经验"
  • 添加用户从未参与的技能或项目

这种行为存在严重风险:面试官深入追问时,求职者将陷入信任危机。

痛点二:效果无法量化

传统简历优化工具只输出"优化后"的结果,缺乏对比数据:

  • 用户不知道优化了什么
  • 无法判断关键词匹配度是否提升
  • HR 筛选简历时是否更容易通过

痛点三:流程断层

即使有了优化后的简历,求职者仍需:

  1. 手动搜索各大招聘平台的 JD
  2. 逐条提取技能要求
  3. 对比自己的简历进行修改
  4. 导出为 PDF 格式投递

这个流程耗时且低效。


架构演进路线

v1.0/2.0:建立信任机制

为了解决前两个痛点,我们在 v1.0 和 v2.0 中确立了两个核心机制。

反幻觉协议(Anti-Hallucination Protocol)

这是整个项目的基石。核心原则:

绝对禁止:

  • 捏造任何工作经历
  • 发明技能、项目或成就
  • 创建虚假公司、日期或职位

仅允许:

  • 提取和重述现有经历
  • 重新组织内容以匹配 JD 优先级
  • 将技术成就转化为 JD 关键词
  • 量化已有数据的成就
  • 突出已有经验的相关部分

这套协议确保优化结果始终基于用户真实经历,保护求职者的职业声誉。

ATS 评分系统(ATS Scoring System)

为了量化优化效果,我们开发了 ATS(Applicant Tracking System)评分系统:

  • 对比优化前后的关键词匹配度
  • 输出详细的匹配/缺失关键词列表
  • 生成独立的优化报告文档

用户可以清晰看到:优化前匹配 20%,优化后匹配 80%,提升了 60%。

v3.0:打通全流程自动化

v3.0 是核心突破,实现了从"搜索 JD"到"生成 PDF"的完全自动化。

整体架构

完整流程包含五个阶段:

  1. 用户输入(目标岗位 + 简历)
  2. PHASE 1:JD 搜索引擎,获取真实职位描述
  3. PHASE 2:LLM 关键词提纯引擎,提取 8 个核心关键词
  4. HITL:人工确认,用户审核关键词
  5. PHASE 3:简历优化引擎,反幻觉协议 + ATS 评分对比
  6. PHASE 4:最终交付,PDF 简历 + ATS 优化报告

核心创新:LLM 关键词提纯引擎

这是 v3.0 的技术亮点。从搜索引擎获取的 JD 文本通常包含大量噪音,例如广告推荐、网站导航等无关内容。

如何从杂乱文本中提取精准关键词?我们设计了三层清洗策略:

第一层:结构化清洗

移除 HTML 标签、广告关键词、导航链接等无关内容。

第二层:语义化清洗

提取"职位描述"和"任职要求"核心段落,过滤噪音。

第三层:智能提纯

通过子代理执行智能提取,核心 Prompt 设计要点:

  1. 找出所有 JD 中交叉重合度最高的技能要求
  2. 合并同义词(例如:将"熟悉 Unity"和"精通 U3D"统一为"Unity")
  3. 按出现频率和重要性综合排序
  4. 输出最重要的 8 个关键词
  5. 格式:纯逗号分隔,无序号

实际测试中,系统能从 3 份游戏策划 JD 中提取出:沟通能力、游戏策划、游戏经验、Unity、Python、逻辑思维、Excel、关卡设计。精准覆盖了岗位核心要求。


踩坑与反思

在开发过程中,我们遇到了几个关键问题。

问题一:AI 提取关键词可能出错

最初版本完全自动化,但发现 AI 可能提取到错误的关键词:

  • 将"有 Unity 经验者优先"误判为必选要求
  • 忽略隐含的技能要求(如"热爱游戏"暗含游戏经验)

解决方案:Human-in-the-Loop 确认机制

在 Phase 2 结束、Phase 3 开始前,程序暂停并展示提取的关键词。用户可以:

  • 按 Enter 确认继续
  • 手动修改关键词后再继续

对于批量投递场景,提供 –auto 参数跳过确认。

问题二:优化说明不应出现在简历中

早期版本会在简历末尾添加"优化说明"部分,这显然不适合正式投递。

解决方案:分离优化报告

简历输出干净无痕迹,优化细节独立保存到单独的文件中。

问题三:PDF 导出需要轻量级方案

服务器资源有限,不能使用 Puppeteer 或 LaTeX。

解决方案:整合 md-to-pdf-cjk 技能

使用 Python reportlab 库 + CJK 字体,2GB RAM 即可运行,完美支持中文简历。


技术栈与开源

核心依赖:

  • Node.js 14+
  • Python 3 + reportlab
  • CJK 字体(fonts-noto-cjk)

OpenClaw 技能:

  • multi-search-engine:JD 搜索
  • md-to-pdf-cjk:PDF 导出

使用方法:

1
2
3
4
5
6
7
8
# 安装技能
clawhub install resume-helper

# 交互式求职(推荐)
node scripts/auto-hunt.js "游戏策划培训生" resume.md "腾讯"

# 自动化求职
node scripts/auto-hunt.js "游戏策划培训生" resume.md "腾讯" --auto

项目地址:https://github.com/zealxz/resume-helper

欢迎开发者体验、提交 Issue 或 PR。


总结

resume-helper v3.0 实现了求职流程的完全自动化,同时坚守"反幻觉"底线。核心价值:

  1. 自动化:从搜索 JD 到生成 PDF,一键完成
  2. 可信度:绝不捏造经历,基于真实内容优化
  3. 可量化:ATS 评分系统提供客观对比数据
  4. 可控性:人工确认机制确保关键词准确

这是一个开源项目,希望能帮助更多求职者提高效率,同时保护他们的职业诚信。


铁三角团队:zealx + NOVA + Gemini