2026-09-07 · 原文发布日
每天早晨从招聘信息中挖销售线索
面向做招聘相关生意的人:每天早八点按你设置的职位关键词查询Apify的Hirebase招聘信息流,把过去24小时的职位按公司聚合,汇总职位数、头衔、地点和链接,跨多次运行去重,并过滤掉开放职位数低于门槛的公司。剩余公司交给OpenAI写一段两行式冷启动开场白,连同公司信息追加到Google Sheets,热门线索即时发Slack提醒,普通线索并入每日摘要。接口失败时会发Slack报错并停止。
原文要点
原作者Spencer Rowley在n8n.io发布的免费模板:每天早上8点用你设置的职位关键词构造查询体,调用Apify的Hirebase招聘信息流取过去24小时职位;信息流失败时发Slack报错并停止;按公司聚合职位数、头衔、地点、链接;跨运行去重并按最低开放职位数过滤;用OpenAI为每家剩余公司写两行冷开场白;写入Google Sheets,热门线索即时发Slack、普通线索进每日摘要。需要安装Apify社区节点@apify/n8n-nodes-apify,凭据含Apify、OpenAI、Google Sheets OAuth2、Slack OAuth2。
这次做成什么
在自建n8n里搭一条“招聘信息→按公司聚合→AI开场白→Sheets登记→Slack分级通知”的每日线索流水线,并用3家虚构公司的合成招聘数据完成一次端到端演练。
准备什么
- n8n实例(云端或自托管),并已安装社区节点@apify/n8n-nodes-apify
- Apify账号及其API凭据(Hirebase信息流按Apify计费,费用以Apify为准)
- OpenAI API Key,且所选模型在你的账号可用
- Google Sheets OAuth2凭据和一张已建好表头的线索表
- Slack OAuth2凭据,以及一个用于告警/摘要的频道
具体怎么做
建立线索表与雷达参数
在Google Sheets新建电子表格,第一个工作表按顺序建表头:Date Found、Company、Industry、Company Size、Open Roles、Role Titles、Locations、Website、AI Opener、Job Links,与模板要求一致。在n8n打开模板的Radar Settings节点,至少填Job Titles或Keywords之一,例如Keywords填"account executive, sales development";再设置min open-role阈值(如2)和hot阈值(如5)。测试阶段建议把关键词收窄到一个小众方向,避免首日数据量过大。
连接触发器与Apify查询
保留模板的每天早上8点定时触发器(测试时可先改手动执行)。在Apify节点添加Apify凭据,确认查询体由Radar Settings生成。手动执行一次:正常时应返回过去24小时的职位条目数组;故意把凭据改错执行一次,确认走失败分支——向Slack发出含错误详情的消息并停止后续登记,验证完恢复凭据。
核对聚合、去重与阈值过滤
检查按公司聚合节点:同一公司多条职位应合并成一条线索,汇总Open Roles数量、Role Titles、Locations和Job Links。先执行一次让3家虚构公司入库,再用相同数据执行第二次,确认这3家因“跨运行去重”被跳过;把某公司Open Roles改为1(低于阈值2),确认它被过滤掉。
配置OpenAI开场白与输出
在OpenAI节点添加API凭据并选择你账号可用的模型,提示词要求输出恰好两行、提及公司正在招的岗位方向的冷开场白(见材料中的示例提示词,需按你的业务替换价值主张)。随后配置Google Sheets追加节点指向你的表格,Slack节点设置热门告警频道,并把摘要频道占位值替换成真实频道ID。
端到端演练并恢复定时
用合成数据手动跑一遍:预期1家热门(Open Roles≥5)即时收到Slack告警、1家普通进每日摘要、1家低于阈值被丢弃;Sheets新增2行且AI Opener列非空。全部通过后把触发器改回每天8:00定时并激活工作流。
可直接复制的材料
OpenAI两行冷开场白提示词(独立示例)
本站独立编写的示例提示词,与原模板内部提示词无关;{{}}字段需替换为节点实际变量名,第二行价值主张需改成你的业务。
你是B2B销售文案助手。根据下面的公司招聘信息,写一段恰好两行的冷启动开场白,用于第一次联系该公司。
要求:
1. 第一行点出对方正在招聘的岗位方向和人数,表明你做过功课;
2. 第二行用一句话说明我们能帮招聘团队缩短到岗周期,并以一个开放式问题结尾;
3. 不要编造对方公司没有的信息,不要出现价格承诺,语气自然不油腻;
4. 只输出两行正文,不要标题、不要解释。
公司:{{Company}}
行业:{{Industry}}
正在招聘:{{Role Titles}}(共{{Open Roles}}个职位)
地点:{{Locations}}Hirebase返回模拟数据(合成JSON)
本站虚构合成数据,用于不消耗Apify额度时调试聚合逻辑;url域名不存在,勿当作真实职位。
[{"company":"北辰云科","industry":"SaaS","company_size":"51-200","title":"Account Executive","location":"上海","url":"https://jobs.example.com/beichen-ae","posted_at":"2026-09-06T09:12:00Z"},{"company":"北辰云科","industry":"SaaS","company_size":"51-200","title":"Sales Development Rep","location":"上海","url":"https://jobs.example.com/beichen-sdr","posted_at":"2026-09-06T10:03:00Z"},{"company":"澜舟物流","industry":"Logistics","company_size":"201-500","title":"Sales Manager","location":"深圳","url":"https://jobs.example.com/lanzou-sm","posted_at":"2026-09-06T08:41:00Z"}]输入与输出示例
本站虚构演示,Opener为按示例提示词撰写的示意文案,非原作者运行结果,未实际调用任何API。
输入
合成数据:北辰云科在过去24小时发布2个职位(Account Executive、Sales Development Rep,上海),澜舟物流发布1个职位(Sales Manager,深圳);阈值设置min=2、hot=5。对应输出
聚合后:北辰云科 Open Roles=2,通过阈值,AI Opener示例“看到北辰云科正在上海同时招聘AE和SDR两个销售岗位。我们帮招聘团队把销售岗平均到岗周期压到更短——你们目前在批量扩销售团队吗?”该行追加到Sheets并进每日Slack摘要;澜舟物流 Open Roles=1低于min=2被过滤,不写表不通知。做完检查这些
- 手动执行一次后,Sheets新增行的10列与表头一一对应,AI Opener与Job Links列均非空
- 用相同数据再执行一次,已出现过的公司全部被去重跳过,Sheets行数不增加
- 把某公司职位数改成低于min阈值后执行,该公司不出现在Sheets和Slack中
- 故意填错Apify凭据执行,Slack收到错误详情消息且没有任何Sheets写入
容易卡住的地方
- 自托管n8n若搜不到Apify节点,需先安装社区节点@apify/n8n-nodes-apify并重启实例
- Radar Settings中Job Titles和Keywords都为空时查询体无效,至少填一项
- 每日摘要的Slack频道是占位值,不替换成真实频道ID会发消息失败
- Google Sheets表头列名必须与模板完全一致,否则追加列错位
- 跨运行去重依赖工作流历史执行数据,清空执行历史可能导致旧公司被重复推送
本站借助AI整理来源事实,独立编写中文操作指南与示例。示例不代表实际运行结果;来源效果尚未由本站独立复现。付费模板与模型、服务费用分别计算。
- 原文标题
- Log new hiring leads from Apify to Sheets with GPT-4o-mini and Slack alerts
- 原作者
- Spencer Rowley
- 原始发布日期
- 2026-09-07T13:42:49.308Z
- 来源
- https://n8n.io/workflows/19322