mcpbeat

Skill Scan

xbuilderlab/skill-scan

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

2k tokens
context cost
the whole folder, loaded on every use
1
files
instructions only
0
copies elsewhere
how many repositories repackaged it
157
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/XBuilderLAB/cheat-on-skill --skill skill-scan

The instruction itself

10 sections, as written by the author

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

核心方法(先读这条)

不搜"AI 高薪职业 Top10"那类水文——它们利益不中立,是卖课/培训机构的获客漏斗。

真正诚实的需求信号是 BOSS 直聘的真实在招岗位:某岗位在招、给得起价 = 有人真在花钱买这个能力;

岗位数涨=需求升,降=红海。再叠加你的能力画像,挑出"高薪 × 你学得动 × AI 时代仍要"三个圈的交集。

铁律

  • 主信源是真实招聘数据(BOSS adapter + 招聘趋势),"职业推荐"水文不作依据。
  • 绝不凭记忆。薪资量级、岗位热度、技能要求一律实时取(BOSS / 网页检索加年份)。
  • 每个岗位先过 AI 影响分类ai-impact-taxonomy.md):替代型直接劝退,只推增强 / 新生。
  • 每个岗位按用户起点算可学性learnability-rubric.md),低于阈值不列为首选。
  • 按档位收敛role-tiers.md):别给 S0 推够不着的算法岗,别给 S3 推标注。
  • 任何带"培训/内推/包就业"的机会过反诈anti-scam-rubric.md)。
  • 诚实标注 BOSS 数据边界:薪资数字被字体混淆(▯ 占位),只拿到量级;精确值要用户手动看详情页。
  • 详情页只读需用户点名:只读取用户明确选择的详情链接;用户可以从候选里选任意数量,也可以少选或不选。读取时保持低频顺序执行,只提取岗位标题、公司、薪资、地点/地址、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 前,先用系统时间取当前时间:
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这是半自动、需用户配合的,先把步骤告诉用户:

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 搜索结果全读完。按下面节奏推进:

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

How to use it

Copy the folder

Take xbuilderlab/skill-scan from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.