从找职位到准备简历

最近把自己的 AI 求职工具重新整理了一遍,发现它已经不太像几个零散脚本,而是逐渐形成了四条可以独立运行、又能够串起来使用的工作流。

前三条已经完成实际交付:搜索职位、生成简历模板、根据职位生成定向简历。最后一条招聘沟通辅助还在开发中,而且它最难的地方并不完全在代码。

这套工程目前还在继续整理,后续计划逐步开源到 GitHub。

目录

1. 为什么要拆成四条工作流

求职看起来是一件事,实际包含几类完全不同的问题:

1
2
3
4
找到值得看的职位
→ 准备可以复用的简历模板
→ 针对职位调整简历内容
→ 与招聘方沟通

如果把它们塞进一个 Agent,它既要操作浏览器,又要理解职位、修改简历、处理文件,还要接触真实招聘对话。上下文会越来越长,权限也会越来越大,任何一个环节出错都可能污染整条流程。

所以项目没有做成一个「全自动求职机器人」,而是拆成四条工作流。每条工作流有自己的输入、状态、测试和恢复方式,需要时再组合起来。

2. Job Search:先把职位变成可信数据

第一条工作流负责获取、校验、筛选职位,并生成可以追溯的报告。

浏览器采集和模糊语义判断由外部 Agent 完成;URL 规范化、去重、字段校验、确定性筛选、结果合并、报告生成和中断恢复由 Python 程序负责。

流程大致是:

1
2
3
4
5
6
采集职位
→ 校验并冻结原始数据
→ 按明确规则筛选
→ 把模糊职位交给 Agent 判断
→ 合并人工、Agent 和规则结果
→ 生成报告

这里最重要的不是让 Agent 决定一切,而是把确定和不确定的部分分开。学历、城市、薪资格式等稳定规则交给程序;岗位方向、经历是否匹配等模糊问题,再交给 Agent 或人工判断。

3. Resume Template Generation:把参考图变成模板

第二条工作流接收一张简历参考图,生成两类可复用模板:

Backend 主要产物
Design 可编辑的 PPTX、字段绑定和预览图
Code HTML/Jinja、CSS、字段绑定和预览图

Codex 负责观察参考图、创建模板和检查最终预览;程序负责图片查重、文件校验、模板注册、状态和哈希。

模板必须经过真实渲染和人工验收,才能进入正式模板库。它不是把参考图整张贴成背景,而是保留可编辑文字、图片槽和结构化字段,让后面的简历生成工作流可以重复使用。

4. Targeted Resume Generation:根据职位准备简历

第三条工作流读取三类输入:

1
2
3
个人事实
+ 可选的目标职位
+ 已经验收的简历模板

有目标职位时生成定向简历,没有职位时生成通用简历。

Agent 负责理解职位、选择和压缩内容、生成草稿并完成内容与视觉 Review;程序负责冻结输入、检查事实来源、防止编造、渲染文件、记录状态和验证产物哈希。

Design 和 Code 两个 Backend 使用同一份冻结内容,分别生成 PPTX/HTML、PDF、DOCX 和 PNG。只有用户明确接受后,一次运行才会进入完成状态。

前三条工作流到这里已经能够串起来:

1
2
3
4
Job Search 找到职位
→ Targeted Resume 读取职位
→ 从模板库选择已验收模板
→ 生成并检查定向简历

5. Agent Conversation:仍在开发的一环

第四条工作流是招聘沟通辅助,目前仍处于实验和开发阶段。

它的目标不是让 Agent 冒充本人自动聊天,而是根据职位、简历和已有对话生成建议或消息草稿,帮助整理沟通内容和后续行动。

任何真正发送给招聘方的消息都必须经过人工确认。职位搜索、简历生成和招聘沟通也继续保持独立,不能因为前三条已经完成,就默认授权第四条自动发送。

6. 为什么招聘沟通验证得很慢

这一部分最难的不是写一个消息输入框,也不是调用发送接口,而是缺少稳定、可反复使用的真实测试环境。

BOSS 对自动化行为的风控比较严格,页面、登录态和会话都有可能在测试过程中发生变化。动作过快或模式异常,还可能触发平台限制。

更重要的是,招聘沟通面对的是真实的人。不能为了测试一个功能,随便找一位招聘者发送无意义消息;也不能把别人的时间和正常招聘流程当成测试数据。

因此这条工作流只能分两部分验证:

可以在本地反复测试 需要在真实求职中谨慎验证
消息解析、会话状态、命令路由 页面和登录状态
草稿生成、人工确认门禁 真实发送链路
Mock Runtime、错误恢复 平台风控表现

真实部分只能随着自己的应聘逐步推进,在正常投递和沟通过程中顺便验证。这样开发速度会慢,但至少不会为了追求测试覆盖率,给无关招聘者制造实际影响。

7. 收个尾

这个工程目前已经形成四条边界不同的工作流:

工作流 当前状态
Job Search 已交付
Resume Template Generation 已交付
Targeted Resume Generation 已交付
Agent Conversation 开发中

前三条处理的是可以冻结、校验和重复验证的数据与文件;第四条接触的是真实平台和真实的人,所以它需要更慢、更谨慎地推进。

对这类系统来说,能接上浏览器和模型只是开始。真正决定它能不能长期使用的,是每一步有没有边界、能不能恢复,以及自动化应该在哪一步停下来等人确认。