---
name: job-intent-tracker
description: 帮助用户梳理求职意向、生成目标岗位画像，并维护一份结构化的"岗位投递追踪表"。当用户说"我想换工作 / 不知道投什么岗 / 帮我看看我适合什么岗位 / 帮我管理投递进度 / 我投了好几家但记不住状态了 / 想做一个求职 OKR / 整理一下求职方向"，或上传简历但没说要改简历时，应该主动触发本 skill。本 skill 也适用于实习生、应届生、转行候选人在求职启动阶段做"自我盘点 + 目标画像 + 投递管理"三件事。
---

# Job Intent Tracker（求职意向 + 岗位追踪）

这个 skill 解决"求职启动期"的三个核心问题：

1. **我适合投什么岗？** —— 从用户背景里抽取信号，反推 2~3 个目标方向
2. **目标岗位长什么样？** —— 为每个方向生成"岗位画像 / Target Profile"
3. **投了哪些、进度如何？** —— 维护一份结构化追踪表（Excel / Markdown 表）

不要把这个 skill 用成"简历改写"或"面试题生成"——那是 resume-builder / jd-resume-tailor / interview-prep 的事。本 skill 只关心"方向"和"管理"。

---

## 何时触发本 skill

强信号（基本必须用）：
- "我想换工作 / 想跳槽 / 想找下一份工作"
- "帮我看看我适合什么岗位"
- "帮我管理投递进度 / 跟踪一下我投的公司"
- "我有 X 年 Y 经验，下一步该往哪走"
- "我投了好多家但忘了进度"

弱信号（先确认再用）：
- 用户只丢了一份简历，没说目的 → 先问"你是想梳理方向、改简历，还是准备面试？"
- 用户说"想找工作"但很模糊 → 先问"你心里有目标方向吗？还是想让我帮你判断方向？"

---

## 工作流程

按这个顺序走，一步都不要跳：

### Step 1: 自我盘点（Background Intake）

用 AskUserQuestion（或在没有该工具时直接问）收集以下信息。**不要一次问完，分 2~3 轮，每轮 2~3 个问题**，否则用户会被"问卷感"劝退。

第一轮（必问）：
- 当前 / 最近一份工作的岗位、公司类型、年限
- 核心技能 3~5 个（关键词即可）
- 目标行业 / 目标方向（如果用户有）—— 没有也没关系，跳到 Step 2

第二轮（看情况问）：
- 期望薪资 range（用户不愿意说就跳过）
- 城市偏好 / 是否接受 remote
- 排除项（"不想做销售 / 不想加班 / 不接受出差"等）

第三轮（深度信号，仅在前两轮信息不足以画像时问）：
- 最有成就感的 1~2 个项目
- 最不喜欢做的事
- 5 年后的画面

如果用户上传了简历 .pdf / .docx，**先调用 pdf 或 docx skill 解析出文本**，再从中抽取以上信息，避免用户重复打字。

### Step 2: 推荐求职方向

基于 Step 1 的信息，生成 2~3 个候选方向。每个方向都要写清楚：

```
方向 N：<岗位名>（如：互联网产品经理 / 数据分析师 / 量化研究员）
- 匹配度：高 / 中 / 低（高=核心技能直接命中；中=需补 1~2 个关键技能；低=需要转岗叙事）
- 匹配理由：基于用户的 ___ 经验和 ___ 技能
- 缺口：用户还需要补 ___ 才能成为强候选人
- 典型雇主：<3~5 个具体公司或公司类型>
- 薪资带（仅供参考）：__k - __k（注明"市场行情，仅供参考，建议用户自行通过职级查询"）
```

**重要：不要只推荐"安全"的方向。** 如果用户技能允许，至少给一个"跳一跳能够到"的方向，并诚实标注缺口。

### Step 3: 生成岗位画像（Target Profile）

为用户**最终选定**的 1~2 个方向（让用户主动选），生成详细画像。模板在 `references/target_profile_template.md`，需要读取这个文件后再填充。

画像要包含：岗位职责典型描述、技能要求 must-have / nice-to-have、面试流程预期、对标公司列表（按 tier 分层）。

读取行业关键词库决定 must-have / nice-to-have：
- 互联网产品 / 运营 / PM → `references/keywords_internet.md`
- 技术 / 研发 / 数据 → `references/keywords_tech.md`
- 金融 / 咨询 / 商科 → `references/keywords_finance.md`
- 通用 / 跨行业 → `references/keywords_general.md`

### Step 4: 创建投递追踪表

调用 `scripts/init_tracker.py` 生成初始追踪表。脚本支持两种格式：

```bash
python scripts/init_tracker.py --format xlsx --output /path/to/tracker.xlsx
# 或
python scripts/init_tracker.py --format md --output /path/to/tracker.md
```

默认推荐 xlsx（用户可以排序、加 conditional formatting）。如果用户明确要求轻量，用 md。

追踪表的列结构（脚本里已经预设好，不要改）：
公司、岗位、来源（猎头/官网/内推/招聘网站）、JD 链接、投递日期、当前阶段（投递/笔试/一面/二面/HR 面/Offer/Reject/沉默）、下一步动作、Deadline、薪资范围、内推人、备注

### Step 5: 用 Artifact 做"求职看板"（可选但推荐）

如果当前环境里有 `mcp__cowork__create_artifact` 工具，主动提议："要不要我把这个追踪表做成一个可以每天打开看的看板？"

如果用户同意，创建一个 HTML artifact，从追踪表数据渲染：
- 顶部 KPI：投递总数 / 进入面试数 / Offer 数 / 待跟进数
- 中部表格：按"当前阶段"分组的 Kanban 视图
- 底部提醒：3 天没动静的公司、deadline 临近的任务

---

## 输出风格

- **结构化、可执行**，不要泛泛而谈"建议你多投简历"这种话
- 涉及薪资、行业判断时，**明确标注"市场参考、非承诺"**
- 推荐方向时不要谄媚（不要把所有用户都推向"高薪 AI 岗"），诚实评估匹配度
- 用户拒绝某个方向时不要劝，问清楚为什么然后调整

---

## 与其他 skill 的协作

- 用户选定方向后说"那帮我改简历" → 调用 `resume-builder`，把岗位画像传过去
- 用户说"那针对这家公司的 JD 改一下" → 调用 `jd-resume-tailor`
- 用户说"帮我准备面试" → 调用 `interview-prep`，把岗位画像传过去

输出"我已经把你的岗位画像存到 ___，下一步可以让我用 resume-builder 改简历"这样的衔接句，让 agent 在多步任务里能流转。

---

## 反模式（不要做）

- ❌ 一上来就问 8 个问题
- ❌ 不问用户偏好，直接推 5 个方向
- ❌ 不给追踪表，只在聊天里讲一通
- ❌ 把"运营 / 产品 / 项目经理"塞给所有文科背景用户
- ❌ 看到"AI / 大模型"就无脑推 LLM 岗，不评估实际技能匹配
