效率与协作 job-searchweb-scrapingcareercli-toolsdeduplicationportal-searchlinkedinbun

Job Scraper — 本地运行的职位搜寻技能

在你的机器上自动搜索多个招聘门户网站的新职位,去重后按匹配度排序呈现,让职位搜寻不再靠手动刷站。

FollowSkills 评估 · FSRS-2.0
谨慎使用
54/ 100 五分制 2.7 / 5
1 2 3 4 5 6
1信任安全16 / 25 · 3.2/5

权限清单明确限定(bun 运行已安装 CLI、job_key.py、WebFetch/WebSearch),健康检查只能编辑 enabled 开关且需用户确认,Step 4.5 明确禁止抓取 LinkedIn 人员页,危险请求有边界;SECURITY.md 与 CI security-guards 支持最小权限与数据边界声明。扣分:指令级防御非沙箱(文档自认),代理会向多个海外门户发起网络请求,写入 seen_jobs./tracker 无显式回滚机制,发布者未经验证。未达满分。

2可靠稳定9 / 20 · 2.3/5

指令高度自洽:bun 不可用有 WebSearch 降级、CLI 失败记录后继续、客户端日期兜底过滤、URL 有效性规则、closed-at-source 检测等失败路径详尽;配套 CLI 有 fixture 测试。扣分:SKILL.md 编排本身为静态阅读未经执行复现,依赖 search-queries.md 中大量占位符需用户正确配置,多代理并行与跨文件状态一致性无法在静态下验证。

3适用触发8 / 15 · 2.7/5

触发词、可选参数(focus/broad/health)明确,场景清晰,模板化支持本地化门户。扣分:核心搜索依赖 LinkedIn/Google/WebSearch 等海外服务,对中国大陆网络可达性差;语言范围由 CLAUDE.md 配置但仓库本身无中文支持声明;边界(非职位搜索输入)未显式声明。

4规范维护11 / 15 · 3.7/5

文档分层清晰(SKILL.md + search-queries.md),MIT 许可、CI 版本守卫(check_framework_version)、上游更新工具与安全报告渠道齐全,已知限制披露充分。扣分:skill 本身无独立版本号/变更日志,依赖外部约定(CLAUDE.md、/rank 等)的关系需跨文件推断,维护责任高度依赖单一作者。

5有效结果6 / 15 · 2.0/5

去重、状态持久化、健康检查、质量兜底等设计显著高于手写 grep 的边际价值,输出格式明确。扣分:静态评审无法验证实际抓取成功率;大量初始配置(profile、queries、门户 CLI 安装)意味着开箱价值有限,README 的个人成效属作者自述。

6证据核验4 / 10 · 2.0/5

有 CI 工作流、CLI fixture/mock 测试、SECURITY.md 与引用的具体案例(如 freehire 过期职位事件),可审计材料充分。扣分:skill 编排关键路径(搜索→去重→呈现)无已提交的针对性测试,无第三方独立复现证据,静态评审上限即为 5,扣至 4。

证据充分度: 评估于 2026年9月9日 审查版本 8c81edc330b9
上游仓库在本次评估后已有新提交;当前评分仍对应所示审查版本,可能尚未覆盖最新改动。
使用前请注意
  • 本评分为静态源码评审,未执行任何代码;实际抓取成功率与跨门户行为未经验证。
  • 核心搜索依赖 LinkedIn、Google/WebSearch 等海外服务,在中国大陆网络环境下可能不可达或需代理。
  • 使用前必须完成 search-queries.md 与个人 profile 的占位符配置,否则查询会按模板字面量执行。
  • 防御为指令级而非沙箱:对不信任的职位板,发送任何内容前请检查代理抓取与写入的文件。
  • 发布者未经过 FollowSkills 企业注册表验证;仓库含 9 个 SKILL.md,本次仅评审 job-scraper 这一个。
查看完整评分方法 →

这个 Skill 能做什么,适合哪些场景?

Job Scraper 是 ai-job-search 框架中负责职位搜寻的技能(.claude/skills/job-scraper)。它通过已安装的各招聘门户网站命令行工具(CLI)搜索与你个人档案匹配的新职位,Portal 没有对应 CLI 时回退到网络搜索;跨运行去重(对照已见职位文件和申请追踪表),并对每条新职位给出高/中/低的快速匹配评估。运行结束后生成按匹配度排序的职位表格,并为高、中匹配职位生成 LinkedIn 推荐联系人搜索链接。该框架由一位地球物理学家在求职过程中构建并自用验证(作者自称凭此获得 AI 工程师职位),整体面向个人求职者。注意:仓库自带六个门户 CLI,其中四个针对丹麦市场,其他国家用户需要用仓库提供的 /add-portal 命令生成自己的门户技能。

读取 search-queries.md 中的搜索策略和 seen_jobs. / job_search_tracker.csv 的历史状态;优先调用 .agents/skills/ 下各门户 CLI(用 Bun 运行,结果限定最近 14 天、每次约 20 条,多门户并行),CLI 不可用时回退到 WebSearch/WebFetch;对值得深入的结果调用门户的 detail 命令提取关键要求、申请截止日期和描述摘要,检测已下架职位并标记为 expired;合并同一公司的跨城市批量发帖(mass-posting)为一条并标注;按高/中/低给出快速匹配评估,并叠加语言门槛覆盖规则;用 tools/job_key.py 生成规范去重键,把所有抓取到的职位写入 seen_jobs.(含 portal、source、posted_date 等字段);为高、中匹配职位生成两类 LinkedIn 人员搜索链接(招聘官路径和团队同侪路径),只生成链接、不抓取人脉页面;执行有限的门户健康检查(每门户最多一次探测、一次重试),输出 degraded/broken/inconclusive 结论;最后以表格呈现新职位、标出禁用门户与回退门户。

  1. 每周想主动搜新职位的求职者,替代逐个打开 Jobindex、Jobnet、LinkedIn 等网站手动搜索
  2. 已在使用 ai-job-search 框架的用户,希望把抓到的新职位自动去重并直接接入 /rank 和 /apply 流程
  3. 针对特定方向定向搜寻的用户,例如输入 '/scrape data science' 或 '/scrape broad' 调整搜索范围
  4. 需要了解某次搜索是否命中职位但担心数据陈旧的用户,可用 /scrape health 单独探测各门户 CLI 是否已失效
  5. 希望给自己找内推机会的申请者,使用技能生成的 LinkedIn 招聘官/同侪搜索链接主动建立联系

这个 Skill 有哪些优点和局限?

优点
  • 纯本地运行,框架本身免费开源(MIT 许可),无订阅或 API 费用
  • 跨运行持久去重(seen_jobs. + 申请追踪表 + 规范化去重键),避免重复推销同一职位
  • 健壮的工程设计:门户启停开关、CLI 失败自动回退 WebSearch、有界的健康检查能发现静默失效的解析器
  • 对数据诚实:禁止捏造职位、记录 posted_date 和 source 以便事后审计幽灵职位、批量发帖只提示不指控
  • 内推链接步骤刻意零依赖——只生成 LinkedIn 搜索链接,不抓取、不需要凭据
局限
  • 内置的四个丹麦门户 CLI(Jobbank、Jobdanmark、Jobindex、Jobnet)只覆盖丹麦市场,其他地区必须自行用 /add-portal 生成并维护门户技能
  • 门户 CLI 依赖目标网站结构,网站改版会导致解析器静默失效,需要健康检查和手动修复
  • linkedin-search 基于非官方公开端点,自动化访问违反 LinkedIn 服务条款,只能个人低频使用,存在被封锁的风险
  • 深度依赖 Claude Code 生态:allowed-tools、Agent、AskUserQuestion、/add-portal 等 Claude Code 机制,迁移到其他代理工具需要适配
  • 快速匹配评估只是粗略信号,完整评估依赖框架中另一个技能(/rank 和 04-job-evaluation.md),单独使用本技能判断力有限

如何安装这个 Skill?

该技能是 MadsLorentzen/ai-job-search 仓库(MIT 许可)的一部分,随整个框架安装:1) 用 gh repo fork MadsLorentzen/ai-job-search --clone fork 并克隆仓库;2) 在 .agents/skills/ 下的各门户 CLI 目录运行 bun install(jobbank-search、jobdanmark-search、jobindex-search、jobnet-search、linkedin-search、freehire-search;linkedin-search 和 freehire-search 无运行时依赖,可跳过);3) 前置条件:Claude Code CLI、Python 3.10+、Bun;4) 运行 /setup 填写个人档案。技能本身位于 .claude/skills/job-scraper/,无需单独安装。

如何使用这个 Skill?

在 Claude Code 中运行 /scrape,或说 'Find new jobs'、'Any new positions?'。可选参数:'/scrape data science'(聚焦某类查询)、'/scrape broad'(运行所有搜索类别)、'/scrape health'(只做门户健康检查,如 /scrape health jobnet 探测单个门户)。搜索完成后技能会以表格呈现按匹配度排序的新职位;选择某个编号可进入 job-application-assistant 技能做完整评估(/apply);新职位较多(约 8 条以上)时建议改用 /rank 批量评分。

这个 Skill 与同类方案有什么区别?

README 中将整个框架与'大多数 LaTeX 简历模板'对比,指出后者缺乏 PDF 编译检查,但这是针对 /apply 的说法。就职位搜寻本身而言,常见替代方案是手动浏览各招聘网站或使用 LinkedIn 内置的职位提醒——本技能的差异点在于多门户并行搜索、本地去重和与后续申请流程的衔接,但覆盖面取决于你所在市场是否有可用的门户 CLI。

常见问题

使用它需要付费吗?
不需要。仓库为 MIT 许可的开源项目,作者声明没有任何关联的加密货币、代币或付费赞助计划(声称有的一律是骗局)。支持方式只有 Ko-fi 打赏和在 GitHub 上贡献。搜索本身调用门户的公开接口,无需 API 密钥。
我不在丹麦,能用吗?
核心工作流与国家无关,linkedin-search 和 freehire-search 两个门户技能也是跨市场的(LinkedIn 接受显式位置参数,freehire 是多市场技术职位聚合器)。但 Jobbank、Jobdanmark、Jobindex、Jobnet 四个 CLI 专属于丹麦市场;其他国家的门户需要用仓库的 /add-portal 命令针对你的本地招聘网站生成技能,且需要 Bun 环境。
搜索结果会不会是过期的'幽灵职位'?
技能对此有明确防御:结果限定最近 14 天,写入 posted_date 便于审计新旧;LinkedIn 的 detail 命令返回 isActive=false 时标记为 expired 而非静默丢弃;WebSearch 回退来源会明确标注(回退索引可能数周未更新)。但门户本身索引滞后的问题无法完全消除,README 也建议对不明来源的招聘网站人工核验抓取内容。
它需要哪些权限和运行环境?
需要 Claude Code CLI、Python 3.10+ 和 Bun;技能声明的允许工具包括文件读写、Bash(bun 命令和门户 CLI)、WebFetch、WebSearch、Agent 和 AskUserQuestion。它会读写本地状态文件(seen_jobs.、job_search_tracker.csv)。推荐人联系环节只生成链接,不自动抓取 LinkedIn 人员页面。

同仓库的其他 Skills

均来自 MadsLorentzen/ai-job-search

效率与协作

LinkedIn 职位搜索技能

无需登录、无需 API 密钥、零运行时依赖,只靠 Bun 就能在任何国家或远程市场直接搜索 LinkedIn 公开职位列表。

效率与协作

Jobindex 丹麦职位搜索

直接查询 Jobindex.dk 的公开 API,在 Claude Code 中实时搜索丹麦全行业的职位信息,无需任何账号或密钥。

效率与协作

freehire 职位搜索技能

通过 freehire.me 公共聚合 API 搜索多国技术职位,无需任何密钥或登录,直接在本地运行。

效率与协作

丹麦职位搜索(Jobdanmark Search)

一条命令直连 Jobdanmark.dk 公共 API,无需登录即可搜索丹麦全境约 15,000+ 条在职职位,按关键词、城市、类别和雇佣类型精确筛选。

效率与协作

Jobnet-Search:丹麦官方求职门户检索技能

直接调用 Jobnet.dk 公共 API,在本机搜索丹麦官方政府求职门户上的两万余个在招职位,无需任何账号或密钥。

开发与工程

Jobbank 搜索技能

直接在本地搜索丹麦 Akademikernes Jobbank 的实时职位,覆盖学术、高学历岗位的按关键词与多维度筛选查询。

效率与协作

Upskill 技能差距分析与学习计划

对比你追踪的职位与个人档案,找出技能差距,生成带真实网络学习资源和优先顺序的学习计划。

效率与协作

求职申请助手(Job Application Assistant)

在本地运行的 AI 求职流水线:评估职位匹配度、定制 LaTeX 简历、撰写求职信、准备面试,全程由 Claude Code 驱动。

相关 Skills