2026-10-05 · 原文发布日
Upwork职位提醒邮件自动筛选并推送到Telegram
这个免费n8n流程每分钟监听Gmail里符合筛选条件的Upwork职位提醒邮件,把你的自由职业者档案、偏好语言和最低分数阈值拼进数据,交给OpenAI解析邮件中所有职位并返回JSON:摘要、风险点和0到10分的匹配度;低于阈值的丢弃,余下的每个职位生成一张HTML卡片(含分数、预算、理由和风险),发到Telegram并附一键打开Upwork职位的按钮。
原文要点
原流程每分钟监听Gmail中符合筛选条件的Upwork职位提醒邮件,Set节点把你的自由职业者档案、偏好语言和最低匹配分阈值拼进数据,OpenAI解析邮件内全部职位并返回JSON列表:摘要、风险点和0–10匹配度。低于阈值的职位被丢弃,链接按直接职位URL、「View job details」链接、兜底搜索链接三级回退选取,每个保留职位渲染成含分数、预算、理由和风险的HTML卡片发Telegram,附一键打开Upwork的内联按钮。
这次做成什么
搭一条从Upwork提醒邮件到Telegram高分职位卡片的自动筛选流程。练习方案:先用一封合成的职位提醒邮件手动喂给解析节点,阈值设6,验证JSON解析、过滤、链接回退和卡片渲染四段各自正确。
准备什么
- n8n实例(Cloud或自托管)且能使用Gmail Trigger轮询
- 接收Upwork职位提醒邮件的Gmail账号及OAuth凭据
- OpenAI API key,且账号可用所选GPT模型
- 用@BotFather创建的Telegram bot token和目标chat ID
- 一段写清技能、时薪、偏好的个人自由职业者档案文本
具体怎么做
配置Gmail监听
Gmail Trigger设为每分钟轮询,搜索查询限定发件人与时间窗,例如 from:alerts@upwork.com newer_than:1d(发件地址以你真实收到的提醒邮件为准)。手动触发一次,确认能拉到一封提醒邮件。
注入档案与阈值
在「Your profile & settings」Set节点填三值:profileText(你的技能与报价)、language(卡片语言,如中文)、minScore(练习设6)。这些字段并入邮件数据传给下一步。
OpenAI解析并打分
OpenAI节点接收邮件正文加档案,提示词要求抽取邮件中每个职位,返回纯JSON数组:title、budget、summary、risks、score(0–10)、jobUrl。后续Split节点把数组拆成每职位一条item。
过滤、选链接、发卡片
Filter节点丢弃score<minScore的item。链接逻辑依次取jobUrl、邮件中「View job details」链接,都没有则用Upwork搜索兜底链接。Telegram节点以HTML parse mode发送卡片(分数、预算、摘要、理由、风险),inline keyboard按钮指向最终链接。
可直接复制的材料
OpenAI职位解析提示词(本站编写)
本站独立编写的替代提示词,占位符按n8n表达式接到Set节点与邮件字段。
你是自由职业职位筛选助手。下面是自由职业者档案和一封Upwork职位提醒邮件正文。
任务:抽取邮件中全部职位,逐个按档案匹配度打0–10分(10为完美匹配),指出风险(预算过低、要求模糊、技能不符等)。
严格只输出合法JSON数组,不输出任何其他文字。每项字段:title、budget、summary(一句中文)、risks(字符串数组)、score(数字)、jobUrl(邮件中该职位的链接,没有则空字符串)。
【档案】{{ $json.profileText }}
【邮件正文】{{ $json.emailBody }}Set节点档案配置(本站示例)
本站虚构的练习档案,替换成你自己的技能、报价区间与底线。
{
"profileText": "中文自由职业者,擅长React前端与n8n自动化,时薪40-70美元,不接固定价低于500美元的项目,偏好可远程异步协作的长期客户。",
"language": "zh",
"minScore": 6
}合成测试邮件正文
本站合成的练习邮件,jobUrl均为虚构,把它粘进手动触发数据即可脱离真实邮箱测试解析段。
Subject: Upwork Job Alert: New jobs matching your search
1) React Dashboard for Analytics Startup — Fixed $800 — Need a React dev to build charts dashboard. Apply: https://www.upwork.com/jobs/~demo001
2) Full-stack App Rewrite — Hourly $15-25 — Migrate legacy PHP app to modern stack, 6 months. Apply: https://www.upwork.com/jobs/~demo002
3) Workflow Automation with n8n — Fixed $600 — Build lead-enrichment automations. Apply: https://www.upwork.com/jobs/~demo003输入与输出示例
本站虚构演示,分数是提示词预期格式的示意,非模型实际返回。
输入
以上合成邮件 + 档案(React与n8n、时薪40-70、固定价≥500美元),minScore=6。对应输出
预期JSON:[{"title":"React Dashboard for Analytics Startup","budget":"Fixed $800","summary":"React图表仪表盘开发","risks":["需求细节少"],"score":8,"jobUrl":"https://www.upwork.com/jobs/~demo001"},{"title":"Full-stack App Rewrite","budget":"Hourly $15-25","summary":"PHP旧系统迁移","risks":["时薪低于底线","技能栈不符"],"score":3,"jobUrl":"https://www.upwork.com/jobs/~demo002"},{"title":"Workflow Automation with n8n","budget":"Fixed $600","summary":"n8n线索富集自动化","risks":[],"score":9,"jobUrl":"https://www.upwork.com/jobs/~demo003"}];3分职位被过滤,其余两条各发一张Telegram HTML卡片。做完检查这些
- Set节点三值(profileText/language/minScore)正确并入数据流并出现在OpenAI输入里
- OpenAI输出是合法JSON数组且每项含title、score、jobUrl字段,Split后每职位一条item
- 低于minScore的职位不进Telegram;保留职位卡片含分数、预算、摘要与风险
- 卡片按钮链接有效:优先jobUrl,缺失时回退到邮件链接或搜索链接
容易卡住的地方
- Gmail搜索查询的发件地址要以你真实收到的Upwork提醒邮件为准,抄示例可能一条都匹配不到
- 模型偶尔在JSON外多输出解释文字,提示词必须强调只输出JSON,必要时加解析兜底
- 邮件里多个职位的链接容易被混配,jobUrl为空时要有回退逻辑否则按钮指向错误
- OpenAI与Telegram均按各自计费/限额规则运行,每分钟轮询注意配额消耗
本站借助AI整理来源事实,独立编写中文操作指南与示例。示例不代表实际运行结果;来源效果尚未由本站独立复现。付费模板与模型、服务费用分别计算。
- 原文标题
- Triage Upwork job alert emails with Gmail, OpenAI, and Telegram
- 原作者
- Umarjon
- 原始发布日期
- 2026-10-04T17:14:26.726Z
- 来源
- https://n8n.io/workflows/20408