不写一行代码,用 Notion 数据库搭一个求职申请追踪系统:看板按“待投递、已投递、面试中、录用、已拒绝”分列,公式自动算出投递天数和跟进提醒,一键按钮推进状态,日历视图看面试安排,还能导入现成的 CSV 快速开始。
先看清成品
成品是一个 Notion 页面,里面有一个“求职申请”数据库和三个视图:看板、表格、日历。投递满 7 天还没回复的申请会自动显示“⚠ 已投递一周,发邮件跟进”。本文提供的 CSV 示例数据已用 Python 校验能正确解析(3 行、9 列);公式按 Notion 官方公式语法编写,但本文环境无法登录 Notion,公式和按钮没有在 Notion 里实际运行,粘贴后如有报错请按“出问题时该怎么调”排查。
做完之后你会得到什么?
| 成果 | 说明 |
|---|---|
| 求职数据库 | 公司、岗位、状态、日期、薪资、渠道、链接、备注 |
| 三个公式 | 已投递天数、跟进提醒、薪资范围 |
| 看板视图 | 按状态拖动卡片 |
| 日历视图 | 按面试时间排列 |
| 按钮 | 一键标记“面试中”并记录日期 |
| 自动化(付费计划) | 状态变为“已拒绝”时自动填写结束日期 |
需要准备哪些环境?
| 项目 | 要求 | 说明 |
|---|---|---|
| Notion 账号 | 免费计划即可完成前五步 | 网页版或桌面版 |
| 付费计划(可选) | Plus 及以上 | 只有第六步的数据库自动化需要 |
| 示例数据 | 本文的 applications.csv |
也可以手动新建 |
官方帮助中心说明:数据库自动化是付费计划功能,免费计划只能创建 Slack 通知类自动化;数据库按钮所有计划都能用,但部分按钮动作需要付费计划。
第一步:怎样快速建好数据库?
1. 准备 CSV
保存为 applications.csv(UTF-8 编码):
公司,岗位,状态,投递日期,渠道,最低月薪,最高月薪,链接,备注
示例科技,前端工程师,已投递,2026-10-08,官网,20,30,https://example.com/jobs/1,内推人:小王
示例数据,数据分析师,面试中,2026-10-12,招聘网站,18,25,https://example.com/jobs/2,二面约在周五
示例云,运维工程师,待投递,,朋友推荐,15,22,https://example.com/jobs/3,
2. 导入
在侧边栏选择 导入 → CSV,选中文件。Notion 会生成一个新数据库,第一列“公司”成为标题列。
3. 修改属性类型
导入后大部分列都是文本,逐个点列名改成合适的类型:
| 属性 | 类型 | 设置 |
|---|---|---|
| 公司 | 标题 | 保持不变 |
| 岗位 | 文本 | |
| 状态 | 状态 | 选项:待投递、已投递、面试中、录用、已拒绝 |
| 投递日期 | 日期 | |
| 面试时间 | 日期 | 新建,包含时间 |
| 结束日期 | 日期 | 新建 |
| 渠道 | 单选 | 官网、招聘网站、朋友推荐…… |
| 最低月薪 / 最高月薪 | 数字 | 单位千元 |
| 链接 | 网址 | |
| 备注 | 文本 |
4. 检查结果
表格里有 3 条示例记录,“状态”列显示为彩色标签,“投递日期”可以点开日历选择。
第二步:怎样写公式?
新建三个公式属性,把下面的内容分别粘贴进去:
【已投递天数】(数字)
if(empty(prop("投递日期")), 0, dateBetween(now(), prop("投递日期"), "days"))
【跟进提醒】(文本)
ifs(
prop("状态") == "已投递" and prop("已投递天数") >= 7, "⚠ 已投递一周,发邮件跟进",
prop("状态") == "面试中", "📅 准备面试",
prop("状态") == "已拒绝", "—",
""
)
【薪资范围】(文本)
if(empty(prop("最低月薪")), "", format(prop("最低月薪")) + "–" + format(prop("最高月薪")) + "K")
| 公式 | 作用 |
|---|---|
dateBetween(now(), 日期, "days") |
计算从投递到今天过了几天 |
ifs(条件1, 结果1, 条件2, 结果2, ..., 默认值) |
多条件判断,比嵌套 if 清晰 |
format(数字) |
把数字转成文本,才能和文字拼接 |
prop("已投递天数") |
公式可以引用其他公式 |
先建“已投递天数”,再建“跟进提醒”,因为后者引用了前者。
检查结果
示例数据里“示例科技”投递于 2026-10-08,到 2026-10-21 已超过 7 天,状态是“已投递”,所以“跟进提醒”应显示“⚠ 已投递一周,发邮件跟进”。你看到的天数取决于打开的日期。
第三步:怎样建视图?
1. 看板视图
点数据库左上角的 + 新建视图,选 看板,分组依据选“状态”。在 属性 里只显示岗位、薪资范围、跟进提醒,卡片会更清爽。
2. 日历视图
再新建一个 日历 视图,按“面试时间”显示,并加一个筛选:状态 = 面试中。
3. 表格视图的排序和筛选
| 设置 | 内容 |
|---|---|
| 筛选 | 状态 不是 已拒绝 |
| 排序 | 已投递天数 降序 |
4. 检查结果
| 视图 | 期望 |
|---|---|
| 看板 | 5 列,把卡片从“待投递”拖到“已投递”会改变状态 |
| 日历 | 给“示例数据”填上面试时间后出现在日历上 |
| 表格 | 等最久的申请排在最上面 |
第四步:怎样加一键按钮?
1. 新建按钮属性
新建属性,类型选 按钮,名称“进入面试”。
2. 设置动作
动作选择 编辑属性:
| 属性 | 设为 |
|---|---|
| 状态 | 面试中 |
| 面试时间 | 留空,等确认后手动填写 |
再添加一个动作 显示确认,提示文字“确认已收到面试邀请?”。
3. 检查结果
点击某条记录的“进入面试”按钮,确认后状态变为“面试中”,卡片在看板里移到对应列。
第五步:怎样做成可复用的模板?
1. 数据库模板
点数据库右上角 新建 旁边的下拉箭头,选择 新建模板,命名“新申请”,在页面正文里预先写好:
## 岗位要求
-
## 我的匹配点
-
## 面试记录
| 轮次 | 时间 | 面试官 | 问题 | 自我评价 |
| :--- | :--- | :--- | :--- | :--- |
## 跟进记录
-
把“状态”默认值设为“待投递”,再把这个模板设为默认。
2. 检查结果
点“新建”后,新页面自动带上这些标题和表格,状态默认是“待投递”。
第六步:付费计划可以加什么自动化?
在数据库右上角 ⚡ 自动化 中新建:
| 触发条件 | 动作 |
|---|---|
| 状态 被编辑为 已拒绝 | 编辑属性:结束日期 设为 触发日期 |
| 状态 被编辑为 录用 | 发送通知给自己,内容“记得在三天内回复 offer” |
官方帮助中心说明:自动化不会被其他自动化触发;如果自动化编辑的属性被删除,它会停止运行,需要回到自动化里修复。
出问题时该怎么调?
1. 公式报 Type mismatch
两边类型不一致。例如“薪资范围”里数字没有用 format() 包起来就和文字相加。检查每一处 + 两边是否都是文本。
2. 公式报 Undefined property
prop("...") 里的名字和属性名不完全一致,包括空格和中英文括号。把属性名复制过来,不要手打。
3. 导入后中文乱码
CSV 不是 UTF-8 编码。用文本编辑器“另存为 UTF-8”后重新导入。
4. 免费计划找不到某些按钮动作
部分按钮动作(如发送邮件、发送 Webhook)只在付费计划可用。本文第四步只用了所有计划都支持的“编辑属性”和“显示确认”。
常见问题怎么处理?
| 现象 | 原因 | 解决方法 |
|---|---|---|
| 状态列不能改成状态类型 | 已有值不在选项里 | 先改成单选整理选项,再改成状态 |
| 已投递天数是负数 | 投递日期填了未来的日期 | 检查日期 |
| 跟进提醒一直为空 | “状态”选项名和公式里不一致 | 公式里的“已投递”要和选项完全相同 |
| 日历视图是空的 | 没有记录填写面试时间 | 填写后再看 |
| 自动化不触发 | 页面访问受限或计划不支持 | 检查计划和页面权限 |
| 手机上看板太挤 | 列太多 | 隐藏“已拒绝”分组 |
项目资源
建议先只做前两步:导入 CSV,改好属性类型,粘贴“已投递天数”公式,看到天数正确显示。
公式能用之后再建看板和按钮。用一周后根据自己的习惯增减属性,比一开始就做得很复杂更实用。