[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$f1fcvfz812myhr":3},{"code":4,"message":5,"data":6,"timestamp":46},10000,"success",{"full_name":7,"position":8,"description":9,"language":10,"stars":11,"forks":12,"stars_gained":13,"age_days":14,"hn_threads":15,"one_liner":16,"summary_md":17,"topic":18,"github_topics":21,"license":42,"homepage":43,"updated_at":44,"history":45},"strelov1\u002Ffreehire",23,"freehire — the open-source search engine for job seekers","Go",3033,303,2444,140,[],"直接抓取公司招聘官网、统一去重的自托管职位搜索引擎，面向想掌控职位数据的人。","如果你想拥有一个自己掌控的职位库，或需要一份可检索的 IT 职位数据，值得看一眼；如果你只是想找一次工作、不想维护 Go\u002FPostgres\u002FMeilisearch 这套栈，那就算了。\n\n## 解决什么问题\n\n找工作时，人往往要在多个招聘站之间来回切换，还要忍受猎头转发、重复发布和已经失效的链接，而且每换一个站就要重新设一遍筛选条件。这里想要的结果是一个去重后的原始职位池，能按地区、工作方式、资历、技能和薪资检索。改动发生在数据源头：抓取任务直接爬取公司自己的招聘系统（Workday、Greenhouse、Lever、Ashby、iCIMS 等）并链回原始页面，而不是抓聚合站，见[项目说明](https:\u002F\u002Fgithub.com\u002Fstrelov1\u002Ffreehire\u002Fblob\u002Fmain\u002FREADME.md)。最终得到的是一份归一化后的职位数据，你可以查询、分享，或者在此基础上做订阅和摘要。\n\n除了职位目录，这个仓库还把投递环节一并做了：支持 ATS 友好 PDF 模板的简历生成器、简历与职位的确定性打分、AI 匹配分析、投递追踪链接和内推。范围比单纯的职位板更大，但都在同一个仓库、同一个 MIT 许可下。\n\n## 有什么不同\n\n最核心的选择是把招聘系统当作权威来源，并按稳定键去重。同一职位即使被投放到多个站点，最后也只会合并成一条记录；地区、工作方式等筛选维度来自人工维护的词典，而不是猜出来的。全文与分面搜索由 Meilisearch 承担，存储和语义向量用 Postgres 加 pgvector，HTTP 服务用 Go 和 Fiber，细节见[架构说明](https:\u002F\u002Fgithub.com\u002Fstrelov1\u002Ffreehire\u002Fblob\u002Fmain\u002Fdocs\u002Farchitecture.md)。\n\n代价是职位的新鲜度和覆盖面取决于抓取流水线，而不是人工编辑：每个招聘系统要单独跑一次 ingest，富化、向量化和通知都是独立的单次运行任务，适合交给 cron，而不是常驻后台进程。这样排期更灵活，但调度需要你自己负责。可选的 LLM 功能通过 langchaingo 和 Bifrost 走任意兼容 OpenAI 的接口，供应商可以自选，但密钥和费用也由你承担。\n\n## 谁值得试\n\n适合：想给 IT 职位做内部或公开职位板的开发者或小团队，熟悉 Docker Compose 和 cron，比起聚合站的职位数量更看重来自雇主的原始发布。想为某个招聘系统贡献新数据源的人也合适，README 里有添加数据源的说明。\n\n不适合：只想找一次工作的人。托管版 [freehire.me](https:\u002F\u002Ffreehire.me) 不用部署就能搜。同样，如果你没法运行 Postgres、Meilisearch 和对象存储，或者不愿意维护一个爬虫，那么自托管会带来托管站本来不需要的维护工作。\n\n## 使用条件与边界\n\n需要 Docker（本地开发也可以直接用 Go、Postgres 和 Meilisearch），并且必须提供 JWT 密钥才能启动服务。数据库迁移只在首次初始化数据卷时执行，如果改了迁移文件，需要重建数据卷或手动执行迁移，升级时要考虑这一点。完整栈还需要 Redis 和 S3 兼容存储，以及为抓取、富化、向量化和通知任务安排 cron，这是日常维护的主要部分。\n\nOAuth 和 LLM 凭据是可选的，不配置时相关功能保持关闭，所以职位目录与搜索不依赖 AI 供应商。README 宣称有 330 万+ 在架职位，但实际覆盖取决于你抓取哪些数据源，而且现有材料没有给出自托管部署后的索引规模或更新频率。\n\n## HotRepo 点评\n\n2026-10-25 的榜单上，该项目在 Go 月榜以 +2,444 排第 23，在周榜以 +2,066 排第 6。这只是单日快照，没有可比的每日历史，暂时无法判断热度能否持续。决定自托管之前，先拿你关心的招聘系统对照一下添加数据源的流程。",{"slug":19,"name":20},"productivity","效率与系统工具",[22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41],"ats","career","careers","golang","hiring","job-aggregator","job-board","job-portal","job-scraper","job-search","jobs","langchain","llm","meilisearch","postgresql","recruitment","remote-jobs","self-hosted","svelte","sveltekit","MIT","https:\u002F\u002Ffreehire.me","2026-10-25T12:16:31Z",[],1792971803]