# Skill Scan

> cheat-on-skill 的核心。连 BOSS 直聘真实招聘数据 + 网页信号，按用户能力画像找「高薪 × 你学得动 × AI 增强」交集里的候选岗位。每个岗位给：薪资量级 / 需求热度 / 你的差距 / 可学性分 / 诚实学习周期，并过 AI 影响分类与反诈红线。触发词："帮我找岗位"/"找AI时代高薪工作"/"有什么我能学的高薪岗"/"skill scan"/"扫一遍招聘"。前置：需要 .skill-state.json（无则先路由到 skill-init）。

- **Type:** Skill
- **Install:** `agentstack add skill-xbuilderlab-cheat-on-skill-skill-scan`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [XBuilderLAB](https://agentstack.voostack.com/s/xbuilderlab)
- **Installs:** 0
- **Category:** [AI & ML](https://agentstack.voostack.com/c/ai-and-ml)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [XBuilderLAB](https://github.com/XBuilderLAB)
- **Source:** https://github.com/XBuilderLAB/cheat-on-skill/tree/main/skills/skill-scan

## Install

```sh
agentstack add skill-xbuilderlab-cheat-on-skill-skill-scan
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# /skill-scan — 高薪 × 可学 × AI 增强 的交集挖掘（核心）

## 核心方法（先读这条）
**不搜"AI 高薪职业 Top10"那类水文**——它们利益不中立，是卖课/培训机构的获客漏斗。
真正诚实的需求信号是 **BOSS 直聘的真实在招岗位**：某岗位在招、给得起价 = 有人真在花钱买这个能力；
岗位数涨=需求升，降=红海。再叠加你的能力画像，挑出"高薪 × 你学得动 × AI 时代仍要"三个圈的交集。

## 铁律
1. **主信源是真实招聘数据**（BOSS adapter + 招聘趋势），"职业推荐"水文不作依据。
2. **绝不凭记忆**。薪资量级、岗位热度、技能要求一律实时取（BOSS / 网页检索加年份）。
3. **每个岗位先过 AI 影响分类**（`ai-impact-taxonomy.md`）：替代型直接劝退，只推增强 / 新生。
4. **每个岗位按用户起点算可学性**（`learnability-rubric.md`），低于阈值不列为首选。
5. **按档位收敛**（`role-tiers.md`）：别给 S0 推够不着的算法岗，别给 S3 推标注。
6. **任何带"培训/内推/包就业"的机会过反诈**（`anti-scam-rubric.md`）。
7. **诚实标注 BOSS 数据边界**：薪资数字被字体混淆（▯ 占位），只拿到量级；精确值要用户手动看详情页。
8. **详情页只读需用户点名**：只读取用户明确选择的详情链接；用户可以从候选里选任意数量，也可以少选或不选。读取时保持低频顺序执行，只提取岗位标题、公司、薪资、地点/地址、JD/要求文本；不读取/保存 HR 信息，不点"立即沟通"，不做无选择的批量抓取。

## 流程

### Step 0 — 读上下文
- 读 `.skill-state.json` 拿画像 + **`profile.start_tier`**（无 → 路由 `skill-init`）。
- 读 `../../shared-references/role-tiers.md`（按档位分流）。
- 读 `../../shared-references/ai-impact-taxonomy.md`（方向闸门）。
- 读 `../../shared-references/learnability-rubric.md`（可学性打分）。
- 读 `../../shared-references/anti-scam-rubric.md`（反诈，用于培训/内推类）。
- 读 `lessons.md`（若存在）：用户过往复盘沉淀，优先参考。
- 任何写入 `found_at` / `found_at_full` 前，先用系统时间取当前时间：
```bash
date '+%Y-%m-%d %H:%M %Z %z'
```
`found_at` 写日期，`found_at_full` 写具体时间和时区，跟用户系统时区走（例：`2026-06-26 22:06 CST +0800`）。对用户展示时写成 `2026-06-26 22:06（本机时区 + UTC 偏移，如 中国标准时间 CST，UTC+8）`，不要写死成某个固定国家的时间。

### Step 1 — 按档位锁定搜索词
先按 `start_tier` 限定方向范围（role-tiers），再结合用户可迁移能力，列 3–6 个 BOSS 搜索关键词。
- S0 → `AI内容运营` `AIGC运营` `AI标注` `数字人运营` `AI客服`
- S1 → `AIGC运营` `AI营销` `Prompt工程` `AI设计` `AI视频`
- S2 → `AI应用开发` `LLM应用` `大模型应用` `AI工程` `Agent开发`
- S3 → `AI` `AI解决方案` `行业AI产品` `AI合规`
> 结合用户的 transferable 能力调词，别用模板硬套。把要搜的词先念给用户确认。

### Step 2 — 取真实招聘数据（BOSS adapter，human-in-the-loop）
用 `../../adapters/boss`。**这是半自动、需用户配合的，先把步骤告诉用户：**
```bash
cd ../../adapters/boss          # 相对 skill 目录；实际路径见安装位置
./launch-chrome.sh              # 起【有界面】Chrome，用户扫码登录 BOSS，弹滑块手动过
node diagnose-cdp.mjs 9222      # 可选：确认当前环境能读 Chrome 调试端口
node read-boss.mjs "AIGC运营" 100010000 9222 1 # 搜词读第 1 页列表 → JSON（城市码默认全国）
node read-boss-detail.mjs 9222 "https://www.zhipin.com/job_detail/..." # 用户明确选中后，只读选中的 JD
```
- 每个关键词跑一次，拿回 JSON（岗位名 / 薪资量级 / 公司 / 列表页标签 / 详情链接 / diagnostics）。列表页标签通常只够判断经验/学历/实习周期，完整技能要求仍需用户手动贴 JD。
- **薪资是 `▯▯-▯▯K` 量级**（BOSS 字体混淆，adapter 不破解）——位数结构泄露量级，够区分档位；要精确值让用户手动开 2–3 个详情页看。
- **JD 真实要求列表页拿不到**：先看列表页筛候选，给用户 2–5 条值得看的岗位；用户明确说"读取这几个 JD"后，才用 `read-boss-detail.mjs` 读取 1–3 个详情页。若详情读取失败，再让用户手动贴 JD。
- 若 `diagnostics.maybeNeedLogin`/`blocked`/`cardCount=0`：提示用户登录/过验证/重跑；选择器腐烂就把 diagnostics 发回校准。
- 若连接不上 `127.0.0.1:9222`：先跑 `node diagnose-cdp.mjs 9222`。若普通终端可读但 Codex/Claude 沙箱内不可读，说明需要非沙箱权限读取本机 Chrome 调试端口，不代表 adapter 选择器坏了。
- ⚠️ 低频、只读列表页，不翻页/不进详情/不私聊（反爬风控 + ToS + 反诈 A6）。
> 若用户当下不方便登录跑 adapter：退而用 WebSearch 搜" 招聘 要求 薪资 2026 / 行情报告"，但**明确标注这是二手转述、不如 BOSS 一手**。

### Step 2.5 — 逐页筛选节奏（最多 3 页）
不要一次性把 BOSS 搜索结果全读完。按下面节奏推进：
1. 读取当前关键词第 N 页列表（从第 1 页开始）。
2. 用用户画像 + 反诈 rubric 粗筛，向用户提供 2–5 条"值得打开 JD"的候选，并说明为什么；同时点名明显劝退项（如零经验高薪、提成、培训、获客、金融外呼）。
3. 每看完一页都提示用户可以调整筛选要求（如不要实习、只看深圳、排除销售/提成、薪资下限、只看全职、只看英文/海外方向）。若用户调整要求，后续页面按新要求筛。
4. 等用户明确选择后，调用 `read-boss-detail.mjs` 读取详情页。用户可以选择候选里的任意数量，也可以少选或不选；没有明确选择就不要读详情。一次选择较多时，顺序低频读取并在输出中分批整理，避免并发/高频触发风控。
5. 基于 JD 做差距分析和可学性初判。已经读过/用户选过的岗位，后续页面不再重复推荐，只在最终总结里统一回顾。
6. 用户完成第二轮选择并读完 JD 后，如果已经积累了足够多可比较岗位（通常 4–8 个 JD 或 2–3 个清晰方向），主动提示可以现在生成阶段报告/岗位报告；用户也可以选择继续看第 3 页。
7. 继续下一页，直到看完 3 页、用户要求停止、或已经找到足够强的 2–3 个候选方向。
8. 看完最多 3 页后，给用户一个阶段总结：已看页数、候选岗位、已读 JD、待读 JD、劝退模式、用户中途调整过的筛选要求、推荐下一步。

### Step 3 — 网页交叉验证 AI 影响与趋势
对每个候选岗位，按 `ai-impact-taxonomy.md` 判增强/新生/替代：
- 看 BOSS 同词岗位数量量级（涨/缩）。
- WebSearch（加年份）：` 招聘趋势 2026`、` 会不会被AI取代`、行业用工报告（只用利益中立来源）。
- **替代型直接标"劝退"**，即使现在还有岗。

### Step 4 — 对每个候选岗位算可学性（核心增量）
按 `learnability-rubric.md` 的 L1–L5 打分（0–10），结合 JD 要求 vs 用户 transferable：
- 列**你的差距**（缺哪几块，逐条；哪些可迁移）。
- 给 **可学性分 + 判定**（高可学/中等/吃力/劝退）。
- 给**诚实周期**：以用户每周 N 小时算，大概几个月到能投简历。

### Step 5 — 反诈过滤（仅对培训/内推/外包类）
若某条路径牵涉付费培训/内推/包就业，过 `anti-scam-rubric.md`，标判定。岗位本身（公司直招）一般不触红线，但若公司查无此人/JD 零门槛高薪等命中 B 信号，也如实标。

### Step 6 — 输出（每个候选岗位用统一格式）
```
岗位：
AI 影响：增强 ⬆️ / 新生 🆕 / 替代 ⬇️
薪资量级：（精确值需手动看详情页）
需求热度：
你的差距：
可学性：x/10（L1–L5 一句话）
判定：✅ 高可学 / ⚠️ 中等 / ⛔ 吃力 / ❌ 劝退
诚实周期：
```
按可学性 × 薪资综合排序，**首推 2–3 个交集岗位**，劝退的也列出来并说明为什么（避免用户自己踩）。

### Step 7 — 落盘
把候选岗位写入 `.skill-state.json` 的 `candidate_roles[]`（含 ai_impact / salary_band / demand / gap / learnability_score / learnability_verdict / honest_timeline / scam_verdict / found_at=今天日期 / found_at_full=具体时间和时区 / status=candidate）。
提示用户：**"我选 XX 这个岗位做学习计划"** → 走 `skill-plan`。

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [XBuilderLAB](https://github.com/XBuilderLAB)
- **Source:** [XBuilderLAB/cheat-on-skill](https://github.com/XBuilderLAB/cheat-on-skill)
- **License:** MIT

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-xbuilderlab-cheat-on-skill-skill-scan
- Seller: https://agentstack.voostack.com/s/xbuilderlab
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
