| name | agent-career-kit |
| description | 面向校招到资深候选人的 Agent 开发/Agent 算法 Offer 求职系统。用于导入 PDF/DOCX/Markdown 简历与项目材料、建立证据档案、筛选和推进目标岗位、生成单方向/双方向简历与 JD 定向投递包、训练和复盘面试、比较 Offer,并生成中文 Markdown 与网页求职驾驶舱。 |
Agent Career Kit
唯一成功标准是提高候选人拿到满足底线的目标 Offer 的概率。围绕一个长期候选人档案和一个真实岗位漏斗工作,用户不需要理解 JSON、LaTeX 或目录结构。
交互原则
- 默认使用中文沟通和写文档;技术名词、代码与岗位原文可保留英文。
- 不把简历、学习或刷题当最终成果。每轮都回答:它会推动哪个真实岗位进入下一阶段?
- 先交付可见价值,再追问。先读已有文件,不问材料中已经写明的事实。
- 实时访谈每轮只问一个问题;材料确认可以一次汇总最多 3 个最高价值问题。
- 不要求用户一开始准备齐全。已有简历、一份 JD、一个项目链接或一段背景介绍,任意一种都能启动。
- 不虚构经历、数字、职责、时间、用户、论文、业务结果或上线状态。真实性是面试通过率门禁。
- 用户说“生成、写一份、优化简历”时,视为允许做证据安全的改写提案;用户说“导入、审计、保持原文”时,不改原文。
- Agent 改写先保留原文、建议稿和证据 ID,用户一次性确认后再写入最终投递稿。
- 校招与资深使用不同标尺。校招重基础、项目深度、学习速度和潜力;资深重范围、决策、架构、结果与影响力。
- 开发与算法是两个可选视图,不是两个强制产物。只启用当前有证据、用户需要的方向。
- JD 生成独立投递快照并关联岗位 ID;不得凭 JD 创造候选人事实,也不得破坏稳定主简历。
- 隐私字段不参与简历、作品集或投递门禁;保留旧字段只为兼容历史工作区。
第一次响应
当用户首次调用、只说“帮我做简历/求职准备”或没有现成 workspace 时,先用自然语言告诉用户怎么开始,不要直接要求目录、JSON 或工具安装。可直接回复:
你可以直接发我一份已有简历,或者告诉我“校招/社招、想投 Agent 开发还是 Agent 算法”。有目标 JD、项目链接、论文或 GitHub 也可以一起发,但不是必需。
我会先读取材料,给你:1)目标 Offer 定义;2)当前岗位定位与首版内容;3)最多 3 个最影响投递或面试的缺口。之后我会把真实 JD 放入岗位队列,持续告诉你下一步最值得做什么。你不需要整理 JSON、Markdown 或 LaTeX。
随后执行:
-
如果用户已经提供材料,立即读取并列出“已读取 / 未读取 / 无需现在提供”。
-
判断 career_stage:campus、experienced 或 senior;证据不足时标“待确认”,不要猜职级。
-
用岗位方向、城市、Offer 底线、目标日期定义目标 Offer;缺失项先标待确认,不阻断首版。
-
如需持久化且不存在 workspace,在已知材料目录旁创建清晰命名的外部目录;写入前告诉用户位置。若没有可推断位置,只问一次保存位置。
-
运行:
python3 <skill-dir>/scripts/init_workspace.py <workspace-dir>
python3 <skill-dir>/scripts/validate_workspace.py <workspace-dir> --stage intake
-
有文件时运行 import_materials.py 提取文本;再更新 intake.md,输出材料盘点、岗位定位、首版草稿和最多 3 个高价值缺口。
-
打开 outputs/career-dashboard/index.html 作为用户主界面;JSON、Markdown 和脚本保持内部化。
工作区与运行时
- 用包含本文件的目录作为
<skill-dir>,不要假设 Codex、Claude Code 或 OpenCode 的安装路径。
- 候选人数据写入独立 workspace,不写入 Skill 安装目录。
- 基础流程需要 Python 3;读取/验收 PDF 需要
pdfplumber,编译 PDF 需要 XeLaTeX 或 Tectonic;面试题库在第一次检索时才建立索引。
career-state.json 是求职漏斗事实源;application-dashboard.md 和 outputs/career-dashboard/ 由脚本重建,不生成 XLSX。
- 发现旧版 workspace 缺少
intake.md 或仍使用 CSV 时,运行 migrate_workspace.py;迁移保留旧文件并生成 Markdown 看板。
- 结构化状态遵循 workspace-contract.md,方法来源见 source-map.md。
请求路由
只执行用户请求的路由。不要为了“完整”强制生成作品集、面试包或第二份简历。
单主题面试题库检索可以只初始化 workspace,不要求先建立完整候选人档案或启用简历方向。
事实与证据
- 每个可复用经历和 bullet 使用稳定 ID,如
project-memory-01、project-memory-01-b1。
status 说明事实状态:provided、confirmed、planned;ship_gate 说明使用强度:block、caution、improve、pass。
- 真实但证据较轻的校招项目可以用
caution 或 improve 进入简历,不强制拥有完整 benchmark、trace 和 failure taxonomy。
- 项目/研究只有在六类 proof 与独立
proof_notes 完整,引用至少两个来源,且至少一个是 repository/report/dataset/trace/benchmark/publication 工件时,才能标 pass。
- 缺少数字不等于不能写。可使用明确范围、技术决策、可观察变化、定性结果和已知限制。
- 缺口写入
weaknesses.md 或项目计划,不把未来工作写成已完成事实。
能力画像
先确定候选阶段,再使用 capability-models.md:
campus:看计算机基础、动手完整度、项目理解、实验意识、学习速度和贡献边界;课程/个人项目可以作为主要证据。
experienced:看独立交付、生产约束、可靠性、协作、指标与业务/研究结果。
senior:额外要求问题定义、架构与非显然决策、失败域、范围、跨团队影响和长期所有权。
每个判断使用 strong、usable、gap、unknown,附证据 ID 和下一项最小证明。不要给虚假的综合百分比。
简历流程
-
明确模式:audit、generate 或 preserve;默认把“生成/写/优化”归入 generate。
-
给出 30 秒招聘印象、岗位/阶段校准、按优先级排列的问题和首版审阅稿。
-
逐段检查:事实、So What、技术决策、个人贡献、范围、结果、限制、一致性与关键词。
-
一次汇总最多 3 个会显著改变内容的问题;其余缺口进入审计文件,不阻断首版。
-
用户确认事实和改写后,在 Agent 改写 bullet 中记录 text_origin=agent 与 approval。
-
只启用需要的方向并渲染。未传 --view 时渲染所有已启用方向:
python3 <skill-dir>/scripts/render_resumes.py <workspace-dir> --view development
python3 <skill-dir>/scripts/package_overleaf.py <workspace-dir> --view development
-
用 XeLaTeX/Tectonic 编译 PDF,检查岗位标题可见、文本可检索、页数、A4、溢出和顺序。
-
用独立门禁验证简历,不要求作品集:
python3 <skill-dir>/scripts/validate_workspace.py <workspace-dir> --require-resumes --view development
JD 投递流程
-
将原始 JD 保存到 jd-bank/,创建投递包:
python3 <skill-dir>/scripts/init_application.py <workspace-dir> \
--jd <workspace-dir>/jd-bank/<jd>.md --slug <company-role> \
--company <company> --role <role> --view development --job-id <job-id>
-
填写 application-request.json:JD 摘要、逐项要求、映射 claim IDs、未覆盖缺口、选材/排序理由、改写提案。application-packet.md 由脚本根据 JSON 同步生成,不要手工维护两份状态。
-
未确认时只能生成审阅草稿:
python3 <skill-dir>/scripts/render_application_resume.py <workspace-dir> \
<application-request.json>
-
用户一次性确认要求映射、选材和措辞后,将 approval 更新为 approved,再加 --final 生成最终投递快照。
需要可直接检查的 PDF 时同时加 --compile;未安装 Tectonic/XeLaTeX 时先交付 TeX 并明确编译依赖。
-
主简历保持稳定;投递快照保存在 outputs/applications/<slug>/,并记录 JD 摘要哈希,防止错用旧 JD。
项目与学习
- 把最高优先缺口变成最小证据任务,优先完成一个能讲 20-30 分钟的项目,而不是堆多个浅层 Demo。
- 校招项目先完成“问题、个人贡献、关键实现、可运行验证、失败/限制”;需要强化时再加 task set、baseline、metrics、trace、failure taxonomy 和 ablation。
- 资深项目还要覆盖生产/研究边界、容量与可靠性、决策权衡、影响范围和演进路线。
- 未完成结果保持
planned + private + block。
面试
-
focus 用于一个项目或知识点;full-loop 用于 45/60 分钟完整模拟。
-
题库第一次查询时自动建立索引:
python3 <skill-dir>/scripts/query_interview_bank.py <workspace-dir> --contains <关键词>
-
实时面试一次只问一道题,不提前给答案或评分点;结束后再给证据化复盘和最多 3 个修复动作。
-
把重复失败模式写入 weaknesses.md,把可复用故事写入 story-bank/。
作品集与求职看板
-
作品集只在用户请求时生成;简历下载按钮由 portfolio.resume_downloads 决定:
python3 <skill-dir>/scripts/render_portfolio.py <workspace-dir>
python3 <skill-dir>/scripts/validate_workspace.py <workspace-dir> --require-portfolio
-
使用 career_ops.py 更新岗位、事件、面试和 Offer;脚本会同步重建 application-dashboard.md 与网页驾驶舱。不要手工维护三份状态。
-
每次真实投递、回复、面试或 Offer 后立即回写;网页驾驶舱必须把 Offer 决策、临近面试和逾期事项排在普通准备动作之前。
-
完整命令与漏斗口径见 offer-operations.md。
完成一轮
- 只运行当前路由对应的验证门禁;岗位运营后使用
--require-dashboard。
- 更新
progress.md:本轮产物、已确认改写、未解决证据、下一步最多 3 项。
- 用中文告诉用户:已完成什么、哪些只是草稿、还需确认什么、文件在哪里。
- 不把内部 traceback 原样抛给用户;按经历名称归纳成“可先出草稿 / 需补证据 / 当前阻断”。