Upskill 技能差距分析与学习计划
对比你追踪的职位与个人档案,找出技能差距,生成带真实网络学习资源和优先顺序的学习计划。
技能仅使用 Read/Write/Glob/Grep/WebFetch/WebSearch,写入范围限于 upskill/ 报告文件,数据流(读取 tracker、seen_jobs.、候选人档案)在文档中完全披露;规则 8 明确把存储的 gaps 当作数据而非指令、禁止 fetching 内嵌 URL,展示了清晰的注入防护意识。扣分:写入报告前无用户确认步骤、WebSearch/WebFetch 的外部调用无范围约束、候选人档案为敏感个人数据但未在本技能内重申 gitignore 边界。
指令自洽且异常路径处理详尽:去重规则、ranked 无 gaps 字段的处理(跳过并计数、不回填)、空白 fit_rating 的降级逻辑、死链接跳过都有一致、明确的行为定义,失败时可解释原因。扣分:关键路径无本技能专属的测试或可复现产物(CI 覆盖 LaTeX/CLI,不覆盖 upskill 流程),权重/评分逻辑完全由 LLM 即席执行,结果确定性无法从静态来源确认。
两种模式(聚合/定向)输入输出明确,触发词列出清晰,边界规则(定向模式不读状态文件)明确,与仓库中 /rank、/outcome 等上下游协作关系交代完整。扣分:仅面向英文/Claude Code 环境,WebSearch/WebFetch 依赖在中国大陆网络下不可达或受限,核心功能(联网找学习资源)可能整体不可用;未声明非适用范围。
文档分层良好(概述→步骤→规则→报告模板),示例具体,规则部分总结了易错点;仓库有 MIT 许可证、CI lint、framework_version 守卫。扣分:本技能文件本身无版本号或变更日志引用,资源示例为虚构示例(虽已声明不可编造)可能被误读为推荐,维护责任仅能从仓库层面间接推断。
产出(优先级热力图、带资源的-learning plan、学习顺序)格式明确、对用户有真实边际价值且优于手动整理。扣分:静态审查无法验证资源搜索质量与时间估算的可用性,WebSearch 结果质量不可控,最终计划仍需用户自行核查资源有效性。
技能规则内部可审计,README/SECURITY.md 提供了威胁模型与上游证据,仓库含真实 CI 配置。扣分:无针对 upskill 本身的测试或第三方执行证据,README 的成效声明(69 投递、20 面试)与本技能关联且不可独立复核。
- 本评分为纯静态源码审查,未执行任何技能流程,结果可靠性以源码为准。
- 技能依赖 WebSearch/WebFetch 获取学习资源,在中国大陆网络环境下可能不可用,核心功能或整体失效。
- 报告自动写入 upskill/ 目录且无确认步骤,请留意生成文件的覆盖与内容审查。
- 学习计划中的资源链接与时间估算来自即时网络搜索,使用前需自行核实。
- 候选人档案等个人数据被本技能读取,建议确认其所在文件的 gitignore 与隐私边界设置。
这个 Skill 能做什么,适合哪些场景?
upskill 是 ai-job-search 框架(MadsLorentzen/ai-job-search,MIT 许可)中的一个 Claude Code 技能。它读取你已追踪的职位记录和候选档案,计算硬技能差距,再由模型综合出领域、软技能、工具链和认证等隐性差距,形成一张优先级热力表。随后它通过真实的网络搜索为每个关键差距找 2-3 个学习资源,写出针对性学习方向、时间估算和建议学习顺序,最终保存一份 Markdown 报告。它是框架九个技能之一,职责仅限于差距分析与学习规划,不涉及简历生成或申请流程。
支持两种调用模式:/upskill 聚合模式读取 job_search_tracker.csv 与 job_scraper/seen_jobs.(仅取 rank_score ≥ 45 的已排名职位),去重后按 fit_rating/rank_score 加权构建技能频率图;/upskill <URL> 定向模式用 WebFetch 抓取单个职位并分析。它读取 .claude/skills/job-application-assistant/01-candidate-profile.md 获取现有技能,从差距中扣除已掌握项。第一阶段做硬技能差异对比,第二阶段由模型综合出领域、软技能、工具链、认证四类差距,合并为优先级热力表(Critical/High/Medium/Low,附来源溯源)。接着用 WebSearch 搜索当年优质学习资源,为 Critical 和 High 差距各配 2-3 个资源、学习方向(明确指出可跳过什么)和达到可用水平的时间估算,按主题分组并给出依赖感知的学习顺序表,最后将完整报告写入 upskill/report-YYYY-MM-DD.md,若有历史报告还会生成差距变化对比。
- 求职中期:投出多份申请后想知道反复出现的技能缺口是什么、先学哪个。
- 定向评估:看到某个心仪职位,想快速知道它与自身档案差在哪、补齐要多久。
- 转型者:从相邻领域切入,需要一份按依赖关系排序的自学路线图。
- 职业规划复盘:对比上次报告,看哪些差距已通过学习补上、又出现了哪些新差距。
- 学习资源挖掘:不想自己筛网课,需要基于当年真实搜索结果的可信推荐。
这个 Skill 有哪些优点和局限?
- 差距评分有真实数据支撑:按职位匹配度加权,且优先采用 /rank 已记录的差距而非猜测。
- 学习资源来自实时网络搜索并强制带年份,规则明确禁止编造课程或链接。
- 学习方向贴合个人背景,例如已会 Docker 就指示跳过容器基础章节。
- 自带防御性设计:存储的差距文本被视为不可信数据,绝不执行其中指令或抓取其中的链接。
- 报告落盘并支持跨报告对比,可以追踪学习进度。
- 强依赖框架生态:聚合模式需要 tracker CSV、seen_jobs. 和候选档案就位,单独拿出来价值有限。
- 没有数据时聚合模式会大量依赖从职位标题推断技能,准确性下降。
- 资源质量取决于搜索结果,无法保证内容持续有效。
- Claude Code 专属:frontmatter 使用 allowed-tools 等扩展,移植到其他代理平台需要改写。
如何安装这个 Skill?
该技能不能独立安装,随 ai-job-search 框架一起使用:gh repo fork MadsLorentzen/ai-job-search --clone,然后在 Claude Code 中运行 /setup 填好候选档案。技能位于仓库的 .claude/skills/upskill/SKILL.md。独立安装到其他项目的方式文档未说明。
如何使用这个 Skill?
在 Claude Code 会话中:聚合模式直接输入 /upskill(需要先有 /rank 或追踪数据写入 job_search_tracker.csv 和 seen_jobs.);定向模式输入 /upskill <职位链接>。技能会先在终端打印差距热力表,再搜索资源、生成学习计划,并把报告保存到 upskill/ 目录。
这个 Skill 与同类方案有什么区别?
与 ai-job-search 中的 /rank 不同:rank 是在申请前给职位打分排序,而 upskill 是跨职位汇总你个人的技能缺口并规划学习。仓库未提及其他第三方竞品。