Upwork职位聚合与通知器
中级
这是一个Other, AI领域的自动化工作流,包含 13 个节点。主要使用 Set, Gmail, HttpRequest, GoogleSheets, Agent 等节点,结合人工智能技术实现智能自动化。 Upwork职位聚合器,含OpenAI摘要和多渠道通知
前置要求
- •Google 账号和 Gmail API 凭证
- •可能需要目标 API 的认证凭证
- •Google Sheets API 凭证
- •OpenAI API Key
使用的节点 (13)
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
"id": "Q4LhFRDraaQuorBs",
"meta": {
"instanceId": "84ad02d6104594179f43f1ce9cfe3a81637b2faedb57dafcb9e649b7542988db",
"templateCredsSetupCompleted": true
},
"name": "Upwork 职位聚合与通知器",
"tags": [],
"nodes": [
{
"id": "834d0a42-1398-4cd4-aaf3-b1164e00b4a8",
"name": "每日 Upwork 职位触发器",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
0,
0
],
"parameters": {
"rule": {
"interval": [
{
"triggerAtHour": 9
}
]
}
},
"typeVersion": 1.2
},
{
"id": "a0d54dfe-fc68-4020-b2ed-d191a57d5897",
"name": "获取 Upwork 职位(Apify)",
"type": "n8n-nodes-base.httpRequest",
"position": [
220,
0
],
"parameters": {
"url": "https://api.apify.com/v2/actor-tasks/<YOUR_TASK_ID>/run-sync-get-dataset-items?token=<YOUR_API_TOKEN>",
"method": "POST",
"options": {}
},
"typeVersion": 4.2
},
{
"id": "a9812fc7-0fa5-492a-91aa-392d0c8ee43b",
"name": "格式化职位字段",
"type": "n8n-nodes-base.set",
"position": [
440,
0
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "24bd782a-a34f-4b98-8d8f-21763181677b",
"name": "title",
"type": "string",
"value": "={{ $json.title }}"
},
{
"id": "ee879b3d-339a-44c2-9e11-f653edab2e7f",
"name": "url",
"type": "string",
"value": "={{ $json.url }}"
},
{
"id": "b5ff7975-667b-4997-ac8f-acbe9a3b3b85",
"name": "description",
"type": "string",
"value": "={{ $json.description }}"
},
{
"id": "29051fc3-e4f8-4e39-a024-d7b943271acc",
"name": "budget",
"type": "string",
"value": "={{ $json.budget }}"
},
{
"id": "a6492128-a58a-4735-b427-12265f81da3a",
"name": "datePosted",
"type": "string",
"value": "={{ $json.datePosted }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "a996aa35-8f0d-4e1a-997b-4aadd402f65c",
"name": "记录职位到 Google Sheet",
"type": "n8n-nodes-base.googleSheets",
"position": [
740,
0
],
"parameters": {
"columns": {
"value": {
"url": "={{ $json.url }}",
"title": "={{ $json.title }}",
"budget": "={{ $json.budget }}",
"datePosted": "={{ $json.datePosted }}",
"description": "={{ $json.description }}"
},
"schema": [
{
"id": "title",
"type": "string",
"display": true,
"required": false,
"displayName": "title",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "url",
"type": "string",
"display": true,
"required": false,
"displayName": "url",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "description",
"type": "string",
"display": true,
"required": false,
"displayName": "description",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "budget",
"type": "string",
"display": true,
"required": false,
"displayName": "budget",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "datePosted",
"type": "string",
"display": true,
"required": false,
"displayName": "datePosted",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "append",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1dEU6uMB4ehiGXjIExjtFQHvUjANRODawKMBGKDaTcEc/edit#gid=0",
"cachedResultName": "Sheet1"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1dEU6uMB4ehiGXjIExjtFQHvUjANRODawKMBGKDaTcEc",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1dEU6uMB4ehiGXjIExjtFQHvUjANRODawKMBGKDaTcEc/edit?usp=drivesdk",
"cachedResultName": "Upwork Scraper"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "v021NCWuTwSSSXPP",
"name": "Google Sheets account 2"
}
},
"typeVersion": 4.5
},
{
"id": "e0cd68e5-4d6d-479a-8a48-1faccc9f3ff7",
"name": "总结职位列表",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
960,
0
],
"parameters": {
"text": "=Provide a summary of the upwork jobs. It should be in email format\n\nTitle: {{ $json.title }}\nURL: {{ $json.url }}\nDescription:{{ $json.description }}\nBudget:{{ $json.budget }}\nDate posted: {{ $json.datePosted }}",
"options": {},
"promptType": "define",
"hasOutputParser": true
},
"typeVersion": 1.9
},
{
"id": "30002e32-6046-4e5c-a27f-a0d58f380ae9",
"name": "发送职位摘要邮件",
"type": "n8n-nodes-base.gmail",
"position": [
1500,
0
],
"webhookId": "6937d724-5ede-4c56-83fd-fde84496eabd",
"parameters": {
"sendTo": "shahkar.genai@gmail.com",
"message": "={{ $json.output.Summary }}",
"options": {},
"subject": "={{ $json.output.subject }}"
},
"credentials": {
"gmailOAuth2": {
"id": "YMHjS2nJsRGP7svY",
"name": "Gmail account"
}
},
"typeVersion": 2.1
},
{
"id": "a1fb5d66-b780-4b6b-96be-3391b6196301",
"name": "OpenAI 职位摘要器",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
900,
260
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4o-mini"
},
"options": {}
},
"credentials": {
"openAiApi": {
"id": "wYwTjEv45IzlAOAu",
"name": "OpenAi account 2"
}
},
"typeVersion": 1.2
},
{
"id": "f79a7336-80fc-4832-862b-51d0d737d5a3",
"name": "解析摘要输出",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
1160,
260
],
"parameters": {
"jsonSchemaExample": "{\n \"subject\": \"Upwork Job Opportunity: Webflow Expert Needed for Portfolio Website\",\n \"Summary\": \"The client is seeking a designer with strong experience in Webflow to create a responsive and elegant portfolio site.\"\n}\n"
},
"typeVersion": 1.2
},
{
"id": "85465ead-0a06-455c-9308-866c092d8ef5",
"name": "便签",
"type": "n8n-nodes-base.stickyNote",
"position": [
-60,
-560
],
"parameters": {
"color": 3,
"width": 640,
"height": 760,
"content": "### 🔁 **第一部分:职位获取与准备**"
},
"typeVersion": 1
},
{
"id": "3699ba73-75ee-4bf2-91eb-8d0d05143321",
"name": "便签1",
"type": "n8n-nodes-base.stickyNote",
"position": [
680,
-620
],
"parameters": {
"color": 5,
"width": 620,
"height": 1040,
"content": "### 📊 **第二部分:数据记录与摘要生成**"
},
"typeVersion": 1
},
{
"id": "2289feb5-9ab1-4dbb-a77e-f4742f0f341d",
"name": "便签2",
"type": "n8n-nodes-base.stickyNote",
"position": [
1400,
-420
],
"parameters": {
"color": 6,
"width": 340,
"height": 600,
"content": "## 📤 **第三部分:职位摘要通知**"
},
"typeVersion": 1
},
{
"id": "95727922-4856-4481-acff-519638ac5d23",
"name": "便签 9",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1520,
-560
],
"parameters": {
"color": 4,
"width": 1300,
"height": 320,
"content": "======================================="
},
"typeVersion": 1
},
{
"id": "c161b105-70a6-431a-91e2-9031ccba8fe4",
"name": "便签说明4",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1520,
-220
],
"parameters": {
"color": 4,
"width": 1289,
"height": 3058,
"content": "# ✅ n8n 自动化:\"Upwork 职位聚合与通知器\""
},
"typeVersion": 1
}
],
"active": false,
"pinData": {
"Fetch Upwork Jobs (Apify)": [
{
"json": {
"url": "https://www.upwork.com/job/Looking-Webflow-Expert-Build-Portfolio-Website_~01abcd123456efghij",
"title": "Looking for a Webflow Expert to Build a Portfolio Website",
"budget": "$300",
"datePosted": "2025-06-03T08:45:00Z",
"description": "Need a designer with strong Webflow experience to create a responsive and elegant portfolio site."
}
},
{
"json": {
"url": "https://www.upwork.com/job/React-Developer-Needed-SaaS-Dashboard_~0123abcd4567efghij",
"title": "React Developer Needed for SaaS Dashboard",
"budget": "$500",
"datePosted": "2025-06-03T06:30:00Z",
"description": "Looking for an experienced React developer to work on our SaaS product dashboard UI. Experience with Tailwind is a plus."
}
},
{
"json": {
"url": "https://www.upwork.com/job/Copywriter-Landing-Page-Finance_~0a1b2c3d4e5f67890",
"title": "Copywriter for Landing Page Content (Finance Industry)",
"budget": "$150",
"datePosted": "2025-06-02T21:15:00Z",
"description": "We need SEO-optimized copy for a fintech landing page. Prior experience in finance writing preferred."
}
}
]
},
"settings": {
"executionOrder": "v1"
},
"versionId": "8c929fc6-2198-4adf-89c3-ff0a2b296fdd",
"connections": {
"Format Job Fields": {
"main": [
[
{
"node": "Log Jobs to Google Sheet",
"type": "main",
"index": 0
}
]
]
},
"Parse Summary Output": {
"ai_outputParser": [
[
{
"node": "Summarize Job Listings",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"OpenAI Job Summarizer": {
"ai_languageModel": [
[
{
"node": "Summarize Job Listings",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Summarize Job Listings": {
"main": [
[
{
"node": "Send Job Summary Email",
"type": "main",
"index": 0
}
]
]
},
"Daily Upwork Job Trigger": {
"main": [
[
{
"node": "Fetch Upwork Jobs (Apify)",
"type": "main",
"index": 0
}
]
]
},
"Log Jobs to Google Sheet": {
"main": [
[
{
"node": "Summarize Job Listings",
"type": "main",
"index": 0
}
]
]
},
"Fetch Upwork Jobs (Apify)": {
"main": [
[
{
"node": "Format Job Fields",
"type": "main",
"index": 0
}
]
]
}
}
}常见问题
如何使用这个工作流?
复制上方的 JSON 配置代码,在您的 n8n 实例中创建新工作流并选择「从 JSON 导入」,粘贴配置后根据需要修改凭证设置即可。
这个工作流适合什么场景?
中级 - 其他, 人工智能
需要付费吗?
本工作流完全免费,您可以直接导入使用。但请注意,工作流中使用的第三方服务(如 OpenAI API)可能需要您自行付费。
相关工作流推荐
Upwork 职位聚合与通知器
自动化职位搜索:Upwork 机会聚合与 AI 驱动通知器
Set
Gmail
Http Request
+6
13 节点Yaron Been
其他
Upwork职位发布者邮件
Upwork潜在客户开发:通过LinkedIn爬取和AI提取客户邮箱
If
Http Request
Google Sheets
+5
21 节点Yaron Been
其他
AI YouTube分析助手:评论分析与洞察报告
AI YouTube分析助手:评论分析器与洞察报告生成器
If
Set
Code
+9
19 节点Yaron Been
人工智能
首席财务官预测智能体
基于Stripe数据的GPT-4与Google表格自动化收入预测
Set
Code
Stripe
+9
16 节点Yaron Been
人工智能
自动新闻摘要与邮件简报(GPT-4、NewsAPI 和 Gmail)
使用 GPT-4、NewsAPI 和 Gmail 自动生成新闻摘要与邮件简报
Gmail
Http Request
Google Sheets
+4
7 节点Yaron Been
人工智能
Crunchbase初创公司活动监控器
每日初创公司情报:使用GPT处理Crunchbase更新并发送电子邮件摘要
Set
Gmail
Http Request
+5
12 节点Yaron Been
人工智能
工作流信息
难度等级
中级
节点数量13
分类2
节点类型9
作者
Yaron Been
@yaron-nofluffBuilding AI Agents and Automations | Growth Marketer | Entrepreneur | Book Author & Podcast Host If you need any help with Automations, feel free to reach out via linkedin: https://www.linkedin.com/in/yaronbeen/ And check out my Youtube channel: https://www.youtube.com/@YaronBeen/videos
外部链接
在 n8n.io 查看 →
分享此工作流