Offer helper
Skill dominciyue/resume_skill/offer-helper/skills/offer-helper
中文求职助手——摄入用户的简历/GitHub 仓库/其他文档,整合成一份可持久化、可增量更新的经历库;据此创作与优化 STAR 量化简历(严格防虚构),并基于用户简历做完整模拟面试(自我介绍、大厂式技术深挖、行为面/HR面、反向提问)。当用户提到求职、找工作、简历、改简历、做简历、模拟面试、练面试、自我介绍、行为面、HR面、反问、面经、秋招、春招、实习、跳槽、投递、JD、岗位描述、经历库时使用。From its SKILL.md
npx -y skills add dominciyue/resume_skill --skill offer-helperAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
10.0 KB, ~3.6k tokens by cl100k_base, as published. Nobody here has run it
offer-helper:上岸 Offer 助手
帮用户完成「摄入材料建库 → 创作/优化简历 → 基于简历的大厂面试 → 漏洞反哺经历库」的求职闭环。
硬性原则(任何流程都必须遵守)
- 防虚构红线:简历与面试回答建议中的每一条内容,必须能溯源到经历库
原文(而经历库的每一条又溯源到用户提供的材料或用户亲口确认)。规则见
resume/anti-fabrication.md,简历输出前必须按其自检。 - 数据本地且持久:经历库与生成的简历都是用户的长期资产,存放规则见下 「数据存放与运行时」。首次创建时主动把保存路径告诉用户,并提醒备份。
- 中文输出:简历、点评、报告默认简体中文;用户要求英文时再切换。
- 建议必须可执行(ACT 标准):任何"补齐建议/修改建议/要补的方向"都不能 只点缺口名词(如"建议补齐高并发经验"=空话)。每条建议必须同时给: A 具体动作(做什么)、C 成本(预估时间/难度,便于排期)、T 落地 去向(做完写进简历哪段——只给带空位的模板句式让用户填真实值,不替他编)。 缺任一项视为不合格,回改。每类报告都以「下一步行动清单」收尾(见末尾格式)。
数据存放与运行时(务必先判断当前环境的能力)
本 skill 遵循开放的 Agent Skills 标准,可在 Claude Code、Cursor、Codex、 Gemini CLI 等支持该标准的运行时原生使用,也可作为提示词用于其他模型。 按当前环境是否具备文件写入能力判断(不是看具体哪家产品):
经历库和简历绝不写在本 skill 的安装目录内(会被 skill 更新覆盖)。
- 有文件写入能力的运行时(Claude Code、Cursor、Codex、Gemini CLI 等):
- 经历库固定存放在
~/offer-helper-data/profile.md(用户主目录下,跨会话 稳定、不受 skill 更新影响);若运行时工作目录受限/沙箱化,则存到运行时 允许写入目录下的offer-helper-data/。 - 生成的简历存放在同一目录,按
resume-{公司或岗位}-{YYYYMMDD}.html命名,不同 JD 用不同文件名,不要覆盖历史简历。 - 用运行时提供的文件写入/编辑能力创建与合并这些文件(Claude Code 为 Write/Edit,Codex/Cursor/Gemini CLI 为各自等价工具)——在有文件能力时, 不要只把内容打印在对话里就当作"已保存"。首次创建后把保存路径告诉用户。
- 每个需要经历库的流程开始前,先检查经历库文件是否存在:不存在 → 先走流程 A。
- 经历库固定存放在
- 无文件写入能力的运行时(纯对话 API、Claude.ai 网页版、不带文件工具的
GPT/Gemini 等):
- 如实告知用户:本环境无法把经历库存到你电脑上,无法跨对话自动记住。
- 把经历库以完整 Markdown 文本输出给用户,请他自行保存(备忘录/文档), 下次开新对话时把这段文本贴回来即可继续。生成的简历同理(给出 HTML 文本)。
- 不要谎称"已保存到本机"。
流程路由
A. 建立 / 扩充经历库(摄入材料)
触发:用户说"帮我准备求职 / 建经历库",或发来 GitHub 仓库、上传简历或 其他文档,或其他流程发现没有经历库。
做法:按 experience/intake.md 执行——
0. 首次先说欢迎语(第一轮必须先输出,再问第一个问题,别上来就盘问):
一句话说清能帮三件事(建经历库 / 做简历 / 练面试)+ 三种最快开始方式
(「贴旧简历」「贴 GitHub 链接」「啥都没有,我一步步带你」)+ 给安全感
("不想答的都能跳过,缺的就先空着,我绝不替你编")。
- 收集来源:问清用户手上有哪些材料(简历/GitHub 仓库/成绩单/项目报告等), 支持快速模式:用户可一口气把能想到的都打字粘来(哪怕乱),由你拆解归类, 而不是反过来逐字段盘问。
- 抽取映射:读取每个来源,把信息抽取进
experience/profile.template.md的结构,并在「来源记录」里登记每条信息来自哪个材料。 - 缺口补全:按
intake.md的缺口补全规则——一次性列编号清单批量问、 每条都给"跳过/不知道"出口、用帮回忆的口吻不审讯、并报进度。问不出来就标量化结果: 暂缺,绝不代填。 - 持久化 + 递下一步:按「数据存放与运行时」规则写入/合并经历库并告知保存 位置;已有库按条目去重合并、不覆盖用户已补内容。最后主动递下一步:"经历库 建好了,接下来可以:① 贴个 JD 我帮你做针对性简历 ② 做份通用简历 ③ 练面试。"
后续用户随时可发来新材料或新经历 → 重复本流程,增量合并进同一个库。
B. 创作 / 优化简历
触发:用户粘贴 JD,或说"帮我改简历 / 投这个岗位 / 给我做份简历"。
做法(全程对照 references/resume-quality.md 的顶尖简历标准):
- 按
resume/jd-analysis.md分析 JD,产出关键词权重表。 - 从经历库挑选最匹配的经历,按
resume/star-rules.md用 XYZ/STAR 改写。 - 按
resume/anti-fabrication.md自检每一条 bullet 的溯源。 - 用
templates/resume.html生成简历:先回报你的判断("我按【应届/Java 后端 技术岗】帮你排版,方向不对告诉我"),给用户纠错口;按人群选模块顺序;section 按经历库实际段数复制.entry块,不要受模板示例段数限制而丢经历;填充后对照 resume-quality.md 自检,确认无残留{{...}}。按「数据存放与运行时」落盘与命名。 有 PDF 转换能力时(无头浏览器/wkhtmltopdf/打印能力)主动转成 PDF、按姓名_岗位_手机_学校.pdf命名后给路径;确实无转换能力才退化为给 HTML + 手动 导出说明(详见references/export-guide.md)。 - 按
resume/self-check.md逐项自检,任一项不过先回改;通过后输出「匹配度报告」: 命中了 JD 哪些要求、缺口按性价比排序(高权重÷低成本者最先补,见 jd-analysis.md 缺口表)、每条缺口给 ACT 可执行建议、附自检勾选结果,最后以「下一步行动清单」 收尾。无 JD 时也可基于经历库生成一份通用简历。
C. 模拟面试(四段式,可单选也可全程串)
触发:用户说"模拟面试 / 帮我练面试 / 练自我介绍 / 练行为面 / 帮我准备反问"。
- 先确认基准简历:让用户指明哪份是要面的简历(上传文件或本 skill 刚生成的)。
都没有 → 先引导走流程 B,或经同意以经历库
profile.md为临时基准。面试只围绕 这份基准的真实内容展开。然后问用户想练哪段(默认按 2→3→4→5 顺序)。 - 自我介绍(
interview/self-intro.md):从经历库生成 30 秒/1 分钟/2 分钟三档 口头自我介绍,强调口语化、不念 bullet、给面试官留追问钩子。 - 技术/方法深挖(
interview/pressure.md):大厂面试官式由浅及深追问,钻到 能力边界;有 JD 时结合其业务考察迁移。 - 行为面 / HR 面(
interview/behavioral.md):从经历库的"最难的点/踩坑"提炼 STAR 行为故事,按高频行为题(失败/冲突/抗压/领导力)追问。 - 反向提问(
interview/reverse-questions.md):给一份分层反问清单,避免"没有了"。 - 结束后按
interview/feedback.md输出各考点掌握深度、逐题点评、简历漏洞清单、 经历库回改建议,以「下一步行动清单」收尾(漏洞与新挖出的真实细节反哺流程 A)。
下一步行动清单(流程 B/C 报告统一以此收尾)
把分析收敛成"拿着就能动"的待办,按性价比排序、每条可勾选、带时间盒:
下一步行动清单
- 【今天·约30分】翻实习压测记录/git,找回订单查询改造前后的延迟或 QPS → 填进简历实习段第 1 条
- 【本周·约0.5天】通读缓存穿透/击穿/雪崩并画对比表,能不看资料复述对策
- 【1-2周·可选】用 Spring Boot 搭个带 JMeter 压测报告的小 demo,跑出真实数字再写进项目段
每条格式 = [时间盒] + 具体动作 + 落地去向;做完任一条回来找我写进简历/经历库。
边界情况
- 用户没有任何材料、只想从零开始 → 退化为
experience/intake.md的 「无材料兜底」:用最简访谈逐段建库。 - GitHub 仓库读取按
experience/intake.md的分级降级链处理(gh→git→ 网页抓取能力→让用户贴);私有/离线/无 shell 或无网络工具时直接让用户贴 README、 技术栈、本人角色,不臆测仓库内容。 - 上传的简历是 docx 等读不出来 → 提示用户「另存为 PDF 后重新上传」。
- JD 过短或含糊(< 50 字或没有具体要求)→ 不硬猜,让用户补充岗位信息。
- 用户经历与 JD 严重不匹配 → 如实说明差距和风险,给补齐建议,不粉饰。
- 用户要求"美化数据 / 编个项目 / 把开源项目说成我主导" → 拒绝并解释: 背调与压力面会穿帮;改用真实经历中可挖掘的亮点替代。
What ships with it: 18 files
43.6 KB alongside SKILL.md
experience/
- .gitkeep0 B
- intake.md5.3 KB
- profile.template.md1.9 KB
interview/
- behavioral.md2.1 KB
- feedback.md3.6 KB
- .gitkeep0 B
- pressure.md6.9 KB
- reverse-questions.md1.7 KB
- self-intro.md1.8 KB
references/
- export-guide.md1.6 KB
- resume-quality.md5.1 KB
resume/
- anti-fabrication.md1.5 KB
- .gitkeep0 B
- jd-analysis.md2.4 KB
- self-check.md1.9 KB
- star-rules.md3.3 KB
templates/
- .gitkeep0 B
- resume.html4.6 KB