AI PLAY玩法更新持续收录
← 回到更新流

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字的个人求职简介,写清硬性条件如地区、年限、技术栈

具体怎么做

  1. 导入模板并挂凭据

    在n8n工作流列表用模板页导入该工作流。打开调用Claude的LangChain LLM链节点,把模型凭据切到你新建的Anthropic凭据;打开Telegram发送节点,新建Telegram凭据并填入机器人token。此时先不要激活定时器。

  2. 填写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关键词。本站示例配置见下方材料,需整段替换。

  3. 手动跑一次验证抓取与去重

    点手动执行。确认抓取节点能从你填的slug拉到岗位JSON,规范化节点把不同来源统一成同一字段结构(标题、公司、地区、链接、描述、来源名),合并去重后每个岗位只出现一次。若某公司slug拉不到数据,先单独修这一行再继续。

  4. 验证过滤分支

    检查低成本过滤节点:地区不匹配、职位名不匹配过滤正则、标题含junior/intern的岗位应被分流丢弃;之前执行见过的岗位不再进入后续;本轮处理数量不超过maxPerRun。用下方测试数据核对分流结果。

  5. 验证Claude打分与unjudged兜底

    确认LLM链对每个通过过滤的岗位输出结构化结果:fit布尔值、1至10分score、一句理由。故意把凭据改错跑一次,应看到岗位被标记为unjudged而不是整条流报错中断,验证后改回正确凭据。

  6. 确认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