Jobnet-Search:丹麦官方求职门户检索技能
直接调用 Jobnet.dk 公共 API,在本机搜索丹麦官方政府求职门户上的两万余个在招职位,无需任何账号或密钥。
仅读取公开 jobnet.dk/bff API,无凭证、无写入、无外部副作用;默认 enabled: false(opt-in),allowed-tools 限定为单条 CLI 命令;detail 显式传 incrementViews=false 避免污染浏览量;SECURITY.md 阐明威胁模型。扣分项:使用伪造的 Mozilla User-Agent,发布者身份未经验证,无独立回滚/隔离机制,外部 API 数据流依赖运行时信任。
代码自洽:zod 校验、UNKNOWN_FLAG 防静默过滤、1900-01-01 哨兵日期归一化、指数退避重试、JSON stderr 错误码、外链广告 404 回退。扣分项:本 CLI 未见提交的测试文件(CI 仅在存在时运行 bun test),静态审查无法验证关键路径可复现,故按锚点封顶于 10 以下。
SKILL.md 声明详尽的触发词表、适用场景(丹麦求职)、边界(suggestions 对英文词可能返回空、不合并 region 与 postal-code、detail 404 回退),语义触发精度高。扣分项:功能完全依赖海外 jobnet.dk 的可达性,未声明对中国大陆网络的可用性;目标用户明确限定丹麦市场,适用面窄。
文档分层良好(SKILL.md 渐进披露 + CLI README 详细端点/响应形状/错误处理),MIT 许可、版本号、已知限制均有披露,维护路径(SECURITY.md、CI)可见。扣分项:无 changelog,SKILL.md 版本 1.0.0 与 cli.ts 内部版本 0.1.0 不一致,无独立测试套件佐证维护质量。
search→detail 工作流、三种输出格式、示例与分页说明齐备,合理覆盖真实求职检索需求且优于手工浏览门户。扣分项:静态审查未执行,无代表性输出的直接可用性证据,价值声明(21,000+ 职位)未验证,按锚点封顶于 7。
响应形状、端点、错误码均文档化,代码与文档相互印证,CI 含类型检查与安全守卫。扣分项:无本 skill 的提交测试文件,无第三方执行证据,文档示例响应为作者自述,静态审查封顶于 5 以下。
- skill 完全依赖 jobnet.dk 的海外可达性,未声明对中国大陆网络的可用性,使用前请先验证连通性。
- CLI 使用伪造的 Mozilla User-Agent 访问政府门户 API,可能违反该门户的使用预期,请自行评估合规风险。
- 本 skill 默认关闭(opt-in),仅面向丹麦求职市场;英文关键词在 suggestions 中可能返回空结果。
- 静态审查未执行任何代码:jobnet-search CLI 未见提交的测试套件,关键路径可靠性未经独立验证。
- 仓库内 SKILL.md 版本(1.0.0)与 cli.ts 内部版本(0.1.0)不一致,升级时请以实际代码为准。
这个 Skill 能做什么,适合哪些场景?
这是 ai-job-search 仓库中 9 个技能之一,专门对接丹麦政府官方求职门户 Jobnet.dk(由 STAR——劳动力市场与招聘署运营)。它通过 Bun 运行的命令行工具访问公开 REST API,支持关键词、地区、邮编半径、全职/兼职、固定期限/临时等过滤,并可通过 ESCO 职业类别做精确筛选。该技能随仓库默认关闭(opt-in),面向丹麦就业市场;仓库其余的 CV 定制、求职信、面试准备等能力属于其他兄弟技能,不在此技能范围内。MIT 许可证。
运行 bun run .agents/skills/jobnet-search/cli/src/cli.ts 调用 jobnet.dk/bff 公共 REST API(自动附加必需的 x-csrf: 1 头)。提供四个子命令:search 按关键词/地区/邮编半径/工时/雇佣期限/职业类别过滤职位;detail <jobAdId> 获取完整职位描述、联系人、申请截止日期和直达申请链接;occupations 查询 ESCO 职业标识符;suggestions 返回丹麦语职位名自动补全。输出支持 、table、plain 三种格式,错误以 JSON 写入 stderr 并以退出码 1 结束。
- 在丹麦求职的人,想按关键词(如 sygeplejerske 护士、ingeniør 工程师)搜索官方门户的公开职位
- 限定地点的求职者,用邮编加半径(如 8000 奥胡斯 30 公里内)查找附近职位
- 只想找公共部门、医疗、IT 或教育类职位的人,通过 ESCO 职业类别做精确筛选
- 临近申请截止的人,用 --order ApplicationDate 把最早截止的职位排在最前
- 构建自动化求职流程的开发者,用 输出把职位 ID 传给后续处理步骤
这个 Skill 有哪些优点和局限?
- 免认证访问丹麦官方政府求职门户的实时数据,任何时间约 21,000+ 在招职位
- 过滤维度丰富:地区、邮编半径、工时、雇佣期限、ESCO 职业类别、多种排序
- 无需 API 密钥,CSRF 头由 CLI 自动处理
- 输出格式可选 /table/plain,便于人工查看或程序化处理
- 仅覆盖丹麦市场;对其他国家用户没有直接价值(仓库提供 /add-portal 来生成本地门户技能,但那不是本技能的功能)
- 默认关闭,需要手动启用或通过 /setup 开启
- suggestions 功能针对丹麦语职位名优化,英文查询可能返回空结果
- search 结果不含 HTML 职位描述,必须再调 detail 命令获取
- 依赖底层非官方公开 API(jobnet.dk/bff),门户接口变更可能导致失效;来源未提及测试套件覆盖情况
如何安装这个 Skill?
本技能属于 ai-job-search 仓库(.agents/skills/jobnet-search/),需先克隆仓库:gh repo fork MadsLorentzen/ai-job-search --clone,然后安装 CLI 依赖:cd .agents/skills/jobnet-search/cli && bun install。前置要求:Claude Code(或其他兼容代理工具)和 Bun。注意该技能默认 enabled: false(丹麦演示门户,opt-in),需通过仓库的 /setup 命令启用(当你的目标市场是丹麦时),或手动把 frontmatter 中的 enabled 改为 true。
如何使用这个 Skill?
在 Claude Code 中提及丹麦求职相关话题即可触发(触发词包括 jobnet、jobnet.dk、danish jobs、ledige stilling 等大量中英/丹麦语短语),或直接运行 CLI,例如:搜索哥本哈根地区职位 bun run .agents/skills/jobnet-search/cli/src/cli.ts search --region HovedstadenOgBornholm --format table;查护士全职固定职位加 --search-string "sygeplejerske" --work-hours FullTime --duration Permanent。推荐流程:先用 suggestions 或 occupations 找到正确的丹麦语职位名/ESCO ID,再 search 拿到 jobAdId 列表,最后 detail <jobAdId> 看完整描述。注意不要同时使用 --region 和 --postal-code。
这个 Skill 与同类方案有什么区别?
同一仓库内并列的丹麦门户技能还有 jobindex-search(Jobindex.dk)、jobbank-search(Akademikernes Jobbank)、jobdanmark-search(Jobdanmark.dk),以及跨国可用的 linkedin-search 和 freehire-search。若你要找的是丹麦政府/公共部门职位,Jobnet 是官方门户;若要跨国或科技类职位,linkedin-search / freehire-search 更合适。