Skip to main content
ClaudeWave
Skill177 repo starsupdated 2mo ago

skill-scan

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

Install in Claude Code
Copy
git clone --depth 1 https://github.com/XBuilderLAB/cheat-on-skill /tmp/skill-scan && cp -r /tmp/skill-scan/skills/skill-scan ~/.claude/skills/skill-scan
Then start a new Claude Code session; the skill loads automatically.

SKILL.md

# /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 一句话)
判定:✅ 高可学 / ⚠️ 中等 / ⛔ 吃力 / ❌ 劝退
诚实周期:<以每周 N 小时算,几个月到能投简历>
```
按可学性 × 薪资综合排序,**首推 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`。