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

2026-09-08 · 原文发布日

每15分钟筛选Upwork新职位并推送高分机会

这是付费模板,作者标价大于零。流程每15分钟从公开的profile.md读取你的技能、报价和屏蔽词等JSON配置,按配置的搜索条件调Upwork GraphQL接口拉新职位,先做工期、预算下限、屏蔽词等确定性过滤和数据表去重,再让OpenAI聊天模型评分并起草提案开头,超过阈值的以HTML格式推送到Telegram。首次运行默认静默建档,不会用历史职位轰炸你;只监控和通知,不自动投递或消耗Connects。

原文要点

这是n8n官方模板库中的付费模板(作者标价大于零),需购买才能获得原工作流文件。其设计为:每15分钟定时运行,经HTTP读取公开的profile.md并提取其中JSON配置(技能、报价、屏蔽词、评分阈值等),按每条搜索通道调Upwork GraphQL接口(OAuth2)拉新职位;先做工期、预算下限、屏蔽词的确定性过滤并去重,跳过upwork_seen_jobs数据表中已记录的职位;首运行为seed模式只建档不推送;其余职位交OpenAI聊天模型评分并起草提案开头,超阈值者以HTML格式推Telegram,所有处理过的职位都写回数据表防重复。

这次做成什么

不购买原模板,在自有n8n实例中手工搭建一个同思路的迷你练习版:定时拉取合成职位数据→按profile配置过滤→AI评分→高分推送,理解各环节职责。原模板需购买,以下是本站独立设计的仿制练习,不是原工作流文件,也未实测。

准备什么

  • 一个含Data Tables与AI节点的n8n实例(版本要求以原模板页为准)
  • 一个可公开访问的profile.md原始URL(如GitHub raw)
  • Telegram机器人Token与目标chat ID(测试用隔离账号)
  • 练习阶段可用合成数据代替真实Upwork OAuth2凭据

具体怎么做

  1. 放置profile配置

    在公开仓库建profile.md,内嵌profile-config的JSON代码块(见材料1),字段含技能、最低时薪、屏蔽词、最低评分阈值。密钥绝不写进此文件,一律走n8n Credentials。

  2. 搭建触发与读取链路

    新建工作流:Schedule Trigger设为每15分钟→HTTP Request节点GET你的profile.md raw地址→Code节点用正则提取JSON块并校验必填字段,缺字段直接抛错停止。

  3. 获取并过滤职位

    练习阶段用Code节点输出下方合成职位JSON代替Upwork GraphQL请求;接Filter节点执行确定性规则:预算≥配置下限、标题与描述不含屏蔽词、发布时间在24小时内;再用Data Table节点查询upwork_seen_jobs,丢弃URL已存在的条目。

  4. AI评分与分流

    接AI聊天节点,用材料2的评分提示词让模型返回{score,reason,proposal_opening}的JSON;Switch节点判断score≥阈值走高分支→Telegram节点以HTML格式推送职位标题、预算、评分与提案开头;无论是否推送,都用Data Table upsert把职位URL写入upwork_seen_jobs。

  5. 首跑seed验证

    首次手动执行设为seed模式:只把当前职位写入数据表、不发任何Telegram消息;第二次运行时才对新增职位评分推送,避免被存量职位轰炸。

可直接复制的材料

profile.md配置块示例

本站编写的示例配置,字段名需在自建流程中保持一致;仅方案,与原付费模板字段可能不同,购买后以原模板为准。

```profile-config
{
  "skills": ["Python", "n8n自动化", "数据清洗"],
  "min_hourly_rate_usd": 30,
  "min_fixed_budget_usd": 200,
  "blocked_keywords": ["adult", "crypto scam", "免费试稿"],
  "search_lanes": ["n8n automation", "python scraping"],
  "min_alert_score": 7,
  "high_priority_score": 9,
  "first_run_behavior": "seed"
}
```

职位评分提示词

本站独立编写,n8n表达式路径需按你实际节点输出调整。

你是自由职业职位匹配助手。根据以下自由职业者画像与职位信息,输出严格JSON:{"score": 0-10整数, "reason": "50字内中文理由", "proposal_opening": "80字内中文提案开场白"}。
评分维度:技能匹配度、预算是否达标、客户描述清晰度、工期合理性。
自由职业者画像:{{$json.profile_summary}}
职位标题:{{$json.title}}
职位描述:{{$json.description}}
预算:{{$json.budget}}
只输出JSON,不要其他文字。

合成测试职位数据

本站虚构合成数据,仅用于隔离测试,不含任何真实个人信息或密钥。

[
  {"id": "job-001", "title": "n8n工作流自动化搭建", "description": "需要把表单数据同步到表格并定时发通知", "budget": "500 USD 固定价", "posted_hours_ago": 3, "url": "https://example.com/jobs/job-001"},
  {"id": "job-002", "title": "crypto scam推广脚本", "description": "帮做批量私信工具", "budget": "800 USD", "posted_hours_ago": 1, "url": "https://example.com/jobs/job-002"},
  {"id": "job-003", "title": "Python爬虫维护", "description": "每月维护现有采集脚本", "budget": "25 USD/小时", "posted_hours_ago": 5, "url": "https://example.com/jobs/job-003"}
]

输入与输出示例

本站虚构演示,评分为示例设定值,非模型真实输出,流程未实测。

输入

使用材料1配置与材料3三条合成职位,首跑已完成seed建档后,第二次运行注入job-001至job-003。

对应输出

job-002含屏蔽词"crypto scam"被确定性过滤直接标记seen不推送;job-003时薪25低于下限30被过滤;job-001进入AI评分,示例返回{"score":8,"reason":"技能完全匹配且预算达标","proposal_opening":"您好,我有三年n8n自动化搭建经验……"},8≥7触发Telegram推送,HTML消息含标题、500 USD预算与评分8,同时三条职位URL均upsert进upwork_seen_jobs。

做完检查这些

  • profile.md缺必填字段时工作流在提取节点即报错停止,不静默继续
  • 三条合成职位中只有job-001触发Telegram推送,其余两条仅写入数据表
  • 重复运行同一批数据时不产生第二条重复推送,数据表中URL不重复
  • seed首跑模式下Telegram零消息但数据表完成建档

容易卡住的地方

  • 这是付费模板,本文不附带可导入的工作流JSON,界面与字段名以购买后的原模板为准
  • 真实使用需Upwork OAuth2且账户有API权限,练习阶段勿用生产凭据
  • OpenAI或其他聊天模型调用可能另行收费,注意额度
  • Telegram推送为HTML格式,职位描述里的特殊字符需转义否则会解析失败
  • 屏蔽词匹配要注意大小写与部分匹配误伤,必要时加日志核对

原文与作者资料 ↗

本站借助AI整理来源事实,独立编写中文操作指南与示例。示例不代表实际运行结果;来源效果尚未由本站独立复现。付费模板与模型、服务费用分别计算。

原文标题
Score and alert Upwork jobs with OpenAI GPT-4.1-mini and Telegram
原作者
Paras Gediya
原始发布日期
2026-09-07T19:33:49.299Z
来源
https://n8n.io/workflows/19333