使用Gemini AI和Decodo爬虫自动匹配简历与职位
高级
这是一个HR, AI Summarization领域的自动化工作流,包含 20 个节点。主要使用 Set, Gmail, Merge, Switch, Webhook 等节点。 使用Gemini AI和Decodo爬虫自动匹配简历与职位
前置要求
- •Google 账号和 Gmail API 凭证
- •HTTP Webhook 端点(n8n 会自动生成)
- •Google Gemini API Key
使用的节点 (20)
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
"meta": {
"instanceId": "689fa22e68cd4198e4ae37f3cc44f498087edd235a867e22515be823bab694c7"
},
"nodes": [
{
"id": "22f926f5-4580-42f2-8546-ba24afed4714",
"name": "便签",
"type": "n8n-nodes-base.stickyNote",
"position": [
-2032,
-48
],
"parameters": {
"width": 576,
"height": 848,
"content": "## 使用Gemini AI和Decodo爬虫自动匹配简历与职位"
},
"typeVersion": 1
},
{
"id": "28b37b94-1b3b-445a-94e9-0c5c5cb1164c",
"name": "设置:捕获表单字段",
"type": "n8n-nodes-base.set",
"position": [
-1008,
400
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "62bbfb3c-6407-4889-9673-5ef912ab0afb",
"name": "short_summary",
"type": "string",
"value": "={{ $json.body.data.fields[1].value }}"
},
{
"id": "069dd205-fd11-445e-8693-422963e1b9c0",
"name": "resume_url_link",
"type": "string",
"value": "={{ $json.body.data.fields[2].value[0].url }}"
},
{
"id": "784f8da9-1eea-446f-9f6d-2d0a1ddbdb03",
"name": "user_email",
"type": "string",
"value": "={{ $json.body.data.fields[0].value }}"
},
{
"id": "4a69f2d3-c3a8-485c-a2f0-bb82e0af07f8",
"name": "user_linkedin",
"type": "string",
"value": "={{ $json.body.data.fields[3].value }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "f6e12bf7-06ea-46b0-8a48-ab97f79fa7df",
"name": "条件判断:是否有LinkedIn URL?",
"type": "n8n-nodes-base.switch",
"position": [
-752,
400
],
"parameters": {
"rules": {
"values": [
{
"outputKey": "If LinkedIn User is Exist",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "5a366206-392c-47d6-a343-2c208468a765",
"operator": {
"type": "string",
"operation": "notEmpty",
"singleValue": true
},
"leftValue": "={{ $json.user_linkedin }}",
"rightValue": ""
}
]
},
"renameOutput": true
},
{
"outputKey": "If LinkedIn User is not Exist",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "3dcf4c0f-6438-4f72-a0b8-6086674ee4de",
"operator": {
"type": "string",
"operation": "empty",
"singleValue": true
},
"leftValue": "{{ $json.user_linkedin }}",
"rightValue": "1"
}
]
},
"renameOutput": true
}
]
},
"options": {
"allMatchingOutputs": true
}
},
"typeVersion": 3.3
},
{
"id": "aa12ccf5-3ea4-4c71-8851-59162005486c",
"name": "Decodo:爬取LinkedIn个人资料",
"type": "@decodo/n8n-nodes-decodo.decodo",
"position": [
-416,
112
],
"parameters": {
"geo": "=",
"url": "={{ $json.user_linkedin }}",
"markdown": false
},
"credentials": {
"decodoApi": {
"id": "Xc6AkeDSHbyutWEs",
"name": "Decodo Credentials Hendra"
}
},
"typeVersion": 1
},
{
"id": "bd966978-c767-42e8-97f5-e7d222bcbe17",
"name": "Gemini模型:档案提取",
"type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
"position": [
-128,
224
],
"parameters": {
"options": {}
},
"credentials": {
"googlePalmApi": {
"id": "dmfdKTqDcz24VUn2",
"name": "Fahmi Gemini"
}
},
"typeVersion": 1
},
{
"id": "0e3e2f0b-9a9e-4b11-a7e0-150eefba831e",
"name": "合并:组装候选人档案",
"type": "n8n-nodes-base.merge",
"position": [
160,
384
],
"parameters": {
"mode": "combine",
"options": {},
"combineBy": "combineByPosition"
},
"typeVersion": 3.2
},
{
"id": "c483118c-1301-45ee-82db-a9c3d03bfef6",
"name": "Gemini模型:职位匹配",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
384,
400
],
"parameters": {
"text": "=Short Summary User: {{ $('Set: Capture Form Fields').item.json.short_summary }}\n---\nUser Resume and Experience: {{ $json.content.parts[0].text }}\n---\nLinkedIn User: {{ $json.output }}",
"options": {
"systemMessage": "=# System Message — Smart Job Match Finder Agent\n\nYou are a Smart Job Match Finder Agent, an intelligent assistant that analyzes a user’s resume, personal summary and linkedin profile to automatically find the most relevant job openings available online.\n\nYou specialize in connecting people with jobs that truly match their skills, experience, and career goals — not just keywords. You also evaluate and score how well each job aligns with the user’s background.\n\nYou use Decodo Tool to scrape and extract accurate, up-to-date job postings from trusted online job boards.\n\nYour output will using format clean HTML that can passed Email format.\n\nAssume the user is semi-technical: they can provide their resume file url, short personal summary and linkedin profile, but they expect a clear, structured, and Email-Ready-output — not long explanations.\n\n---\n\n##Tools\n\nDecodo Tool:\n\nUse this tool to scrape and extract job postings directly from websites like:\n\n- LinkedIn Jobs\n- JobStreet\n\n---\n\n##Rules\n\n1. Mandatory Tool Use: Always use Decodo Tool for scraping job listings.\n2. User Input Requirements:\n \n The user provides:\n \n - Their resume files url (skills, work experience, education).\n - A short personal summary or preferred job type (e.g. \"I want to find remote React Developer jobs in Singapore\").\n - Their LinkedIn Profiles \n3. Job Search Process:\n - Search and scrape job postings that match the user’s skills, experience, and preferences.\n - Compare the user profile (resume + summary) with each job description.\n - Select and display the top 10 most relevant matches.\n4. Output Format:\n \n Present the output in clean HTML (Email-ready).\n Use this structure for each result:\n ---\n ## Job Title: [Job Title]\n ## Company: [Company Name]\n ## Location: [Location]\n ## Work Type: [Remote / Hybrid / On-site]\n ## Salary Range: [If available]\n ## Source: [Platform Name]\n ## Job URL: [Link]\n ## Match Score: [Percentage, e.g., 85%] Why It Matches: [Short explanation of relevant skills/experience]Missing Skills: [List of missing or less relevant areas]\n ---\n5. Email-Ready-Format: Present the output in clean, minimal HTMl that can be directly passed to the Gmail node (no extra formatting required).\n6. Tone & Style:\nProfessional, structured, and encouraging — never robotic or overly formal.\nAvoid filler words like “of course,” “I understand,” or “let’s see.”\n \n---\n\n##Scoring Criteria\n\n- 50% — Skill and Technology Alignment\n- 25% — Experience and Role Match\n- 15% — Location / Work Type Preference\n- 10% — Keyword Similarity in Job Description\n\n---\n\n##Fallback Behavior\n\n- If no relevant jobs are found, politely inform the user and suggest adjusting keywords or expanding preferred locations.\n- If the resume text is too short, request additional experience details.\n- Never output raw HTML or irrelevant scraping data."
},
"promptType": "define"
},
"typeVersion": 2.2
},
{
"id": "2cca0409-c0fb-4f46-8605-0936fdaee306",
"name": "Decodo工具:爬取招聘网站",
"type": "@decodo/n8n-nodes-decodo.decodoTool",
"position": [
624,
656
],
"parameters": {},
"credentials": {
"decodoApi": {
"id": "kfy3Vs5AgxfDGzpC",
"name": "Johan Decodo"
}
},
"typeVersion": 1
},
{
"id": "b2f4d75b-e8ff-4ac4-9707-3384d2e94ce6",
"name": "Gemini模型:匹配与评分职位",
"type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
"position": [
336,
656
],
"parameters": {
"options": {}
},
"credentials": {
"googlePalmApi": {
"id": "dmfdKTqDcz24VUn2",
"name": "Fahmi Gemini"
}
},
"typeVersion": 1
},
{
"id": "db2dff4a-d475-4436-8cec-dfcc16cb19ad",
"name": "Gmail:发送简历摘要和最佳匹配职位",
"type": "n8n-nodes-base.gmail",
"position": [
816,
400
],
"webhookId": "af883a34-a4f5-4da4-b7a0-2cfd8ec493ef",
"parameters": {
"sendTo": "={{ $('Set: Capture Form Fields').item.json.user_email }}",
"message": "={{ $json.output }}",
"options": {
"appendAttribution": false
},
"subject": "Top Job Matches for you"
},
"credentials": {
"gmailOAuth2": {
"id": "qgKvcsu98l6EQuaR",
"name": "Johan Gmail"
}
},
"typeVersion": 2.1
},
{
"id": "b57abcaf-9e67-4fa0-b654-8c64b4f1cdb0",
"name": "Webhook:接收信息收集表(POST)",
"type": "n8n-nodes-base.webhook",
"position": [
-1296,
400
],
"webhookId": "ca18f47b-399e-4689-9795-80ac1d23829b",
"parameters": {
"path": "ca18f47b-399e-4689-9795-80ac1d23829b",
"options": {},
"httpMethod": "POST"
},
"typeVersion": 2.1
},
{
"id": "924bdbd9-2c10-4dd8-982d-b1f6b06e57f9",
"name": "LLM:提取LinkedIn详情",
"type": "@n8n/n8n-nodes-langchain.informationExtractor",
"position": [
-192,
0
],
"parameters": {
"text": "={{ $json.data.results[0].content }}",
"options": {},
"attributes": {
"attributes": [
{
"name": "Name",
"required": true,
"description": "Name of the LinkedIn User"
},
{
"name": "Headline",
"required": true,
"description": "Headline of the LinkedIn User"
},
{
"name": "Location",
"required": true,
"description": "Location of the LinkedIn User"
},
{
"name": "About summary",
"required": true,
"description": "About summary of the LinkedIn User"
},
{
"name": "Experience (detailed roles and companies)",
"required": true,
"description": "Experience (detailed roles and companies) of the LinkedIn User"
},
{
"name": "Education",
"required": true,
"description": "Education of the LinkedIn User"
},
{
"name": "Licenses & Certifications",
"required": true,
"description": "Licenses & Certifications of the LinkedIn User"
},
{
"name": "Volunteer Experience",
"required": true,
"description": "Volunteer Experience of the LinkedIn User"
}
]
}
},
"typeVersion": 1.2
},
{
"id": "a1caa677-8e09-4e98-a8a5-fa7eabc304d1",
"name": "Gemini:解析简历",
"type": "@n8n/n8n-nodes-langchain.googleGemini",
"position": [
-144,
400
],
"parameters": {
"text": "What's in this document or picture?",
"modelId": {
"__rl": true,
"mode": "list",
"value": "models/gemini-2.5-flash",
"cachedResultName": "models/gemini-2.5-flash"
},
"options": {},
"resource": "document",
"documentUrls": "={{ $json.resume_url_link }}"
},
"credentials": {
"googlePalmApi": {
"id": "dmfdKTqDcz24VUn2",
"name": "Fahmi Gemini"
}
},
"typeVersion": 1
},
{
"id": "18343f38-02e8-43b9-83c6-abf47eea0df4",
"name": "便签1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1408,
-48
],
"parameters": {
"color": 4,
"width": 2432,
"height": 960,
"content": ""
},
"typeVersion": 1
},
{
"id": "13375db6-f665-4836-a1f2-462e32158b44",
"name": "便签 4",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1376,
256
],
"parameters": {
"color": 5,
"width": 256,
"height": 336,
"content": "将Webhook URL复制到您的表单"
},
"typeVersion": 1
},
{
"id": "941d37e2-a662-4724-b14f-1409f9bbdb0b",
"name": "便签 5",
"type": "n8n-nodes-base.stickyNote",
"position": [
544,
640
],
"parameters": {
"color": 3,
"height": 256,
"content": ""
},
"typeVersion": 1
},
{
"id": "1efa3fda-067d-4e7f-aa92-82012467ddea",
"name": "便签6",
"type": "n8n-nodes-base.stickyNote",
"position": [
-480,
96
],
"parameters": {
"color": 3,
"height": 256,
"content": "社区节点;仅适用于自托管n8n。请确保添加您的Decodo API凭据。"
},
"typeVersion": 1
},
{
"id": "59c3159f-e0e7-4b61-aad8-5c0486f29a0c",
"name": "便签 3",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1088,
320
],
"parameters": {
"color": 5,
"width": 256,
"height": 272,
"content": "请确保调整表单字段以从webhook捕获输入信息"
},
"typeVersion": 1
},
{
"id": "3a08bdbc-3236-4b67-a26b-25e28647b76c",
"name": "便签7",
"type": "n8n-nodes-base.stickyNote",
"position": [
752,
272
],
"parameters": {
"color": 5,
"height": 320,
"content": "您可以通过编辑智能体中的提示词来调整邮件内容,或自行创建邮件内容,但请确保使用HTML格式。"
},
"typeVersion": 1
},
{
"id": "d38d21c2-745c-4502-90c0-deb5024d9bf0",
"name": "便签 2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1392,
-32
],
"parameters": {
"color": 3,
"width": 480,
"height": 96,
"content": "> **免责声明:** 此工作流依赖**社区Decodo节点**,因此需要**自托管n8n**。请从社区市场安装该节点并配置Decodo API凭据。"
},
"typeVersion": 1
}
],
"pinData": {},
"connections": {
"Gemini: Parse Resume": {
"main": [
[
{
"node": "Merge: Assemble Candidate Profile",
"type": "main",
"index": 1
}
]
]
},
"Set: Capture Form Fields": {
"main": [
[
{
"node": "Switch: Has LinkedIn URL?",
"type": "main",
"index": 0
}
]
]
},
"Switch: Has LinkedIn URL?": {
"main": [
[
{
"node": "Decodo: Scrape LinkedIn Profile",
"type": "main",
"index": 0
}
],
[
{
"node": "Gemini: Parse Resume",
"type": "main",
"index": 0
}
]
]
},
"Gemini Model: Job Matching": {
"main": [
[
{
"node": "Gmail: Send Resume Summary and Top Matches Job",
"type": "main",
"index": 0
}
]
]
},
"LLM: Extract LinkedIn Details": {
"main": [
[
{
"node": "Merge: Assemble Candidate Profile",
"type": "main",
"index": 0
}
]
]
},
"Decodo Tool: Scrape Job Boards": {
"ai_tool": [
[
{
"node": "Gemini Model: Job Matching",
"type": "ai_tool",
"index": 0
}
]
]
},
"Decodo: Scrape LinkedIn Profile": {
"main": [
[
{
"node": "LLM: Extract LinkedIn Details",
"type": "main",
"index": 0
}
]
]
},
"Gemini Model: Match & Score Jobs": {
"ai_languageModel": [
[
{
"node": "Gemini Model: Job Matching",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Gemini Model: Profile Extraction": {
"ai_languageModel": [
[
{
"node": "LLM: Extract LinkedIn Details",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Merge: Assemble Candidate Profile": {
"main": [
[
{
"node": "Gemini Model: Job Matching",
"type": "main",
"index": 0
}
]
]
},
"Webhook: Receive Intake Form (POST)": {
"main": [
[
{
"node": "Set: Capture Form Fields",
"type": "main",
"index": 0
}
]
]
}
}
}常见问题
如何使用这个工作流?
复制上方的 JSON 配置代码,在您的 n8n 实例中创建新工作流并选择「从 JSON 导入」,粘贴配置后根据需要修改凭证设置即可。
这个工作流适合什么场景?
高级 - 人力资源, AI 摘要总结
需要付费吗?
本工作流完全免费,您可以直接导入使用。但请注意,工作流中使用的第三方服务(如 OpenAI API)可能需要您自行付费。
相关工作流推荐
使用Decodo和Gemini分析Trustpilot和Sitejabber情感并保存到Sheets
使用Decodo和Gemini分析Trustpilot和Sitejabber情感并保存到Sheets
Set
Merge
Form Trigger
+7
18 节点Fahmi Fahreza
市场调研
使用AI自动化从Gmail到Airtable的简历筛选和申请人评分
使用AI自动化从Gmail到Airtable的简历筛选和申请人评分
Set
Merge
Airtable
+7
16 节点Fahmi Fahreza
人力资源
基于Gemini AI和Decodo的Telegram学术论文研究助手
基于Gemini AI和Decodo的Telegram学术论文研究助手
If
Set
Switch
+10
25 节点Fahmi Fahreza
文档提取
简历与职位描述匹配
Gemini LLM、Gmail和Notion职位档案的自动化简历评分
Wait
Gmail
Merge
+9
22 节点Agentick AI
人力资源
每周SEO监控清单审计至Google Sheets(使用Gemini和Decodo)
每周SEO监控清单审计至Google Sheets(使用Gemini和Decodo)
Set
Code
Merge
+9
19 节点Fahmi Fahreza
市场调研
竞争对手内容差距分析器:自动化网站主题映射
使用Gemini AI、Apify和Google Sheets分析竞争对手内容差距
If
Set
Code
+10
30 节点Mychel Garzon
杂项