4.0 KiB
模式: pipeline — 待处理 URL 收件箱 (第二大脑)
用于批量处理记录在 data/pipeline.md 中的职位 URL 链接。候选人可以随时向待处理列表中追加抓取的岗位链接,然后运行 /career-ops pipeline 一键自动化评估所有待投递机会。
实时工作流
-
读取数据:分析
data/pipeline.md文件,找出 "Pending" 模块下所有标记为- [ ]的待处理项目。 -
循环遍历处理:对每一个未处理的 URL: a. 计算新报告编号:扫描
reports/目录,找出当前最大的三位数字前缀并加 1,作为REPORT_NUM。 b. 抓取职位描述 (JD):首选 Playwright (通过browser_navigate+browser_snapshot) 渲染网页抓取,备选WebFetch提取静态文本,最后使用WebSearch搜索同名岗位快照。 c. 异常处理:若链接因权限、失效等原因完全无法打开,将该项标记为- [!],附加错误描述,并继续处理下一个。 d. 执行一键管道评估:运行 A-F 维度评估 → 保存为报告.md文件 → 根据设定生成简历 PDF(若评分达到阈值)→ 自动记录至 tracker。 e. 将记录从“待处理”移入“已处理”:更新状态为- [x] #NNN | 职位链接 | 公司名称 | 职位名称 | 评分/5 | PDF 状态。关于自动生成 PDF 的分流控制 (Configurable): 系统将读取个人配置
config/profile.yml中的auto_pdf_score_threshold(自动生成 PDF 评分阈值)。如果该配置项不存在,则默认阈值为3.0。 如果本次岗位的评估得分低于该阈值,系统将跳过简历 PDF 的生成步骤(照常撰写评估报告,并在报告头部标明**PDF:** not generated — run /career-ops pdf {company-slug} to create on demand,同时在 tracker 的 PDF 列登记为 ❌)。 如果评分等于或高于该阈值,则照常自动生成量身定制的简历 PDF。注:此机制可以大幅节省批量扫描时的 Playwright 渲染排版开销(每次渲染需要 30-60 秒)。候选人可在后续通过执行命令单独生成心仪岗位的 PDF。
-
并发加速:如果待处理的 URL 达到 3 个及以上,建议以并发方式(在后台启动子 Agent)并行执行评估,以实现最大处理效率。
-
输出批处理总结:处理完毕后,输出一份汇总清单表格:
| 编号 | 公司名称 | 岗位名称 | 综合评分 | PDF 状态 | 投递建议 |
pipeline.md 语法规范
## Pending
- [ ] https://jobs.example.com/posting/123
- [ ] https://boards.greenhouse.io/company/jobs/456 | 某某科技 | 资深 AI 产品经理
- [!] https://private.url/job — 错误:需要登录后查看
## Processed
- [x] #143 | https://jobs.example.com/posting/789 | 极客科技 | AI 研发工程师 | 4.2/5 | PDF ✅
- [x] #144 | https://boards.greenhouse.io/xyz/jobs/012 | 某大厂 | 解决方案架构师 | 2.1/5 | PDF ❌
智能解析 URL 职位描述
- Playwright (首选):
browser_navigate+browser_snapshot。能够稳定处理所有单页面应用 (SPA)。 - WebFetch (备选):适用于静态页面,或在 Playwright 环境不可用时作为后备。
- WebSearch (最终手段):在第三方招聘聚合平台上查找同名职位的快照。
特殊情况处理:
- LinkedIn:可能会触发强登录校验拦截。若多次失败,标记为
[!]并引导候选人直接粘贴 JD 文本。 - PDF 文件:如果 URL 链接直接指向一份 PDF 文档,使用 Read 工具读取二进制文档。
- 本地文件前缀
local::如果是本地路径,直接读取对应文件。例如:local:jds/linkedin-pm-ai.md指向读取本地的jds/linkedin-pm-ai.md文件。
数据一致性校验
在启动处理之前,先执行以下脚本检查简历与配置的同步状态:
node cv-sync-check.mjs
如果检测到简历或个人偏好数据存在脱节风险,在继续执行前向求职者发出警示。