strelov1/freehire
效率与系统工具直接抓取公司招聘官网、统一去重的自托管职位搜索引擎,面向想掌控职位数据的人。
如果你想拥有一个自己掌控的职位库,或需要一份可检索的 IT 职位数据,值得看一眼;如果你只是想找一次工作、不想维护 Go/Postgres/Meilisearch 这套栈,那就算了。
解决什么问题
找工作时,人往往要在多个招聘站之间来回切换,还要忍受猎头转发、重复发布和已经失效的链接,而且每换一个站就要重新设一遍筛选条件。这里想要的结果是一个去重后的原始职位池,能按地区、工作方式、资历、技能和薪资检索。改动发生在数据源头:抓取任务直接爬取公司自己的招聘系统(Workday、Greenhouse、Lever、Ashby、iCIMS 等)并链回原始页面,而不是抓聚合站,见项目说明。最终得到的是一份归一化后的职位数据,你可以查询、分享,或者在此基础上做订阅和摘要。
除了职位目录,这个仓库还把投递环节一并做了:支持 ATS 友好 PDF 模板的简历生成器、简历与职位的确定性打分、AI 匹配分析、投递追踪链接和内推。范围比单纯的职位板更大,但都在同一个仓库、同一个 MIT 许可下。
有什么不同
最核心的选择是把招聘系统当作权威来源,并按稳定键去重。同一职位即使被投放到多个站点,最后也只会合并成一条记录;地区、工作方式等筛选维度来自人工维护的词典,而不是猜出来的。全文与分面搜索由 Meilisearch 承担,存储和语义向量用 Postgres 加 pgvector,HTTP 服务用 Go 和 Fiber,细节见架构说明。
代价是职位的新鲜度和覆盖面取决于抓取流水线,而不是人工编辑:每个招聘系统要单独跑一次 ingest,富化、向量化和通知都是独立的单次运行任务,适合交给 cron,而不是常驻后台进程。这样排期更灵活,但调度需要你自己负责。可选的 LLM 功能通过 langchaingo 和 Bifrost 走任意兼容 OpenAI 的接口,供应商可以自选,但密钥和费用也由你承担。
谁值得试
适合:想给 IT 职位做内部或公开职位板的开发者或小团队,熟悉 Docker Compose 和 cron,比起聚合站的职位数量更看重来自雇主的原始发布。想为某个招聘系统贡献新数据源的人也合适,README 里有添加数据源的说明。
不适合:只想找一次工作的人。托管版 freehire.me 不用部署就能搜。同样,如果你没法运行 Postgres、Meilisearch 和对象存储,或者不愿意维护一个爬虫,那么自托管会带来托管站本来不需要的维护工作。
使用条件与边界
需要 Docker(本地开发也可以直接用 Go、Postgres 和 Meilisearch),并且必须提供 JWT 密钥才能启动服务。数据库迁移只在首次初始化数据卷时执行,如果改了迁移文件,需要重建数据卷或手动执行迁移,升级时要考虑这一点。完整栈还需要 Redis 和 S3 兼容存储,以及为抓取、富化、向量化和通知任务安排 cron,这是日常维护的主要部分。
OAuth 和 LLM 凭据是可选的,不配置时相关功能保持关闭,所以职位目录与搜索不依赖 AI 供应商。README 宣称有 330 万+ 在架职位,但实际覆盖取决于你抓取哪些数据源,而且现有材料没有给出自托管部署后的索引规模或更新频率。
HotRepo 点评
2026-10-25 的榜单上,该项目在 Go 月榜以 +2,444 排第 23,在周榜以 +2,066 排第 6。这只是单日快照,没有可比的每日历史,暂时无法判断热度能否持续。决定自托管之前,先拿你关心的招聘系统对照一下添加数据源的流程。
本文由 AI 根据项目 README 生成,更新于 2026年10月25日,以项目官方文档为准。