从职位链接构建并评分简历
一个裸职位链接就是完整的指令。 无需询问即可执行整个流水线。 在“构建+评分+记录”处停止——申请是用户的操作。
步骤
- 去重。 运行
python -m resume_pipeline.tracker report data/applications并检查该 公司/团队是否已存在。提前告知用户;仍然继续执行。 - 提取JD——使用首个返回全文的方法:
- ATS的公开JSON端点(Greenhouse / Ashby / Lever的招聘页面通常提供),
- 结构化网页抓取(“逐行列出的每项职责和要求”),
- 浏览器,用于JS渲染的职业站点。 如果所有方法都失败,请用户粘贴JD文本。绝不要虚构JD内容。
- 编写记录
data/applications/<slug>.md,基于examples/applications/_TEMPLATE.md。 新记录 = 仅一个found事件(不是applied;由用户申请)。一个文件 = 一个职位需求。 - 编写目标文件
data/targets/<slug>.yaml:- 从
data/modules.yaml中选择模块ID,按此JD排序;目标文件中不包含简历文本 - 设置
output:(缺失output:会静默构建resume.docx) - 一个JD关键词若没有真实的履历项支撑,则是一个缺口:在头部注释中写出来,绝不要作为技能行关键词。将每个缺口标记为固有(无相关经验 -> 面试叙事)或可修复(有相关经验,但措辞不当)。
- 填满页面;如果溢出到第2页,先修剪
project_bullets。不要修改config/layout.yaml——它被所有简历共享。
- 从
- 构建并验证单页
python -m resume_pipeline.build_resume data/targets/<slug>.yaml --modules data/modules.yaml --out /tmp/resume_<slug>.docx soffice --headless --convert-to pdf --outdir /tmp /tmp/resume_<slug>.docx # 然后统计页数 - 打分 使用
scoring-resumes技能。在成绩单写入记录之前,简历不算完成。 - 验证记录:
python -m resume_pipeline.tracker validate data/applications。 - 报告:结论 + 三评委得分 -> 覆盖了哪些JD要求 -> 缺口(固有/可修复) -> 定位 -> 非简历关卡(地点、签证、每周到岗天数、安全审查——这些在申请表中单独询问,不属于简历编辑)-> 一行建议。
规则
- 绝不虚构履历、日期或JD。仅添加用户确认的真实履历项。
- 低分是信息,不是否决:由用户决定是否申请。
- 在满页的情况下,“添加一项履历以修补已标记的缺口”必须进行A/B打分——补丁往往得分更低。
- 多个链接同时出现:先提取所有JD,然后一次处理一个职位(步骤3-8);如果一份简历可以覆盖两个几乎相同的职位,就告知用户,避免构建重复简历。