使用 BrowserAct 从 Google Sheets 向多个招聘网站发布职位
高级
这是一个HR领域的自动化工作流,包含 20 个节点。主要使用 If, Code, Slack, GoogleSheets, ManualTrigger 等节点。 使用 Google Sheets 和 BrowserAct 自动化多平台职位发布
前置要求
- •Slack Bot Token 或 Webhook URL
- •Google Sheets API 凭证
分类
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
"id": "qMwMfHxAAddl6h5v",
"meta": {
"instanceId": "88804d8e264d231c18413147cc92e4245b20ae7b97d774bad847556f645c8192",
"templateCredsSetupCompleted": true
},
"name": "使用 BrowserAct 从 Google Sheets 向多个招聘网站发布职位",
"tags": [],
"nodes": [
{
"id": "5f1b282a-3d24-47ba-975e-8b665bd685cb",
"name": "当点击\"执行工作流\"时",
"type": "n8n-nodes-base.manualTrigger",
"position": [
-592,
-48
],
"parameters": {},
"typeVersion": 1
},
{
"id": "6e59bf13-7e4a-49c1-9fc5-7ef9bd9d7793",
"name": "获取表格中的行",
"type": "n8n-nodes-base.googleSheets",
"position": [
-400,
-48
],
"parameters": {
"options": {},
"sheetName": {
"__rl": true,
"mode": "list",
"value": 1104319058,
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/18sw7io0yJOTDzvcknGmjBBqtK154CLk3k0FoWJZbfI0/edit#gid=1104319058",
"cachedResultName": "Job Example"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "18sw7io0yJOTDzvcknGmjBBqtK154CLk3k0FoWJZbfI0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/18sw7io0yJOTDzvcknGmjBBqtK154CLk3k0FoWJZbfI0/edit?usp=drivesdk",
"cachedResultName": "Test For BrowserAct"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "wAMAqU43zjVjlpuA",
"name": "Google Sheets account"
}
},
"typeVersion": 4.7
},
{
"id": "13fc2a7b-0c28-4f0c-b226-648bceca7536",
"name": "运行工作流任务",
"type": "n8n-nodes-browseract-workflows.browserAct",
"position": [
48,
-64
],
"parameters": {
"workflowId": "56841107053416567",
"inputParameters": {
"parameters": [
{
"name": "Target_Site",
"value": "={{ $json[\" Job_Board_URL\"] }}"
},
{
"name": "Job_Title",
"value": "={{ $json.Job_Title }}"
},
{
"name": "Job_Description",
"value": "={{ $json.Job_Description }}"
},
{
"name": "Phone_Number",
"value": "={{ $json.Phone_Number }}"
},
{
"name": "Address",
"value": "={{ $json.Address }}"
},
{
"name": "tags",
"value": "={{ $json.tags }}"
},
{
"name": "Company",
"value": "={{ $json.Company }}"
},
{
"name": "Login_Username",
"value": "={{ $json.Login_Username }}"
},
{
"name": "Login_Password",
"value": "={{ $json.Login_Password }}"
}
]
},
"additionalFields": {
"saveBrowserData": false
}
},
"credentials": {
"browserActApi": {
"id": "AzKMhR2eAlOjzDiJ",
"name": "BrowserAct account"
}
},
"typeVersion": 1
},
{
"id": "3741a23f-a304-445b-895d-4dd7dfcc7ccc",
"name": "获取工作流任务详情",
"type": "n8n-nodes-browseract-workflows.browserAct",
"onError": "continueErrorOutput",
"position": [
240,
-64
],
"parameters": {
"taskId": "={{ $json.id }}",
"operation": "getTask",
"waitForFinish": true
},
"credentials": {
"browserActApi": {
"id": "AzKMhR2eAlOjzDiJ",
"name": "BrowserAct account"
}
},
"typeVersion": 1
},
{
"id": "1d84240b-6345-4186-bf93-c31023b0bc13",
"name": "在表格中更新行",
"type": "n8n-nodes-base.googleSheets",
"position": [
912,
-64
],
"parameters": {
"columns": {
"value": {
"Job_ID": "={{ $('Get row(s) in sheet').item.json.Job_ID }}",
"Status": "={{ $json.Status }}",
"Live_URL": "={{ $json.Url }}"
},
"schema": [
{
"id": "Job_ID",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Job_ID",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Posting_Status",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "Posting_Status",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Job_Title",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "Job_Title",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Job_Description",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "Job_Description",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": " Job_Board_URL",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": " Job_Board_URL",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Login_Username",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "Login_Username",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Login_Password",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "Login_Password",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Phone_Number",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "Phone_Number",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Address",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "Address",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Live_URL",
"type": "string",
"display": true,
"required": false,
"displayName": "Live_URL",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Status",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Status",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "tags",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "tags",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Company",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "Company",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "row_number",
"type": "number",
"display": true,
"removed": true,
"readOnly": true,
"required": false,
"displayName": "row_number",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"Job_ID"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "update",
"sheetName": {
"__rl": true,
"mode": "list",
"value": 1104319058,
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/18sw7io0yJOTDzvcknGmjBBqtK154CLk3k0FoWJZbfI0/edit#gid=1104319058",
"cachedResultName": "Job Example"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "18sw7io0yJOTDzvcknGmjBBqtK154CLk3k0FoWJZbfI0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/18sw7io0yJOTDzvcknGmjBBqtK154CLk3k0FoWJZbfI0/edit?usp=drivesdk",
"cachedResultName": "Test For BrowserAct"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "wAMAqU43zjVjlpuA",
"name": "Google Sheets account"
}
},
"typeVersion": 4.7
},
{
"id": "bcf633ed-6dd3-406b-9943-896fe11b0683",
"name": "JavaScript 代码",
"type": "n8n-nodes-base.code",
"position": [
704,
-64
],
"parameters": {
"jsCode": "// Get the JSON string using the exact path provided by the user.\nconst jsonString = $input.first().json.output.string;\n\nlet parsedData;\n\n// Check if the string exists before attempting to parse\nif (!jsonString) {\n // Return an empty array or throw an error if no string is found\n // Throwing an error is usually better to stop the workflow if data is missing.\n throw new Error(\"Input string is empty or missing at the specified path: $input.first().json.output.string\");\n}\n\ntry {\n // 1. Parse the JSON string into a JavaScript array of objects\n parsedData = JSON.parse(jsonString);\n} catch (error) {\n // Handle JSON parsing errors (e.g., if the string is malformed)\n throw new Error(`Failed to parse JSON string: ${error.message}`);\n}\n\n// 2. Ensure the parsed data is an array\nif (!Array.isArray(parsedData)) {\n throw new Error('Parsed data is not an array. It cannot be split into multiple items.');\n}\n\n// 3. Map the array of objects into the n8n item format { json: object }\n// Each element in this array will be treated as a new item by n8n, achieving the split.\nconst outputItems = parsedData.map(item => ({\n json: item,\n}));\n\n// 4. Return the new array of items\nreturn outputItems;"
},
"typeVersion": 2
},
{
"id": "2b987dff-8293-4723-9ea8-455727441cd2",
"name": "如果",
"type": "n8n-nodes-base.if",
"position": [
-224,
-48
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "a33df146-1505-417b-ba35-fc3c7823e244",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.Posting_Status }}",
"rightValue": "Ready to Post"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "34fccf50-7241-4f56-ac8c-8df73c017618",
"name": "Google Sheets触发器",
"type": "n8n-nodes-base.googleSheetsTrigger",
"position": [
-400,
96
],
"parameters": {
"event": "rowUpdate",
"options": {},
"pollTimes": {
"item": [
{
"mode": "everyMinute"
}
]
},
"sheetName": {
"__rl": true,
"mode": "list",
"value": 1104319058,
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/18sw7io0yJOTDzvcknGmjBBqtK154CLk3k0FoWJZbfI0/edit#gid=1104319058",
"cachedResultName": "Job Example"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "18sw7io0yJOTDzvcknGmjBBqtK154CLk3k0FoWJZbfI0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/18sw7io0yJOTDzvcknGmjBBqtK154CLk3k0FoWJZbfI0/edit?usp=drivesdk",
"cachedResultName": "Test For BrowserAct"
}
},
"credentials": {
"googleSheetsTriggerOAuth2Api": {
"id": "r1f3Ap74oZQWWxYy",
"name": "Google Sheets Trigger account"
}
},
"typeVersion": 1
},
{
"id": "91723f53-45d3-45a8-b97c-1506acfb87ef",
"name": "便利贴 - 介绍",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1136,
-384
],
"parameters": {
"width": 528,
"height": 450,
"content": "## 立即试用!"
},
"typeVersion": 1
},
{
"id": "a884ca62-a5b7-4115-9ef3-d04253d42862",
"name": "便利贴 - 使用方法",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1136,
80
],
"parameters": {
"width": 528,
"height": 228,
"content": "## 使用方法"
},
"typeVersion": 1
},
{
"id": "5088b29a-d8e1-4b8d-9bdc-dfb676bb7c39",
"name": "便利贴 - 需要帮助",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1136,
320
],
"parameters": {
"width": 528,
"height": 104,
"content": "### 需要帮助?"
},
"typeVersion": 1
},
{
"id": "b106ec53-560b-43ff-8b9e-8cfa9a8de7e9",
"name": "便签 - 输入与触发器",
"type": "n8n-nodes-base.stickyNote",
"position": [
-464,
-288
],
"parameters": {
"color": 6,
"width": 416,
"height": 208,
"content": "### 🕹️ 1. 输入与触发器控制"
},
"typeVersion": 1
},
{
"id": "7303bb7d-d6b8-4348-959c-39879435b4df",
"name": "便签 - 自动化核心",
"type": "n8n-nodes-base.stickyNote",
"position": [
-16,
-288
],
"parameters": {
"color": 5,
"width": 400,
"height": 200,
"content": "### 🤖 2. 自动化引擎"
},
"typeVersion": 1
},
{
"id": "73af619d-f874-4e1b-94e0-c0bf9177c434",
"name": "便签 - 反馈循环",
"type": "n8n-nodes-base.stickyNote",
"position": [
416,
-288
],
"parameters": {
"color": 3,
"width": 816,
"height": 200,
"content": "### 🔄 3. 反馈、更新与发送警报"
},
"typeVersion": 1
},
{
"id": "d6f5713e-e7e1-483c-b4cb-e00875706ce3",
"name": "便签",
"type": "n8n-nodes-base.stickyNote",
"position": [
-16,
-80
],
"parameters": {
"color": 5,
"width": 400,
"height": 176,
"content": ""
},
"typeVersion": 1
},
{
"id": "add8711a-864b-4b96-a0d1-97e4eb4af534",
"name": "便签1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-464,
-64
],
"parameters": {
"color": 6,
"width": 416,
"height": 304,
"content": ""
},
"typeVersion": 1
},
{
"id": "cd88ea7e-ce56-48ab-833d-8d8a67495b77",
"name": "便签2",
"type": "n8n-nodes-base.stickyNote",
"position": [
416,
-80
],
"parameters": {
"color": 3,
"width": 816,
"height": 288,
"content": ""
},
"typeVersion": 1
},
{
"id": "5bf223b4-2ce4-44a2-9125-cf64c2bbea7f",
"name": "发送消息",
"type": "n8n-nodes-base.slack",
"position": [
1104,
-64
],
"webhookId": "01fb8ea5-9534-45f8-a069-7745ee2b8ec7",
"parameters": {
"text": "={{ $('Get row(s) in sheet').item.json.Job_ID }} added to Job List\nStatus : {{ $json.Status }}\n",
"select": "channel",
"channelId": {
"__rl": true,
"mode": "list",
"value": "C09KLV9DJSX",
"cachedResultName": "all-browseract-workflow-test"
},
"otherOptions": {},
"authentication": "oAuth2"
},
"credentials": {
"slackOAuth2Api": {
"id": "5rQCkyObBqbHIbZA",
"name": "Slack account"
}
},
"typeVersion": 2.3
},
{
"id": "9ee840f8-ac5f-4183-8a69-4acfd98cb2af",
"name": "如果1",
"type": "n8n-nodes-base.if",
"position": [
512,
-64
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "e2eb7caa-21f4-4095-8c78-19438adc085d",
"operator": {
"type": "string",
"operation": "notEmpty",
"singleValue": true
},
"leftValue": "={{ $json.output.string }}",
"rightValue": ""
}
]
}
},
"typeVersion": 2.2
},
{
"id": "b6fe8efd-74b1-4f33-84a6-0e79062bdb23",
"name": "发送消息1",
"type": "n8n-nodes-base.slack",
"position": [
704,
64
],
"webhookId": "01fb8ea5-9534-45f8-a069-7745ee2b8ec7",
"parameters": {
"text": "=Processing for Job ID {{ $('Get row(s) in sheet').item.json.Job_ID }} was skipped because an error occurred.\nStatus: Error. Please check the provided URL or data or Workflow for issues.",
"select": "channel",
"channelId": {
"__rl": true,
"mode": "list",
"value": "C09KLV9DJSX",
"cachedResultName": "all-browseract-workflow-test"
},
"otherOptions": {},
"authentication": "oAuth2"
},
"credentials": {
"slackOAuth2Api": {
"id": "5rQCkyObBqbHIbZA",
"name": "Slack account"
}
},
"typeVersion": 2.3
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "f5e47078-51b9-494f-92d3-5216436e01c0",
"connections": {
"If": {
"main": [
[
{
"node": "Run a workflow task",
"type": "main",
"index": 0
}
]
]
},
"If1": {
"main": [
[
{
"node": "Code in JavaScript",
"type": "main",
"index": 0
}
],
[
{
"node": "Send a message1",
"type": "main",
"index": 0
}
]
]
},
"Code in JavaScript": {
"main": [
[
{
"node": "Update row in sheet",
"type": "main",
"index": 0
}
]
]
},
"Get row(s) in sheet": {
"main": [
[
{
"node": "If",
"type": "main",
"index": 0
}
]
]
},
"Run a workflow task": {
"main": [
[
{
"node": "Get details of a workflow task",
"type": "main",
"index": 0
}
]
]
},
"Update row in sheet": {
"main": [
[
{
"node": "Send a message",
"type": "main",
"index": 0
}
]
]
},
"Get details of a workflow task": {
"main": [
[
{
"node": "If1",
"type": "main",
"index": 0
}
],
[
{
"node": "Send a message1",
"type": "main",
"index": 0
}
]
]
},
"When clicking ‘Execute workflow’": {
"main": [
[
{
"node": "Get row(s) in sheet",
"type": "main",
"index": 0
}
]
]
}
}
}常见问题
如何使用这个工作流?
复制上方的 JSON 配置代码,在您的 n8n 实例中创建新工作流并选择「从 JSON 导入」,粘贴配置后根据需要修改凭证设置即可。
这个工作流适合什么场景?
高级 - 人力资源
需要付费吗?
本工作流完全免费,您可以直接导入使用。但请注意,工作流中使用的第三方服务(如 OpenAI API)可能需要您自行付费。
相关工作流推荐
使用 BrowserAct 和 Gemini 查找并筛选有资金支持的线索
通过 BrowserAct 和 Gemini 查找并筛选有资金支持的潜在客户
If
Code
Merge
+9
29 节点Madame AI Team | Kai
潜在客户开发
高级WooCommerce产品对账与同步
使用Google Gemini AI和BrowserAct同步WooCommerce库存并创建产品
If
Code
Merge
+9
31 节点Madame AI Team | Kai
客户关系管理
使用BrowserAct实现电商店铺新品自动监控
使用BrowserAct和Slack警报监控Shopify店铺新品
If
Code
Merge
+6
24 节点Madame AI Team | Kai
市场调研
使用BrowserAct和Slack的实时MAP执行和价格违规警报
Google表格、BrowserAct和Slack的实时MAP执行和价格违规警报
If
Code
Merge
+6
20 节点Madame AI Team | Kai
市场调研
从任何网站抓取并导入产品到 Shopify(含变体和图片)(针对鞋类优化 - NIKE 到 Shopify)
使用 BrowserAct 抓取并导入鞋类产品到 Shopify(含变体和图片)
Set
Code
Merge
+9
25 节点Madame AI Team | Kai
杂项
GitHub 用户活动与数据抓取器(数据丰富引擎)
使用 BrowserAct 抓取详细 GitHub 个人资料到 Google Sheets
Set
Code
Merge
+7
30 节点Madame AI Team | Kai
潜在客户开发
工作流信息
难度等级
高级
节点数量20
分类1
节点类型8
作者
Madame AI Team | Kai
@madame-aiI’m a PhD in Physics turned AI enthusiast, passionate about uncovering how AI is transforming content creation, business, and daily life.
外部链接
在 n8n.io 查看 →
分享此工作流