这个 Skill 能做什么,适合哪些场景?
freehire-search 是 ai-job-search 仓库中的一个职位门户搜索技能,通过 freehire.me 聚合器的公开 JSON API 查询实时技术职位。该聚合器把来自约 50 个 ATS 平台的职位归一化为统一结构,因此一次搜索即可覆盖多个国家和远程市场。技能本身零运行时依赖,只需 Bun 即可运行。它采用分面过滤(技能、类别、资历、地区),但分面字典以技术岗位为主,因此触发范围限定在软件/数据/工程/DevOps 类职位。它是仓库中一个国家无关的示例,展示了如何接入结构化 API 而非抓取 HTML。
- 调用 freehire.me 公开的 /api/v1/agent/jobs/search 端点,按关键词搜索技术职位,结果自带完整职位描述,无需逐条追加请求
- 通过结构化分面过滤职位:--region、--country、--city、--seniority、--category、--skill、--company、--remote、--jobage 等
- 用 detail 命令按 slug(或完整 URL)查询单个职位的完整详情,包括已关闭的职位
- 以 / table / plain 三种格式输出结果,JSON 默认且唯一携带完整描述
- 遇到 429/5xx 自动指数退避重试;API 不可达时以非零退出码和明确错误信息优雅失败
- 支持 FREEHIRE_API_URL 环境变量,可一行切换到自托管的 freehire 实例
- 想在多个国家市场同时找远程开发者职位的求职者,用一条命令替代逐个访问各招聘网站
- 正在搭建自己求职工作流的 Claude Code 用户,希望 /scrape 里多一个无需密钥、结果结构化的技术职位来源
- 想筛选特定资历(如 senior)、类别(如 devops)、技能(如 go、kubernetes)的工程师
- 关注某个国家近两周新发布职位的人,用 --country DE --jobage 14 快速获取
- 拿到别人分享的 freehire 职位链接(或已下架职位)想读取完整描述的人
- 需要非技术类(如市场营销、行政、医疗)职位完整覆盖的用户——freehire 的分面过滤字典目前以技术岗位为主,非技术覆盖仍在成熟中
- 需要 LinkedIn 或丹麦本地招聘网站(Jobindex、Jobnet 等)的搜索——那些由仓库中各自独立的兄弟技能负责
- 需要 API 稳定性保障(SLA)的自动化生产系统——freehire.me 是个人维护的尽力而为服务
如何安装这个 Skill?
- 核心功能完全依赖海外托管服务 freehire.me(个人项目、无 SLA),中国大陆可达性未声明,服务中断时该数据源即不可用。
- 本评分仅为静态源码审查,未执行任何代码;live API 行为(429 重试、agent 端点、include_description 参数)均基于作者陈述。
- 非技术类职位覆盖尚不成熟,触发应限定于技术/工程类职位,否则过滤结果不可靠。
- 免费职位搜索结果来自聚合抓取,职位信息可能不完整或过期(文档已披露 region/country 可能无法解析),使用前应核对原始招聘页。
- 发布者未经验证;CLI 对外发起网络请求,请自行确认所在网络环境对其可达。
- Shell / 命令行
- 网络访问
- 本地文件系统
Bun (zero runtime dependencies beyond bun)
此技能随 MadsLorentzen/ai-job-search 仓库整体分发(fork 该仓库即可获得):
gh repo fork MadsLorentzen/ai-job-search --clone
cd ai-job-search
cd .agents/skills/freehire-search/cli && bun install注意:该技能零运行时依赖,bun install 仅拉取 TypeScript 开发类型,可跳过。
如何使用这个 Skill?
安装后,把下面任意一句发给 Agent 即可触发:
- 帮我搜一下德国最近两周发布的 DevOps 职位(等价于 --category devops --country DE --jobage 14)
- 找出欧盟范围内完全远程的 React 开发岗位,用表格展示
- 查一下资深后端工程师职位,每条给出完整职位描述
- 查询这个 freehire 职位的详情:golang-zensar-2bxu6dxm
技能通过触发短语或直接运行 CLI 使用(allowed-tools 为 Bash 权限语法,属 Claude Code 风格)。搜索:
bun run .agents/skills/freehire-search/cli/src/cli.ts search -q "backend engineer" --seniority senior --limit 10 --format table查询单个职位详情:
bun run .agents/skills/freehire-search/cli/src/cli.ts detail golang-zensar-2bxu6dxm --format plain要点:搜索结果已含完整描述,不要对每条搜索结果循环调用 detail;地理过滤是分面而非自由文本,先用 /api/v1/jobs/facets 查看某市场的真实取值,不要凭空编造分面值;用 --no-description 做轻量发现,再用 detail 补取正文;--region none 可匹配地区未解析的职位。
这个 Skill 有哪些优点和局限?
- 无需注册、无需 API 密钥,零运行时依赖,仅凭 Bun 即可运行
- 约 50 个 ATS 平台聚合为统一 schema,一个技能覆盖多国市场与远程职位
- 搜索结果直接携带完整职位描述,避免逐条抓取
- 后端 freehire 本身 MIT 开源且可自托管,切换只需一行环境变量
- 错误处理健壮:自动重试 429/5xx,故障时优雅退出而非破坏整个工作流
- 依赖第三方托管服务 freehire.me,属个人项目的尽力而为服务,无正式 SLA
- 分面过滤(技能/类别/资历字典)目前以技术岗位为主,不适合非技术职位
- 分面数据可能不完整:地区/国家未解析的职位会被 --region 过滤静默排除
- 自托管完整镜像(数百万条职位)资源消耗大,实际仍多依赖托管 API
- 仅做搜索和详情查询,刻意不涉及需要密钥的申请/收藏跟踪功能
这个 Skill 与同类方案有什么区别?
与相关 Skills 并排比较;分数均按同一 FSRS 标准得出。
| Skill | FS 评分 | Star 数 | 最近更新 | License |
|---|---|---|---|---|
| FreeHire 技术职位搜索技能 本页 | 63 · 推荐 | ★ 47k | 17 天前 | MIT |
| Jobbank 搜索技能 | 57 · 谨慎使用 | ★ 47k | 17 天前 | MIT |
| Codex CLI 构建器 ✓ OpenAI · 官方 | 55 · 谨慎使用 | ★ 28k | 4 个月前 | — |
| 稳定接口设计指南 | 50 · 谨慎使用 | ★ 107k | 12 天前 | MIT |
| Node Modules Inspector 依赖审计技能 | 67 · 推荐 | ★ 3k | 1 个月前 | MIT |
仓库内同类技能:与 linkedin-search 相比,本技能走结构化 JSON API 而非抓取 HTML,结果带技能/资历/类别分面,地理过滤是结构化分面(--region/--country)而非自由文本 --location;与 jobindex-search 等四个丹麦门户技能相比,本技能国家无关、开箱即可用于任意市场。丹麦技能在本仓库中更多是模式演示。
FollowSkills 如何评估这个 Skill?
代码仅通过公开无鉴权的 GET 请求读取 freehire.me API,零运行时依赖,Bash 权限限定为单一 CLI 路径,无凭据处理、无写操作、无隐蔽数据流;错误路径清晰、可降级,还提供 FREEHIRE_API_URL 可替换数据源。扣分:行为是外部网络请求,依赖第三方托管服务(无 SLA),静态审查无法验证服务端行为,无显式回滚/隔离机制。
CLI 代码自洽,参数校验严格(拒绝未知 flag、拒绝小数/0 的数值),错误统一输出 stderr JSON 且退出码 1;仓库附带离线 mock 测试套件覆盖 flag 校验、搜索/详情路径与 404/网络失败分支,CI 声明运行 typecheck 与 mock 测试。扣分:静态审查未执行,测试经由截断的 CI 文件不能完全确认对本 skill 生效;真实 API 行为(429 重试、agent 端点)未经独立复现。
触发词明确、范围边界清晰(限定技术类职位,并诚实声明非技术覆盖不成熟),输入/输出/部分数据语义均有文档。扣分:无中文支持说明;核心功能完全依赖海外服务 freehire.me,在中国大陆的可达性未声明、无镜像保障,属于环境适配的实质风险。
SKILL.md 分层清晰(范围、依赖、命令、示例、输出格式、部分数据语义),有 README、package.、版本号 1.0.0、MIT 许可;自我依赖风险(best-effort 无 SLA)如实披露。扣分:无独立 CHANGELOG,维护责任与更新路径依赖仓库整体治理而非本 skill 明确声明,发布者身份未经验证。
宣称的核心任务(跨市场技术职位搜索、单帖详情)路径完整、输出结构化且可直接使用,相对手工浏览有明确边际价值,并针对 agent 上下文做了 token 成本优化(--no-description)。扣分:静态审查未执行,无第三方代表性输出验证;有效性依赖一个无 SLA 的个人托管服务的持续可用。
仓库包含可审计的一手材料:源码、离线 mock 测试、CI 工作流、明确标注的验证日期注释(如 2026-08-19 的 live API 行为)。扣分:静态模式无法独立复现结论,无多种独立证据来源交叉印证,作者对 API 行为的'已验证'声明仅可采信为作者陈述。
点击维度查看打分理由
证据充分度:低 — 主要依赖静态检查、作者材料或有限演示;适合发现线索,不适合做高风险决策。
查看完整评分方法 →