2026-09-05 · 原文发布日
Gmail求职邮件自动分类并送经理审批
小团队招聘收件箱的n8n流程:每分钟检查指定Gmail标签下的新邮件,跳过自动发件人,按线程ID查Google Sheets防止重复处理;OpenAI把邮件分类为应聘、咨询或其他,评估情绪并起草简短回复,应聘邮件连同草稿和审批链接发给招聘经理,非应聘邮件自动回复发件人;负面或紧急的应聘和流程异常都会推Telegram告警。
原文要点
作者Khairul Muhtadin发布的免费n8n模板:Gmail触发器每分钟检查指定标签下新邮件,跳过no-reply类自动发件人,按thread ID查Google Sheets的applicant_log防止重复处理;用OpenAI(作者选用gpt-5.6-terra)经LangChain节点把邮件分类为application/question/other、评估情绪并起草简短回复;生成审批令牌与审批链接后把详情写入表格,应聘邮件连同草稿和审批链接发给招聘经理,非应聘自动回复发件人;负面或紧急应聘及流程异常推Telegram告警。
这次做成什么
照着本指南在n8n里亲手搭出这条招聘收件箱流水线:触发→去重→AI分类→分支(经理审批或自动回复)→Telegram告警,并用一条合成邮件验证全程。
准备什么
- n8n账号(云版或自托管均可)与一个Gmail账号及OAuth凭据
- 一个OpenAI API Key及对应凭据
- 一个Google Sheet,含applicant_log标签页
- SMTP发信凭据和一个Telegram Bot(BotFather创建)及chat ID
具体怎么做
建Gmail标签并配触发器
在Gmail新建标签JobApplications并复制其标签ID(不是显示名)。n8n中添加Gmail Trigger,事件选Message Received,轮询间隔1分钟,过滤器填入该标签ID。
提取字段并跳过自动发件人
接一个Set或Code节点,规整出thread_id、sender、subject、snippet四字段;加IF节点,当sender包含no-reply、notifications、mailer-daemon时直接结束该分支。
按thread_id查表去重
添加Google Sheets节点,操作选Lookup,在applicant_log表按thread_id列查找。查到已有记录则走"已处理"分支结束;查不到才继续,确保同一邮件线程不会被处理两次。
OpenAI分类并校验输出
添加LangChain Agent或OpenAI节点,粘贴下方分类提示词,要求只输出规定JSON。接一个IF检查输出能否解析且category属于application/question/other三值之一,解析失败立即走Telegram告警分支。
生成审批令牌并写入表格
用Code节点生成随机approval_id(如crypto随机16位hex),把thread_id、sender、subject、category、sentiment、draft_reply、status、approval_id、received_at追加到applicant_log。
三分支路由与告警
category=application:用SMTP节点给MANAGER_EMAIL发邮件,正文含草稿回复和APPROVAL_BASE_URL/approve?id=审批链接;question或other:自动回复发件人草稿。另加IF:sentiment=negative或urgent=true时发Telegram通知;再给整个工作流挂Error Trigger,异常也推Telegram。
可直接复制的材料
邮件分类与起草提示词
本站按原流程描述独立编写,{{}}为n8n表达式占位,粘贴到OpenAI节点后确认上游字段名一致
你是招聘收件箱助手。分析下面这封邮件,只输出一个JSON对象,不要输出任何其他文字。
字段要求:
category:application(投递简历/求职)、question(询问岗位或流程)、other(其他)三选一;
sentiment:positive、neutral、negative三选一;
urgent:布尔值,发件人明确要求加急或表达强烈不满时为true;
suggested_subject:建议回复主题,15字以内;
draft_reply:60字以内的中文回复草稿,语气礼貌,不承诺面试结果,不编造公司信息。
邮件主题:{{$json.subject}}
发件人:{{$json.sender}}
正文摘要:{{$json.snippet}}applicant_log表头与合成测试数据
全为本站虚构合成数据;T-9002演示自动发件人跳过,T-9001演示待审批,T-9003演示自动回复
thread_id,sender,subject,category,sentiment,draft_reply,status,approval_id,received_at
T-9001,wangfang@example.com,应聘前端工程师-王芳,application,positive,您好,已收到您的应聘材料,我们将尽快评估并回复。,pending_approval,a1b2c3d4e5f60708,2026-09-06 09:15
T-9002,no-reply@jobsite.cn,您的职位推荐已更新,,,,,skipped,,2026-09-06 09:16
T-9003,liwei@example.com,请问前端岗位还招人吗,question,neutral,您好,该岗位仍在招聘,欢迎投递简历。,auto_replied,b2c3d4e5f6070819,2026-09-06 09:20环境变量与分支规则配置
本站按原文Setup一节整理的配置清单,变量值需替换为你自己的,非原作者导出的工作流文件
{
"env": {
"RECRUITMENT_LOG_URL": "你的Google Sheet完整链接",
"COMPANY_EMAIL": "hr@your-company.example",
"MANAGER_EMAIL": "manager@your-company.example",
"TELEGRAM_CHAT_ID": "你的Telegram会话ID",
"APPROVAL_BASE_URL": "https://your-n8n.example/webhook/approval"
},
"branches": {
"auto_sender_skip": ["no-reply", "notifications", "mailer-daemon"],
"application": "发经理审批邮件+草稿+审批链接",
"question_or_other": "自动回复发件人",
"negative_or_urgent": "额外Telegram告警",
"error": "Error Trigger推Telegram"
}
}输入与输出示例
本站虚构演示,非模板实测结果,字段与上方提示词严格对应
输入
一封合成邮件进入JobApplications标签:thread_id=T-9055,sender=chenjing@example.com,subject=应聘数据分析师-陈静,snippet=您好,我有三年数据分析经验,附件是我的简历,期待回复。对应输出
OpenAI节点应返回{"category":"application","sentiment":"positive","urgent":false,"suggested_subject":"已收到您的应聘材料","draft_reply":"您好,已收到您的简历,我们会尽快完成评估并与您联系。"};applicant_log追加一行status=pending_approval;MANAGER_EMAIL收到含草稿与APPROVAL_BASE_URL/approve?id=xxxx链接的审批邮件;因非负面非紧急,不触发Telegram做完检查这些
- 同一thread_id的邮件第二次到达时被查表分支跳过,不重复写表
- 发件人为no-reply开头的邮件不产生任何表格行和外发邮件
- OpenAI输出无法解析为规定JSON时收到Telegram畸形输出告警
- application类邮件产生含审批链接的经理邮件,question类自动回复发件人
容易卡住的地方
- Gmail触发器要填标签ID而非标签显示名,填错会监听不到邮件
- 作者示例模型写作gpt-5.6-terra,这是作者选择,需在你的OpenAI凭据下确认实际可用模型再替换
- 模板本身免费,但OpenAI调用、n8n托管等可能另收费
- 审批链接依赖APPROVAL_BASE_URL指向一个能处理审批回调的webhook,不配置则链接无效
- 每分钟轮询在邮件量大时留意执行次数与配额
本站借助AI整理来源事实,独立编写中文操作指南与示例。示例不代表实际运行结果;来源效果尚未由本站独立复现。付费模板与模型、服务费用分别计算。
- 原文标题
- Triage job applications from Gmail with gpt-5.6-terra, Google Sheets, and Telegram
- 原作者
- Khairul Muhtadin
- 原始发布日期
- 2026-09-05T15:51:45.326Z
- 来源
- https://n8n.io/workflows/19253