资讯动态

5 分钟给 freehire 添加一个职位来源:一行 boards 目录数据,或写一个全新的 ATS 适配器

发布时间:2026/10/22 13:12:01 来源:尧图企业网站定制
【免费下载链接】freehirefreehire — the open-source search engine for job seekers项目地址https://gitcode.com/GitHub_Trending/fr/freehire点击查看免费下载freehire 是一个开源的 IT 职位搜索引擎它把所有职位直接从公司自己的招聘系统ATS抓取回来。想给它新增一个职位来源只有两条路如果目标公司用的 ATS 平台已经支持你只需在 boards 目录里添加一行数据如果它跑在一个全新的 ATS 平台上则要在internal/ingest/sources里写一个适配器。两种方式都不复杂本文带你快速走通。freehire 的职位来源是怎么工作的freehire 目前聚合了225 个在线来源92 个 ATS 平台Workday、Greenhouse、Lever 等、100 个聚合器与招聘网站Adzuna、Telegram 频道等、30 个公司自己的招聘页。完整清单见 docs/sources.md。它的核心设计是目录与适配器分离概念位置说明boards 目录Postgres 的boards表记录哪家公司、用哪个 ATS、board id 是什么一行即一个爬取目标来源适配器internal/ingest/sources/每个 ATS 平台一个.go文件负责抓取并归一化职位爬取管线cmd/ingest/main.go读取 boards 表中该 provider 的全部 board逐一抓取、去重、写入boards 表的 schema 在 migrations/0123_boards.sql核心字段就是providerboardcompany三件套。方式一添加一家公司——只需一行 boards 目录数据这是最常见、也最轻量的贡献。前提是该公司的 ATS 平台已有适配器92 个平台覆盖了绝大多数情况。通过网站的 contribute a board 表单提交登录 freehire 网站在贡献表单里粘贴该公司的职位链接即可。系统会自动识别链接属于哪个 ATS、提取 board id识别逻辑在 internal/ingest/atsboard/并写入 boards 表。首次贡献会获得 AI credits 奖励后续后台 worker 会自动完成爬取与激活。或者本地一条命令完成curator 路径先把仓库拉到本地git clone https://gitcode.com/gh_mirrors/fr/freehire cd freehire然后用 cmd/add-board 添加一行 boards 数据go run ./cmd/add-board --providergreenhouse --boardacme --companyAcme # 确认输出无误后加上 --apply 真正写入 go run ./cmd/add-board --providergreenhouse --boardacme --companyAcme --apply几个值得注意的细节默认是 dry-run不加--apply只打印将要写入的内容写库完全可逆写入前会校验provider必须已注册在适配器目录中否则直接报invalid不会出现目录里挂着一个没人能爬的 board还可以管理 board--retire退役、--rename修正公司名都走同一条命令参数传错要小心--provider必须是provider key如greenhouse而不是文件路径否则该次运行读取 0 个 board 并静默退出。之后调度器会按 provider 自动排期只要 boards 表里还有pending/active状态的 board这个 provider 就会被定期爬取。方式二写一个全新的 ATS 适配器当目标公司用的招聘平台不在 92 个已支持列表里才需要这条路。好消息是适配器契约非常小。第 1 步理解 Source 接口所有适配器都实现同一个接口定义在 internal/ingest/sources/source.gotype Source interface { Provider() string // 平台 key如 greenhouse Fetch(ctx context.Context, e CompanyEntry) ([]Job, error) }你只需要把平台返回的职位JSON、XML 或 HTML 页面翻译成统一的Job结构外部 id、URL、标题、公司、地点、描述等。字段很多但都是可选的结构化信号——平台没声明的字段留空即可管线有词典兜底。第 2 步写一个适配器文件约定是一个 provider 一个.go文件参考最简单的 greenhouse.go一次请求拿回整个 board 的全部职位照葫芦画瓢即可。如果职位列表页不含正文再实现可选的HydratingSource接口只为新职位请求详情页。第 3 步在 sources.All 注册一行适配器注册表在 internal/ingest/sources/registry.goAll函数把每个适配器挂到 provider key 上。你的新平台只需要加一行例如NewAcmeAts(c)。第 4 步添加 board 并试跑# 用刚才的 add-board 写入第一行目录数据 go run ./cmd/add-board --provideracmeats --boardacme --companyAcme --apply # 手动触发一次爬取 go run ./cmd/ingest acmeatscmd/ingest会按(source, external_id)唯一键幂等地 upsert 职位重复运行不会产生重复数据新职位会同时进入search_outbox由 cmd/search-drain 定期推入搜索索引。每个 board 的健康状态连续失败次数、冷却时间记录在board_health表里失败会自动退避重试。提交前的检查清单按 CONTRIBUTING.md 的要求PR 前请确认go build ./...、go vet ./...、gofmt -l .、go test ./...全部通过先用真实平台验证 board slug——一个抓不到数据的 board 在日志里和健康的 board 长得一模一样必须确认能读到职位不碰核心管线新抽象、多余的配置项都会被要求精简扩展点是 source不是 core。相关文件速查boards 表 schemamigrations/0123_boards.sql添加/退役 board 命令cmd/add-board/main.go适配器契约与 Job 结构internal/ingest/sources/source.go适配器注册表internal/ingest/sources/registry.go爬取 workercmd/ingest/main.go来源贡献规范internal/ingest/contribution/AGENTS.md贡献指南含Adding a source章节CONTRIBUTING.md全部 225 个来源明细docs/sources.md给 freehire 加一个来源的门槛很低多数公司只需要一行 boards 数据即使面对全新平台适配器契约也只有两个方法。缺了哪家公司直接去提一个 issue 或 PR这是这个仓库最欢迎的贡献类型。赞分享【免费下载链接】freehirefreehire — the open-source search engine for job seekers项目地址https://gitcode.com/GitHub_Trending/fr/freehire点击查看免费下载相关推荐从招聘页到搜索索引freehire 的 225 个来源爬取管线与 92 个 ATS 适配器全解析从招聘页到搜索索引freehire 的 225 个来源爬取管线与 92 个 ATS 适配器全解析 freehire 是一个开源的求职搜索引擎open soufreehire 数据全景225 个来源、92 个 ATS 平台、29.4 万家公司的数据版图是怎么搭起来的freehire 数据全景225 个来源、92 个 ATS 平台、29.4 万家公司的数据版图是怎么搭起来的 freehire 是一个开源的 招聘搜索引擎 同一职位发在 3 个平台 1 条记录freehire 归一化与稳定键去重设计详解同一职位发在 3 个平台 1 条记录freehire 归一化与稳定键去重设计详解 freehire 是一个开源的职位搜索引擎它把来自数百个招聘平台的职位上一篇看懂图片与视频diffusiongemma-26B-A4B-it-GGUF 多模态输入完全指南含变分辨率 Token 预算调优下一篇Streamlit交互式代码质量仪表盘实战CoDiver UI 设计完全拆解创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑