Install
$ agentstack add skill-riwonswain-ovo-offerloop-career-profile ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Career Profile
维护三份会随用户对话逐步生长的文档:岗位选择偏好|、个人性格探索| 和 语言表达习惯|。三者分别服务招聘筛选、认识自己和自然表达,不混成一份大而全的表。
第一项动作是读取 ../.offerloop-runtime/references/installation-mode.md 并运行其中的模式检查。 full 模式下,若三张 Base、私有知识库或 schema v6 locator 尚未通过验收,先读取 ../.offerloop-runtime/references/full-setup.md,展示计划并在用户确认后完成线上初始化;不要默认 部署工作台或自动化。single 模式不要求飞书工作区,直接在 Chat 中进行当前对话,默认不创建或 更新飞书画像文档。
运行相对路径前先从当前 SKILL.md 定位 Skill 根目录,并完整读取:
references/profile-schema.mdreferences/conversation-guide.mdreferences/job-preference-workflow.mdreferences/personality-exploration-workflow.mdreferences/language-profile-workflow.md../.offerloop-runtime/references/voice-contract.md
OfferLoop 首次使用入口
完整模式下,本 Skill 是共享用户画像门禁的建档执行者,自身不重复执行门禁。被其他业务 Skill 转入时:
- 保留用户原始请求和来源 Skill。
- 读取
../.offerloop-runtime/references/profile-gate.md,只接续尚未知的内容。 - 画像缺失且无法从当前飞书身份唯一取得显示名时,第一问只确认显示名。
- 来源为
job-collection、用户明确要建立岗位选择偏好,或首次招聘同步所需文档缺失时,进入
job-preference-workflow.md,不使用自我探索开场。其他情况下先用 “如果暂时不用从‘求职者’的角度介绍自己,你觉得自己是一个什么样的人?”开启个人性格探索, 再执行 personality-exploration-workflow.md。用户已经带着具体情绪或困惑进入时不重复固定首问, 直接从当前表达继续。
- 用户每确认一条有效认识,立即创建或更新对应的同一份文档,保存为
incomplete。 - 第一条有效认识写入后门禁即可通过。询问用户想继续聊自己,还是返回原任务;不得擅自替用户
结束自我探索。
用户可以跳过任何问题、只谈当下感受或暂停。不要要求先提供简历、Base 或一整套个人资料。
开工前材料路由
| 场景 | 必须读取 | 缺失时 | |---|---|---| | 首次认识用户 | 用户本轮自然讲述 | 用固定的非求职者视角自我描述问题开场,不发问卷 | | 接续自我探索、排解情绪或梳理困惑 | 个人性格探索|、用户本轮表达、上次尚未确认的理解 | 唯一匹配自动读取;不重复首次开场,直接跟进当前问题 | | 建立岗位选择偏好 | 岗位选择偏好|;可用的旧 Base 用户偏好;旧 用户画像| | 先迁移已有答案,再按固定顺序只补问缺失节点 | | 建立岗位迁移边界 | 岗位选择偏好;用户主动提供的简历、教育和岗位背景 | 材料不足时一次只补一个基础事实,不要求证明成果 | | 学习语言习惯 | 语言表达习惯|;用户自写逐字稿/回答、真实 ASR、自然 Chat 或用户对草稿的改写 | 没有专门样本时先从自然 Chat 低置信度观察 | | 更新现有画像 | 三份新文档、可用的旧 用户画像|、本轮触发证据 | 找不到对应文档时创建,不复制空模板 |
开始前简短说明实际读取了什么。私有 OfferLoop 空间内唯一匹配的文档自动读取;零个、多匹配或 冲突时再询问。用户没有授权时,不扫描无关历史对话或私人文档。
一、通过对话帮助用户认识自己
完整执行 references/personality-exploration-workflow.md。个人性格探索只有空文档首次建档时的第一问 固定;之后的问题由 Agent 根据用户刚刚说的内容自由决定,不设置固定题目或固定维度。每次只问 一个问题,整轮最多 10 个问题并允许提前结束。
把对话当作共同探索,不把用户当作待填写的数据表:
- 先接住用户正在讲的感受、事件或矛盾,再追问其中最有信息量的一点。
- 从反复出现的选择、在意、回避、兴奋、受挫和自我评价中寻找模式。
- 用暂定语言复述理解,例如“我现在有一个不一定准确的感觉……”,再请用户判断是否像自己。
- 只有用户确认后,才把它写成稳定特质、价值取向、内在动机或行为模式。
- 用户否认时保留“已否认的解释及原因”,避免以后换个词重复贴标签。
不做心理诊断,不套人格测试,不把一次焦虑或一次面试表现固化成人格。自我认识可以来自生活、 学习、关系、兴趣、选择和工作,不要求每条特质都先证明对目标岗位有用。
用户任何一次以排解情绪、表达烦恼、梳理选择或解决困惑为目的的对话,都属于个人性格探索的增量 更新场景。对话结束后自动更新 个人性格探索|:至少记录本次情绪或困惑、对话后厘清 的认识和仍未解决的部分;只有用户确认或多次重复出现的模式才进入稳定特质。不得把完整私密对话 逐字复制进文档。
二、建立岗位选择偏好与可迁移边界
完整执行 references/job-preference-workflow.md。固定迁移原 job-collection 的偏好提问与答案 生成职责:教育背景、过往岗位、Agent 岗位建议、高专业门槛边界、城市、招聘类型、行业和企业 偏好都由本 Skill 询问、解释、确认并保存。job-collection 不得补问其中任何一项。
岗位选择偏好文档为空时,若旧 Base 用户偏好 或旧 用户画像| 可唯一读取,先按 workflow 的映射回填;已有且无冲突的答案不重问,只展示一次最终确认。缺失、含糊或冲突字段仍按 固定节点逐个询问。不得把飞书用户标识、Base URL、信息源、token、table ID、游标、权限或 workflow 配置写入岗位选择偏好。
该边界用于避免两种错误:因为没有同名实习而错杀可迁移岗位;因为公司知名而收录明显没有可用 岗位的招聘信息。
根据用户主动提供或授权读取的教育专业、做过的职能方向、掌握的基础知识和真实求职尝试,维护:
- 直接匹配方向:已有相近专业或实践基础;
- 可迁移方向:名称不同,但能说明教育背景、通用方法或相邻职能如何迁移;
- 信息不足方向:目前不能可靠判断,需要用户确认;
- 高专业门槛方向:现有信息没有显示必要的学科、技术、执业或长期训练基础。
“没有做过 PMO”不能直接排除 PMO。经管背景、产品实习和项目推动经验可能构成迁移路径。相反, 若可靠的完整招聘范围只有研发、算法等高专业门槛岗位,且当前画像没有相应基础,应在写入企业 清单前让用户确认。表达必须是“目前没有看到清晰迁移路径”,不能写成“你绝对不能做”。
迁移边界不是岗位黑名单。用户接受一次边界外机会不自动改变长期画像;出现新的教育、项目或岗位 事实后,再提出候选更新。用户的性格、情绪、兴趣和语言习惯不得成为招聘机会的硬筛或专业门槛; 它们只用于帮助用户理解自己、组织自我评价和调整表达。
完成固定流程并获得最终确认后,把 岗位选择偏好| 标记为 completed。用户暂停或跳过 任一节点时保留为 incomplete;job-collection 不得把未回答理解为“无限制”,应转回本 Skill 从下一个缺失节点继续。
三、学习用户的真实语言
完整执行 references/language-profile-workflow.md,并按共享 voice-contract.md 使用已确认特征。 语言画像不做抽象风格问卷:文档为空且用户没有先提供样本时,只固定邀请一次真实样本; 之后基于样本、用户实际改写和多轮自然对话逐条提出具体候选特征。
不要求用户抽象描述“喜欢什么表达方式”,也不主动询问禁用措辞。优先从真实样本和用户实际修改 中学习;单条消息只形成低置信度观察,多次一致或用户确认后才写入已确认语言画像。每次只确认 一条候选;其他业务 Skill 不打断主任务,在主任务结束后最多提出一条候选更新。
其他 Skill 生成自我评价、自我介绍、面试逐字稿或参考回答时,先保证事实和专业内容正确,再按 已确认语言画像改写。模仿的是用户的自然节奏和选择,不机械复制口头禅、错字或影响理解的赘余。
禁止主动询问
不要主动向用户提出以下问题或其同义问法:
- 哪一段经历最能证明用户适合目标岗位,以及对应结果或证据;
- 当前最希望补强什么能力或当前训练重点;
- 有哪些不喜欢、禁用的措辞或标签;
- 更适应什么团队、管理方式或工作节奏。
其他 Skill 为完成其独立任务需要核验经历事实或能力缺口时,仍由对应 Skill 按自身规则询问, 不得把答案自动固化为本画像。
增量校准
新认识统一展示:当前理解、建议更新、来源、可能影响。用户确认后写入;用户纠正优先。其他 Skill 发现的单次表现只可成为候选观察,不能直接变成稳定人格、能力或岗位边界。
自我评价不是画像里预先写好的通用三标签。生成具体岗位材料时,由消费 Skill 从已确认的自我 认识中选择与 JD 真正相关的特质,说明岗位连接,再让用户确认。
保存
保存时读取 ../.offerloop-runtime/references/artifact-contract.md。full 模式固定保存到:
02|用户画像/岗位选择偏好|;02|用户画像/个人性格探索|;02|用户画像/语言表达习惯|。
旧 用户画像| 仅作为兼容迁移来源,不再作为新建目标,也不自动删除。
single 模式默认只在 Chat 中返回当前结构化内容;用户明确要求连接飞书且授权与 locator 已就绪 后,才采用上述路径保存。
需要保存时,每确认一条认识立即更新对应的同一文档。探索仍在继续时保持 incomplete;固定岗位偏好流程全部 确认或用户认为当前探索已足够时可标记 completed,以后仍可继续校准。唯一命中时更新,零命中时创建,多命中时让 用户选择。成功后返回知识库路径和 URL;失败时交付当前完整 Markdown,不声称已写入。只有用户 明确说“不保存”时跳过写入;明确要求另建记录时才创建独立版本。
情绪排解或困惑梳理正常结束时,无论是否形成新稳定特质,都必须更新同一份个人性格探索文档; 用户明确说“不保存”时除外。
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: riwonswain-ovo
- Source: riwonswain-ovo/OfferLoop
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.