【免费下载链接】freehire
freehire — the open-source search engine for job seekers
在开源职位搜索引擎 freehire 中,收藏夹与自动提醒是求职者最实用的两个功能:收藏喜欢的职位,系统会在 3 天后自动发出一条"该岗位快招满了,回去看看"的提醒,通过邮件、Telegram 或手机推送通知你,避免错过最佳投递时机。本文带你快速掌握 freehire 收藏夹的用法、职位清单(Job Lists)的分组管理,以及自动提醒的完整设置流程。
📌 功能亮点一览
| 功能 | 说明 | 通知渠道 |
|---|---|---|
| 一键收藏(Save) | 在职位卡片上保存,自动登记提醒 | — |
| 收藏后自动提醒 | 固定延迟 3 天,按账号通知时间一次性提醒 | 邮件 / Telegram / 手机推送 |
| 职位清单(Job Lists) | 把职位分组命名管理,最多 50 个清单,每个最多 200 个职位 | — |
| 提醒智能取消 | 已投递、取消收藏或职位关闭时,提醒自动作废 | — |
| 免打扰时段 | 可设置 quiet hours,到点自动顺延到下一轮投递 | — |
下面这张图展示了 freehire 的职位搜索页面:左侧是按地区、工作形式、专业方向、职级过滤的侧栏,右侧是实时职位流,你可以在这里把心仪的职位加入收藏夹。
🚀 第一步:如何一键收藏职位
收藏是提醒功能的前提,流程非常简单:
- 在职位列表中找到目标职位,点击职位卡片上的Save按钮;
- 系统为这个
(用户, 职位)组合登记最多一条待发送提醒; - 如果账号已开启通知规则,提醒会按固定延迟 3 天排程。
💡 注意:只有"已收藏且尚未投递"的职位才会排提醒。已经投递过的职位不会再收到"快关招"的提醒——因为你的下一步动作已经发生了。
排程的精确逻辑定义在 internal/engage/reminder/reminder.go:ScheduleOnSave只在账号共享通知规则开启时生效,延迟天数由常量DefaultDelayDays = 3固定,不再支持逐职位自定义。
📁 进阶:用职位清单(Job Lists)分组管理收藏
收藏是一个"开关",而职位清单则是分组管理。当你同时看几十上百个职位时,可以按"远程后端岗"、"外企数据岗"等维度建清单:
- 每个账号最多创建50 个清单,每个清单最多放入200 个职位;
- 清单名称在同一账号内唯一,支持修改名称与描述;
- 任一清单可以选择以 slug 公开分享,别人无需注册账号就能看到这一组职位,非常适合做"推荐职位合集"。
清单的完整规则见 openspec/specs/saved-job-lists/spec.md,API 路由(创建、改名、加职位、分享等)集中在 internal/api/handler/job_lists.go。前端对应/my/lists页面。
⏰ 自动提醒如何触发:3 天延迟 + 通知时间聚合
这是 freehire 提醒功能最巧妙的部分,值得花一分钟理解:
- 固定 3 天延迟:收藏当天不提醒,3 天后才提醒,给职位留出"保鲜期";
- 向"通知时间"取整:提醒的触发时间会被向前取整到账号的每日通知时刻(默认09:00,按账号时区计算)。这样一天内收藏的多个职位,会落在同一时刻到期,合并成一条消息发出,而不是存一个发一封;
- 一次性发送:提醒只发一次,标记为 delivered 后,即使 worker 重跑也不会重发;
- 按用户隔离:不同账号的提醒绝不合并;同一账号的到期提醒按"渠道集合"分批,每个渠道最多一条消息。
这套"到期扫描 + 租约认领 + 死信重试"的账本设计见 openspec/specs/saved-job-reminders/spec.md,数据库结构定义在 migrations/0034_saved_job_reminders.sql(reminder_settings存账号默认规则,job_reminders存排程与投递台账),由 cmd/remind/ 下的 worker 周期性扫描执行。
⚙️ 如何设置提醒渠道与免打扰
提醒渠道、频率与免打扰时段统一在账号通知设置里配置(前端为/my/notifications/settings页面,实现见 web/src/routes/my/notifications/settings/+page.svelte),对应 API 在 internal/api/handler/me_reminders.go:
| 设置项 | 说明 |
|---|---|
| 启用开关(enabled) | 关闭后收藏不再排提醒;从未配置过的账号默认"开 + 邮件" |
| 通知渠道(channels) | 可多选:email、telegram、push。启用 push 需先用 freehire 移动 App 登录并授权通知,否则接口返回 409 |
| 摘要频率(digest_frequency) | instant即时发送,或daily按天汇总(必须同时指定 digest_time) |
| 免打扰时段(quiet_hours) | 起止必须成对设置;提醒到期时若处于免打扰窗口,会被顺延到下一轮 worker 扫描,而不是丢弃 |
⚠️ 常见错误:开启 push 渠道时报
push notifications need the freehire mobile app——这是设计如此,系统拒绝一个永远投递不到设备的渠道(见 internal/engage/reminder/reminder.go 的ErrNoPushDevice)。
🛑 提醒何时会自动取消?
freehire 遵循一个原则:意图失效,提醒即作废。以下任一情况发生后,未到期的提醒会在触发前被取消,绝不打扰你:
- ✅ 你投递了该职位;
- 🔖 你取消了收藏;
- 🚪 该职位被标记关闭(公司撤下、源站下线等)。
如果一批提醒中有部分已失效、部分仍有效,系统会剔除失效的那部分,其余的仍然合并成一条消息发出——你永远不会收到"这个职位已经关了"的无效提醒。
📚 延伸阅读与关键路径
想深入了解 freehire 的收藏夹与提醒体系,推荐从这几份资料入手:
- 功能总览:docs/features.md("The event ledger and reminders" 一节);
- 通知引擎架构:docs/agents/notifications.md,介绍 reminder / nudge / notify 三个投递引擎与邮件、Telegram、推送、Webhook 渠道的分工;
- 提醒核心实现:internal/engage/reminder/reminder.go(排程决策)与 internal/engage/reminder/reminder_test.go(行为测试);
- 提醒数据表:migrations/0034_saved_job_reminders.sql;
- 项目整体介绍:README.md。
❓ 常见问题 FAQ
Q1:我收藏了职位,为什么一直没收到提醒?A:先检查通知设置里开关是否为开启状态、渠道是否配置。另外提醒固定 3 天后才触发,且按通知时间取整,不会在收藏当天立刻发出。
Q2:投递后还会收到该职位的提醒吗?A:不会。投递、取消收藏、职位关闭三种情况都会自动取消未发送的提醒。
Q3:一天收藏了很多职位,会收到很多封邮件吗?A:不会。同一账号、同一渠道集合的到期提醒会被聚合为一条消息,列出所有到期职位。
Q4:职位清单和收藏是什么关系?A:相互独立。收藏是职位上的单一开关,清单是对职位的分组;删除清单不影响职位本身,也不影响你的收藏状态。
总结
freehire 的收藏夹与自动提醒用最小的操作成本解决了求职中的"信息过期"问题:收藏一下,3 天后系统自动提醒,投了/撤了/职位关了会自动静默,再配合职位清单分组、多渠道通知与免打扰时段,就能把几千个实时职位的追踪变成一件毫不费力的事。如果你想自己搭建或深入源码,docs/architecture.md 与 Makefile 的make up一键 Docker 启动是从零跑起整套服务的最快方式。
【免费下载链接】freehire
freehire — the open-source search engine for job seekers
相关推荐
免费职位提醒搭建:freehire 保存搜索后,新岗位自动推给你
免费职位提醒搭建:freehire 保存搜索后,新岗位自动推给你 找工作最耗神的环节往往不是筛选,而是"再回来看一眼有没有新的"。freehire 把这件事拆成
如何设置免费职位提醒:freehire 保存搜索订阅,新职位摘要自动推送到邮箱和 Telegram
如何设置免费职位提醒:freehire 保存搜索订阅,新职位摘要自动推送到邮箱和 Telegram freehire 是一款完全开源的职位搜索引擎,直接从公司招
Node.js Express Mongoose 邮件通知系统:评论提醒与用户通知完整指南
Node.js Express Mongoose 邮件通知系统:评论提醒与用户通知完整指南 在构建现代Web应用时,自动化邮件通知系统是提升用户体验的关键功能。
后端
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考