2026-10-06 · 原文发布日
每天自动筛招聘网站并把匹配岗位推到Telegram
这个免费n8n模板每天定时抓取你配置的Ashby、Greenhouse、Lever公司招聘页,可选叠加Jobicy和Himalayas的关键词搜索,统一格式去重后按地区、职位名称、排除初级岗位做低成本过滤,再用Claude对照你的个人简介给出是否匹配、1至10分和一句理由,达标的岗位逐条推到Telegram并附出来源链接。公司清单、关键词、分数线都在一个配置节点里改。适合正在找工作的人。
原文要点
这是n8n.io上的免费模板(作者Oleksii Vasyliev):定时器每天09:00触发,读取配置节点里的目标地区、个人简介、关键词、Telegram聊天ID;抓取用户配置的Ashby、Greenhouse、Lever公司招聘页,可选叠加Jobicy和Himalayas关键词搜索;统一格式、合并去重后按地区、职位名、排除初级岗位做低成本过滤,只保留历史未见过的新岗位并限制单次处理数量;再经LangChain LLM链调用Anthropic Claude输出fit、1至10分和一句理由,调用失败时标记unjudged;最后向Telegram发运行摘要并逐条推送达标岗位,Jobicy和Himalayas条目必须附via来源链接。
这次做成什么
在本站照做搭好这条招聘筛选流水线:定时触发→抓取多个ATS招聘页与聚合站→去重过滤→Claude打分→Telegram推送,并准备好可直接粘贴的配置对象、打分提示词和一条测试岗位数据。模板本身免费,Anthropic模型调用另计费。
准备什么
- 一个可登录的n8n实例(云端或自托管均可),并能从模板页导入该工作流
- Anthropic API密钥,在n8n凭据中新建Anthropic类型凭据
- 用@BotFather创建的Telegram机器人token,以及你本人账号的chat ID(可先发一条消息再用getUpdates查到)
- 一段100至300字的个人求职简介,写清硬性条件如地区、年限、技术栈
具体怎么做
导入模板并挂凭据
在n8n工作流列表用模板页导入该工作流。打开调用Claude的LangChain LLM链节点,把模型凭据切到你新建的Anthropic凭据;打开Telegram发送节点,新建Telegram凭据并填入机器人token。此时先不要激活定时器。
填写Configure me配置节点
找到名为Configure me的配置节点,替换:telegramChatId填你的chat ID;profile粘贴个人简介;minScore设首次建议7;maxPerRun建议先设5避免刷屏;allowedRegion填目标地区字符串;companies数组按{company, ats, slug}逐行填公司,ats只能是ashby、greenhouse或lever,slug是公司招聘页URL里的标识;useAggregators为true时再填Jobicy/Himalayas关键词。本站示例配置见下方材料,需整段替换。
手动跑一次验证抓取与去重
点手动执行。确认抓取节点能从你填的slug拉到岗位JSON,规范化节点把不同来源统一成同一字段结构(标题、公司、地区、链接、描述、来源名),合并去重后每个岗位只出现一次。若某公司slug拉不到数据,先单独修这一行再继续。
验证过滤分支
检查低成本过滤节点:地区不匹配、职位名不匹配过滤正则、标题含junior/intern的岗位应被分流丢弃;之前执行见过的岗位不再进入后续;本轮处理数量不超过maxPerRun。用下方测试数据核对分流结果。
验证Claude打分与unjudged兜底
确认LLM链对每个通过过滤的岗位输出结构化结果:fit布尔值、1至10分score、一句理由。故意把凭据改错跑一次,应看到岗位被标记为unjudged而不是整条流报错中断,验证后改回正确凭据。
确认Telegram输出并激活定时
确认先收到一条运行摘要,再逐条收到达标(含unjudged)岗位消息,Jobicy和Himalayas条目带via来源链接。全部通过后激活Schedule Trigger(默认每天09:00,可改时间)。
可直接复制的材料
Configure me配置对象(本站独立示例,需替换后粘贴)
本站编写的示例结构,company与slug为虚构,需换成真实公司及其招聘页slug;telegramChatId和profile必须替换为你自己的;字段名以原模板Configure me节点实际代码为准,导入后请逐项核对再改。
{
"telegramChatId": "123456789",
"profile": "5年后端工程师,主用Go和PostgreSQL,只考虑远程或上海岗位,年薪期望45万以上,不接受外包和初级岗位。",
"minScore": 7,
"maxPerRun": 5,
"allowedRegion": "Remote",
"useAggregators": true,
"feedKeywords": ["backend engineer", "golang"],
"companies": [
{ "company": "Example Robotics", "ats": "ashby", "slug": "examplerobotics" },
{ "company": "Demo Cloud", "ats": "greenhouse", "slug": "democloud" },
{ "company": "Sample Labs", "ats": "lever", "slug": "samplelabs" }
]
}Claude岗位匹配打分提示词(中文,可直接粘贴)
本站独立撰写,非模板原文提示词;导入后请对照模板LLM链的实际提示词与输出解析方式,字段名fit/score/reason需与后续节点的解析保持一致。
你是招聘匹配评估员。根据下面的求职者简介和岗位信息,判断该岗位是否值得投递。
求职者简介:
{{profile}}
岗位信息:
公司:{{company}}
职位:{{title}}
地区:{{location}}
描述:{{description}}
只输出JSON,不要输出其他文字,格式严格为:
{"fit": true或false, "score": 1到10的整数, "reason": "一句话中文理由"}
评分规则:满足简介中全部硬性条件(地区、年限、技术栈、薪资下限)才给7分以上;任一硬性条件不满足给4分以下;信息不足以判断的给5分并在reason里说明缺什么。测试岗位数据(虚构,用于手动验证过滤分支)
本站虚构测试数据:第1条应通过过滤进入打分,第2条应被排除初级岗位规则丢弃,第3条应被地区过滤丢弃。公司名与URL均为虚构。
[
{"title": "Senior Backend Engineer", "company": "Example Robotics", "location": "Remote", "url": "https://jobs.example.com/1", "source": "ashby", "description": "Go microservices, 5+ years"},
{"title": "Junior Backend Engineer", "company": "Demo Cloud", "location": "Remote", "url": "https://jobs.example.com/2", "source": "greenhouse", "description": "entry level Go"},
{"title": "Staff Go Engineer", "company": "Sample Labs", "location": "Berlin onsite only", "url": "https://jobs.example.com/3", "source": "lever", "description": "Go, distributed systems"}
]输入与输出示例
本站虚构演示,未真实调用Claude或发送Telegram;实际分数与理由由模型现场生成,可能不同。
输入
用上方测试数据三条岗位手动执行一次,profile为示例配置里的5年Go后端、只要远程、minScore=7。对应输出
过滤后仅第1条进入LLM链。Claude返回{"fit": true, "score": 8, "reason": "满足远程、5年Go经验和技术栈要求,描述未提薪资故未给满分"}。Telegram先收到摘要“本轮抓取3条,过滤后1条,达标推送1条”,再收到一条岗位消息:Senior Backend Engineer @ Example Robotics,匹配8/10,附岗位链接。第2条因junior被丢弃,第3条因onsite被丢弃。做完检查这些
- 手动执行后三个ATS来源各能拉到岗位并被规范化为统一字段,合并后同一岗位只出现一次
- 故意改错Anthropic凭据重跑,岗位被标记为unjudged且流程不中断,Telegram仍能收到兜底消息
- minScore设为7时只有score大于等于7或unjudged的岗位逐条推送到Telegram,且先收到一条运行摘要
- Jobicy或Himalayas来源的推送消息里带有via来源链接,激活定时器后次日09:00自动运行一次
容易卡住的地方
- slug必须取自公司招聘页URL且ats类型填错(ashby/greenhouse/lever三者之一)会抓不到数据,先逐行验证再加新公司
- Anthropic模型调用按量计费,maxPerRun设大或公司清单很长会显著增加每次运行成本,模板免费不代表模型免费
- 过滤依赖地区字符串与职位名正则,岗位写Remote - EU这类变体可能误杀,需要按实际数据调整过滤模式
- 未先手动跑通就激活定时器,会把大量不匹配岗位在09:00一次性推到Telegram
本站借助AI整理来源事实,独立编写中文操作指南与示例。示例不代表实际运行结果;来源效果尚未由本站独立复现。付费模板与模型、服务费用分别计算。
- 原文标题
- Score and send job matches from public boards to Telegram with Claude
- 原作者
- Oleksii Vasyliev
- 原始发布日期
- 2026-10-06T13:25:53.592Z
- 来源
- https://n8n.io/workflows/20539