freehire
strelov1/freehire加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
你有没有过这种感觉——在 LinkedIn、Indeed、Boss 直聘之间来回切换,投出去的简历像往黑洞里扔石子,连个回音都没有?你不是一个人。据 Stack Overflow 2025 年开发者调查,超过 60% 的求职者对现有平台最不满的一点,不是职位少,而是信息不透明:同一份工作被改头换面发在三个平台,薪资范围写得模糊,发布日期其实是假的(HR 只是点了一下"刷新日期"),投了才发现这个职位根本不对外招人。
freehire 就是来解决这个问题的。
freehire 是一个开源求职搜索引擎,由独立开发者 Ilya Strelov(GitHub @strelov1)发起,2026 年 6 月上线 GitHub。截至分析时,已收录超过 330 万条活跃职位,来自 29.4 万家公司,涵盖 320+ 个数据源,包括 Workday、Greenhouse、Lever、Ashby 等 92 个主流 ATS 平台,以及 97 个 Telegram 求职频道。
这个项目的野心不只是做搜索——它试图成为"求职的全栈操作系统":找职位、做简历、投简历、追踪进度、收邮件通知,甚至还有一个内置 AI Agent 可以帮你模拟面试。
freehire 的爬虫直接对接各公司自己的 ATS(招聘管理系统)——不是通过招聘平台抓取,而是从源头的 Workday、Greenhouse、Lever 等系统直接拉取数据。这意味着:
在技术实现上,每个 ATS 平台对应一个 Adapter(位于 internal/ingest/sources),遵循统一的 Source 接口,新增一个平台只需实现接口 + 在 sources.All 注册即可。README 提到"添加一个公司只需要在 boards 表里加一行",这个设计思路非常务实。
freehire 用 Meilisearch 做全文 + 分面搜索,支持按地区、工作模式(远程/混合/线下)、职级、技能、薪资范围等维度过滤。语义搜索层面用了 pgvector 做职位描述的向量嵌入——这意味着你搜索"写 Python 的后端工作",结果不会只匹配包含"Python"字样的职位,而是语义相近的也会被召回。
freehire 在 AI 方向的探索相当激进。它集成了 LLM(通过 langchaingo 库,理论上支持任何 OpenAI 兼容端点),提供以下功能:
有趣的是,freehire 用 Bifrost 作为 LLM 网关,实现"每用户虚拟 Key + 跨供应商回退 + 消费追踪"——用户用自己 API Key,但通过 Bifrost 统一路由,解决了成本控制和供应商锁定的问题。
对于认真找工作的人,freehire 还提供了一套完整的申请管理工具:
freehire 是典型的前后分离 + 微服务队列架构:
| 组件 | 技术选型 | 职责 |
|---|---|---|
| 后端 API | Go + Fiber v2 | REST API 服务,无状态 |
| 数据库 | PostgreSQL 18 + pgvector | 事务数据 + 向量搜索 |
| 全文搜索 | Meilisearch | 分面过滤 + 全文检索 |
| 爬虫/Worker | Go 命令行程序 | 定时从 ATS 拉取、LLM 丰富数据 |
| 前端 | SvelteKit 2(Svelte 5 runes)+ Tailwind 4 | 服务端渲染 Web UI |
| LLM 调用 | langchaingo + Bifrost | 供应商无关的 AI 功能 |
| 可观测性 | Langfuse | LLM 调用链路追踪 |
| 缓存/限流 | Redis | 请求限速、实时通知 |
| 对象存储 | S3 兼容 | 简历 PDF、头像等文件 |
| 指标 | Prometheus + Grafana | 基础设施监控 |
sqlc 从 SQL 生成类型安全的数据库访问代码,既保证了 SQL 的表达能力,又避免了运行时 SQL 注入风险和 ORM 的性能损耗docker-entrypoint-initdb.d 自动执行,无需手动干预项目用 make up 一键启动,底层是 docker-compose.yml,包含:PostgreSQL(pgvector)、Meilisearch、Redis、MinIO(S3 模拟)、API 服务、Web 前端。
git clone https://github.com/strelov1/freehire
make up
curl localhost:8080/health
首次启动大约 1-2 分钟(取决于镜像拉取速度),之后数据库迁移自动完成。生产部署需要额外配置:外置 S3、真实 LLM API 密钥(OpenAI/Anthropic/其他兼容端点)。
freehire 不仅有 Web UI,还提供:
freehire-cli 独立项目,可在终端搜索职位freehire-mcp 可接入 Claude Desktop / Claude Code,让 AI Agent 直接帮你搜职位这意味着 freehire 的定位不只是一个网站,而是一个可编程的求职数据平台。
freehire 已于 2026 年 8 月上线 App Store,支持简历匹配分析和申请追踪,UI 针对移动端优化。与 Web 版共享同一套后端 API。
尽管功能全面,freehire 也面临一些现实问题:
freehire 出现在 GitHub Trending 上的时间点值得关注:2026 年 8 月 17 日达到 Go 语言榜第 6 位,单日增长 528 stars。这种增长曲线背后有两层驱动力:
第一层:求职市场的结构性痛点。现有平台(LinkedIn、Indeed)本质上是中介——它们的存在价值来自于信息不对称,而 freehire 的"直连源头"模式直接挑战了这个商业模式,在求职者和公司之间做了一次"去中介"。
第二层:开发者群体的强烈共鸣。项目的作者本人就是开发者,在 Reddit 上说"我在找工作,所以做了一个工具"——这句话引发了开发者社群的强烈共鸣。开源 + MIT 许可 + 自己部署 = 完全掌控自己的求职数据,这对于技术人群有天然的吸引力。
freehire 的"全栈求职 OS"愿景(搜索 + 简历 + 申请追踪 + AI 分析)如果能持续迭代,有潜力成为 Hired、TripleByte 等闭源平台的开源替代品。