8
n8n 中文网amn8n.com

构建用于Slack候选人评估的AI驱动聊天机器人

高级

这是一个AI Chatbot, Multimodal AI领域的自动化工作流,包含 29 个节点。主要使用 If, Code, Slack, Webhook, GoogleDrive 等节点。 AI简历分析与候选人评估:Slack和Google表格集成

前置要求
  • Slack Bot Token 或 Webhook URL
  • HTTP Webhook 端点(n8n 会自动生成)
  • Google Drive API 凭证
  • 可能需要目标 API 的认证凭证
  • Google Sheets API 凭证
  • OpenAI API Key
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
  "id": "u6seZCMlUCt4sZqF",
  "meta": {
    "instanceId": "4a2e6764ba7a6bc9890d9225f4b21d570ce88fc9bd57549c89057fcee58fed0f",
    "templateId": "1961",
    "templateCredsSetupCompleted": true
  },
  "name": "构建用于 Slack 候选人评估的 AI 驱动聊天机器人",
  "tags": [],
  "nodes": [
    {
      "id": "97989831-3fc6-4954-ac55-8e0950081b7a",
      "name": "是用户消息吗?",
      "type": "n8n-nodes-base.if",
      "position": [
        -3312,
        880
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "1def7344-ce55-450d-a85a-468f746fe31f",
              "operator": {
                "type": "string",
                "operation": "exists",
                "singleValue": true
              },
              "leftValue": "={{ $json.body.event.type }}",
              "rightValue": ""
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "afa6b192-1e25-46b6-8fdc-81dff9a37e74",
      "name": "无操作,不执行任何动作",
      "type": "n8n-nodes-base.noOp",
      "position": [
        -3088,
        976
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "4a7ec607-1706-4357-aa89-4c44faa98fb8",
      "name": "Webhook",
      "type": "n8n-nodes-base.webhook",
      "position": [
        -3536,
        880
      ],
      "webhookId": "db3bf3da-b9b7-4823-8c5d-14f5de0272da",
      "parameters": {
        "path": "slack-gilfoyle",
        "options": {},
        "httpMethod": "POST",
        "responseMode": "lastNode"
      },
      "typeVersion": 2
    },
    {
      "id": "04301600-3371-4fba-b2a6-509bfd3809f9",
      "name": "从文件提取",
      "type": "n8n-nodes-base.extractFromFile",
      "position": [
        -2640,
        688
      ],
      "parameters": {
        "options": {},
        "operation": "pdf",
        "binaryPropertyName": "=data"
      },
      "typeVersion": 1
    },
    {
      "id": "1f49b4bf-5a06-42cc-8566-440639d15aeb",
      "name": "从 Slack 下载候选人资料",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -2864,
        688
      ],
      "parameters": {
        "url": "={{ $json.body.event.files[0].url_private_download }}",
        "options": {
          "response": {
            "response": {
              "responseFormat": "file"
            }
          }
        },
        "authentication": "predefinedCredentialType",
        "nodeCredentialType": "slackOAuth2Api"
      },
      "credentials": {
        "slackOAuth2Api": {
          "id": "4JSKt9sIRV1KGswQ",
          "name": "Slack account"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "04940f53-05e2-4dbb-8bbe-2c6104cf978b",
      "name": "json 解析器",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        -2160,
        912
      ],
      "parameters": {
        "jsonSchemaExample": "{\n  \"AppliedPosition\": \"Position Name\",\n  \"JobDescription\": \"Job Description URL\",\n  \"Profile\": {\n    \"full_name\": \"\",\n    \"job_title\": \"\",\n    \"summary\": \"\",\n    \"contact\": {\n      \"email\": \"\",\n      \"phone\": \"\",\n      \"address\": \"\",\n      \"linkedin\": \"\",\n      \"website\": \"\"\n    },\n    \"education\": [\n      {\n        \"degree\": \"\",\n        \"field_of_study\": \"\",\n        \"institution\": \"\",\n        \"location\": \"\",\n        \"start_year\": \"\",\n        \"end_year\": \"\"\n      }\n    ],\n    \"certifications\": [\n      {\n        \"name\": \"\",\n        \"issuer\": \"\",\n        \"date_obtained\": \"\",\n        \"expiration_date\": \"\"\n      }\n    ],\n    \"work_experience\": [\n      {\n        \"company\": \"\",\n        \"position\": \"\",\n        \"location\": \"\",\n        \"start_date\": \"\",\n        \"end_date\": \"\",\n        \"responsibilities\": [\n          \"\"\n        ],\n        \"achievements\": [\n          \"\"\n        ]\n      }\n    ],\n    \"skills\": {\n      \"technical_skills\": [\n        \"\"\n      ],\n      \"soft_skills\": [\n        \"\"\n      ],\n      \"languages\": [\n        {\n          \"language\": \"\",\n          \"proficiency\": \"\"\n        }\n      ],\n      \"tools_and_technologies\": [\n        \"\"\n      ]\n    },\n    \"projects\": [\n      {\n        \"name\": \"\",\n        \"description\": \"\",\n        \"technologies_used\": [\n          \"\"\n        ],\n        \"role\": \"\",\n        \"duration\": \"\"\n      }\n    ],\n    \"awards\": [\n      {\n        \"title\": \"\",\n        \"issuer\": \"\",\n        \"date\": \"\",\n        \"description\": \"\"\n      }\n    ],\n    \"volunteer_experience\": [\n      {\n        \"organization\": \"\",\n        \"role\": \"\",\n        \"description\": \"\",\n        \"start_date\": \"\",\n        \"end_date\": \"\"\n      }\n    ],\n    \"additional_information\": {\n      \"availability\": \"\",\n      \"preferred_location\": \"\",\n      \"salary_expectation\": \"\",\n      \"work_authorization\": \"\",\n      \"other_notes\": \"\"\n    }\n  }\n}"
      },
      "typeVersion": 1.3
    },
    {
      "id": "0609ac69-6003-4948-a847-d6e3fcb326da",
      "name": "gpt4-1 模型",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        -2416,
        912
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4.1-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "id": "PPSwAKeLQYgAPobT",
          "name": "OpenAi account"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "7091e495-668b-4fed-a5f9-de2333908a3d",
      "name": "下载文件",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        -1952,
        688
      ],
      "parameters": {
        "fileId": {
          "__rl": true,
          "mode": "url",
          "value": "={{ $json.output.JobDescription }}"
        },
        "options": {},
        "operation": "download"
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "id": "fC471es5gk5Mm900",
          "name": "Google Drive account"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "d3067e57-7b79-4dff-bbdd-31ae43228a34",
      "name": "提取职位描述",
      "type": "n8n-nodes-base.extractFromFile",
      "position": [
        -1728,
        688
      ],
      "parameters": {
        "options": {},
        "operation": "pdf"
      },
      "typeVersion": 1
    },
    {
      "id": "cc30fbc4-c777-4556-a89c-3d782bedc7cf",
      "name": "HR 专家智能体",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "position": [
        -1504,
        688
      ],
      "parameters": {
        "text": "=Evaluate the candidate for the following job:\n\n--- Job Description ---\nPosition: {{ $('Profile Analyzer Agent').item.json.output.AppliedPosition }}\nJob Description: {{ $('Extract Job Description').item.json.text }}\n------------------------\n\nBelow is the extracted candidate profile:\n{{ $('Profile Analyzer Agent').item.json.output.Profile.toJsonString() }}",
        "messages": {
          "messageValues": [
            {
              "message": "You are a professional AI hiring assistant tasked with evaluating job candidates based on their structured resume data and a provided job description. Your goal is to assess the candidate’s suitability for the role, identifying key matches and gaps in skills, experience, and qualifications.  You will receive: - `candidate_profile`: a JSON object containing extracted information from the candidate's resume. - `job_description`: a plain text description of the role.  Your job is to: 1. Parse and understand the key job requirements (e.g., required skills, years of experience, qualifications). 2. Match the candidate's profile to the job requirements. 3. Provide a structured evaluation with ratings and reasoning.  Always be objective, use professional language, and format your output clearly using markdown."
            }
          ]
        },
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 1.5
    },
    {
      "id": "9e39fb8d-e66b-4767-a04b-c35a5cbd37f7",
      "name": "资料分析智能体",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        -2384,
        688
      ],
      "parameters": {
        "text": "=Please extract all relevant information from this candiadte:\nCV Content:\n===\n{{ $json[\"text\"] }}\n===\nAnd extract applied position from message below:\n{{ $('Webhook').item.json.body.event.text }}\nGiven the tool to get postions from google sheet, conclude final applied position name follw name in the sheet and the job description URL",
        "options": {
          "systemMessage": "You are a smart and reliable assistant for the HR team. Your job is to help evaluate job applicants by processing two main inputs:\n\n1. The candidate’s **user profile** (provided as a block of plain text).\n2. The **request message** (typically a short Slack or email message from a recruiter asking for evaluation).\n\nYou also have access to a **Google Sheets tool** containing a table that maps position names (e.g., \"AI Engineer\") to job details such as:\n- Job title\n- Job description URL\n\n---\n\nYour task is to:\n1. Parse and extract the **candidate’s name, email (if any), and core skills or summary** from the user profile.\n2. From the request message, identify the **applied position**.\n3. Use the Sheets tool to look up and return:\n   - The **applied position** (standardized from the sheet)\n   - The corresponding **Job Description URL**\n\n---\n\nOutput Format:\n- **Candidate Profile**: [Parsed name, email, and summary from resume]\n- **Applied Position**: [From sheet, matched using request message]\n- **Job Description URL**: [From sheet, based on position]\n\nIf the job title from the request is unclear or not found, return a helpful clarification message instead of making assumptions.\n\n---\n\nBe concise, structured, and ensure accurate matching when referencing job titles from the sheet."
        },
        "promptType": "define",
        "hasOutputParser": true
      },
      "executeOnce": true,
      "typeVersion": 2.1
    },
    {
      "id": "3b996554-5e83-4ffe-9142-f52883e15573",
      "name": "更新评估表格",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -880,
        784
      ],
      "parameters": {
        "columns": {
          "value": {},
          "schema": [
            {
              "id": "overall_fit_score",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "overall_fit_score",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "recommendation",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "recommendation",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "required_experience",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "required_experience",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "skill_match",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "skill_match",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "education_certifications",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "education_certifications",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "soft_skills_traits",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "soft_skills_traits",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "strengths",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "strengths",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "concerns_or_gaps",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "concerns_or_gaps",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "final_notes",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "final_notes",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "autoMapInputData",
          "matchingColumns": [
            "output"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "append",
        "sheetName": {
          "__rl": true,
          "mode": "name",
          "value": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "url",
          "value": "https://docs.google.com/spreadsheets/d/1gpuTL7iK2LoDJAdHE-LBFiBEU6hLqSTxWjThMJyi7SY/edit?usp=drive_link"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "L670Nly6gZGo71br",
          "name": "Google Sheets account 2"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "2f406e89-d1d9-458a-839a-f9c612184714",
      "name": "映射列",
      "type": "n8n-nodes-base.code",
      "position": [
        -1104,
        688
      ],
      "parameters": {
        "jsCode": "const evalResult = $input.first().json.output\nreturn [\n  {\n    json: {\n      full_name: $('Profile Analyzer Agent').first().json.output.Profile.full_name,\n      email: $('Profile Analyzer Agent').first().json.output.Profile.contact.email || \"Email not available\",\n      phone: $('Profile Analyzer Agent').first().json.output.Profile.contact.phone ||  \"Phone not available\",\n      position: $('Profile Analyzer Agent').first().json.output.AppliedPosition,\n      overall_fit_score: evalResult.overall_fit_score,\n      recommendation: evalResult.recommendation,\n      strengths: evalResult.strengths.join(', '),\n      concerns_or_gaps: evalResult.concerns_or_gaps.join(', '),\n      final_notes: evalResult.final_notes,\n      submitted_date: $now.toFormat(\"yyyyLLdd-HHmmss\")\n    }\n  }\n];"
      },
      "typeVersion": 2
    },
    {
      "id": "14ddc37b-9286-46a8-bdeb-d333db447d24",
      "name": "gpt-4-1 模型 2",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        -1472,
        912
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4.1-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "id": "PPSwAKeLQYgAPobT",
          "name": "OpenAi account"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "74430118-e4d3-4966-8703-c2ffa483b895",
      "name": "json 解析器 2",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        -1344,
        912
      ],
      "parameters": {
        "jsonSchemaExample": "{\n  \"overall_fit_score\": 0,\n  \"recommendation\": \"\", \n  \"job_match_summary\": {\n    \"required_experience\": \"\",\n    \"skill_match\": \"\",\n    \"education_certifications\": \"\",\n    \"soft_skills_traits\": \"\"\n  },\n  \"strengths\": [\n    \"\"\n  ],\n  \"concerns_or_gaps\": [\n    \"\"\n  ],\n  \"final_notes\": \"\"\n}"
      },
      "typeVersion": 1.3
    },
    {
      "id": "83a9bea2-1012-4ad6-a6db-145c74086b30",
      "name": "如果",
      "type": "n8n-nodes-base.if",
      "position": [
        -3088,
        784
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "aa58b881-6e48-488b-a96c-9a85b1504a6e",
              "operator": {
                "type": "string",
                "operation": "exists",
                "singleValue": true
              },
              "leftValue": "={{ $json.body.event.files[0].id }}",
              "rightValue": ""
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "d8a4b76d-1bbd-4fee-b024-ffa824829558",
      "name": "在提及的频道中发送结果",
      "type": "n8n-nodes-base.slack",
      "position": [
        -656,
        592
      ],
      "webhookId": "6d1ea29f-86ba-42df-ae9f-3dd510510dae",
      "parameters": {
        "text": "=🎯 *Candidate Evaluation Update*\n\nHi <@{{ $json.id }}>,  \nWe've completed the initial screening and have a qualified candidate for the {{ $('Map Columns').item.json.position }} position:\n\n👤 *Candidate:* {{ $('Map Columns').item.json.full_name }}\n📝 *Summary:*  \n• *Fit Score:* {{ $('Map Columns').item.json.overall_fit_score }}/10  \n• *Recommendation:* {{ $('Map Columns').item.json.recommendation }}\n• *Key Strengths:* {{ $('Map Columns').item.json.strengths }}\n👉 Please advise on next steps (e.g., schedule technical interview, team round, etc.).",
        "select": "channel",
        "channelId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $('Webhook').item.json.body.event.channel }}"
        },
        "otherOptions": {
          "mrkdwn": true
        }
      },
      "credentials": {
        "slackApi": {
          "id": "Yi3LKjrxH5dH4v1r",
          "name": "BOT Token"
        }
      },
      "typeVersion": 2.3
    },
    {
      "id": "e41b4a81-7feb-45df-bbe8-ad006e6ebdb8",
      "name": "通知用户资料缺失",
      "type": "n8n-nodes-base.slack",
      "position": [
        -2864,
        880
      ],
      "webhookId": "6d1ea29f-86ba-42df-ae9f-3dd510510dae",
      "parameters": {
        "text": "=🗂️ Got it — just one more thing!\nI can help read the candidate profile you mentioned, but it looks like I didn’t catch the file in your last message.\n👉 Please upload the file first, wait for it to finish uploading, and then press Enter to send your message.\nThat way, I can grab the profile and help you out right away! 😊",
        "select": "channel",
        "channelId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $('Webhook').item.json.body.event.channel }}"
        },
        "otherOptions": {}
      },
      "credentials": {
        "slackApi": {
          "id": "Yi3LKjrxH5dH4v1r",
          "name": "BOT Token"
        }
      },
      "typeVersion": 2.3
    },
    {
      "id": "64818e9c-f6d3-4b05-8297-b7b9089044ca",
      "name": "查询可用职位",
      "type": "n8n-nodes-base.googleSheetsTool",
      "position": [
        -2288,
        912
      ],
      "parameters": {
        "options": {},
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/15CZPMbxmz-RVYji1fev_6vYeEwpPa3MjewGEPf6aSoA/edit#gid=0",
          "cachedResultName": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "15CZPMbxmz-RVYji1fev_6vYeEwpPa3MjewGEPf6aSoA",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/15CZPMbxmz-RVYji1fev_6vYeEwpPa3MjewGEPf6aSoA/edit?usp=drivesdk",
          "cachedResultName": "Positions"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "L670Nly6gZGo71br",
          "name": "Google Sheets account 2"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "64560334-5db8-4d2d-b5e7-ad4b865cb0bd",
      "name": "获取用户信息",
      "type": "n8n-nodes-base.slack",
      "position": [
        -880,
        592
      ],
      "webhookId": "5299729f-620c-4984-80be-001f1d7e9740",
      "parameters": {
        "user": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $('Webhook').item.json.body.event.files[0].user }}"
        },
        "resource": "user",
        "authentication": "oAuth2"
      },
      "credentials": {
        "slackOAuth2Api": {
          "id": "4JSKt9sIRV1KGswQ",
          "name": "Slack account"
        }
      },
      "typeVersion": 2.3
    },
    {
      "id": "7e1f48d9-ae9c-43e2-ae89-09d207e3a33f",
      "name": "便签",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -4672,
        -224
      ],
      "parameters": {
        "color": 4,
        "width": 1056,
        "height": 2432,
        "content": "# 构建用于 Slack 候选人评估的 AI 驱动聊天机器人"
      },
      "typeVersion": 1
    },
    {
      "id": "9f5d8dfa-905b-4593-b75d-82d4cb826106",
      "name": "便签1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -3616,
        1040
      ],
      "parameters": {
        "width": 272,
        "height": 192,
        "content": "### 1. 🚀 Slack 提及触发"
      },
      "typeVersion": 1
    },
    {
      "id": "69148cf4-dff4-417d-acf6-a506deadee53",
      "name": "便签2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -3296,
        1136
      ],
      "parameters": {
        "width": 384,
        "height": 128,
        "content": "### 2. 🧾 验证输入"
      },
      "typeVersion": 1
    },
    {
      "id": "9aba6130-c3b5-4045-8ec1-09ae606f2263",
      "name": "便签3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2880,
        528
      ],
      "parameters": {
        "width": 352,
        "height": 128,
        "content": "### 3. 📥 下载并提取简历"
      },
      "typeVersion": 1
    },
    {
      "id": "22361750-c673-49e7-927e-e9551724abc1",
      "name": "便签4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2432,
        416
      ],
      "parameters": {
        "width": 336,
        "height": 240,
        "content": "### 4. 🧠 分析资料(AI 智能体)"
      },
      "typeVersion": 1
    },
    {
      "id": "f47d2b7d-00fb-409a-93e6-3d16c65ad918",
      "name": "便签5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1952,
        880
      ],
      "parameters": {
        "width": 336,
        "height": 128,
        "content": "### 5. 📄 获取并提取职位描述"
      },
      "typeVersion": 1
    },
    {
      "id": "81d73e30-1b8b-48dc-9fd8-495c2b8a6cee",
      "name": "便签6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1552,
        480
      ],
      "parameters": {
        "width": 368,
        "content": "### 6. 👩‍💼 评估候选人(HR 专家智能体)"
      },
      "typeVersion": 1
    },
    {
      "id": "b1443b1d-e175-4e01-ba34-2002ae23b740",
      "name": "便签7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -880,
        416
      ],
      "parameters": {
        "width": 272,
        "height": 144,
        "content": "### 7. 📤 通过 Slack 发送结果"
      },
      "typeVersion": 1
    },
    {
      "id": "5c9af46b-bcf2-403f-a67b-bdf4b3ce9f2d",
      "name": "便签8",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -896,
        960
      ],
      "parameters": {
        "width": 288,
        "height": 128,
        "content": "### 8. 📊 记录到 Google Sheet"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {},
  "versionId": "862307b9-766b-4c14-bd23-46de364fff6c",
  "connections": {
    "If": {
      "main": [
        [
          {
            "node": "Download Candidate Profile From Slack",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Inform user that profile is missing",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Webhook": {
      "main": [
        [
          {
            "node": "Is user message?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Map Columns": {
      "main": [
        [
          {
            "node": "Update evaluation sheet",
            "type": "main",
            "index": 0
          },
          {
            "node": "Get information about a user",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "json parser": {
      "ai_outputParser": [
        [
          {
            "node": "Profile Analyzer Agent",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "gpt4-1 model": {
      "ai_languageModel": [
        [
          {
            "node": "Profile Analyzer Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Download file": {
      "main": [
        [
          {
            "node": "Extract Job Description",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "json parser 2": {
      "ai_outputParser": [
        [
          {
            "node": "HR Expert Agent",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "HR Expert Agent": {
      "main": [
        [
          {
            "node": "Map Columns",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "gpt-4-1 model 2": {
      "ai_languageModel": [
        [
          {
            "node": "HR Expert Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Is user message?": {
      "main": [
        [
          {
            "node": "If",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "No Operation, do nothing",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extract from File": {
      "main": [
        [
          {
            "node": "Profile Analyzer Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Profile Analyzer Agent": {
      "main": [
        [
          {
            "node": "Download file",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extract Job Description": {
      "main": [
        [
          {
            "node": "HR Expert Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Query available positions": {
      "ai_tool": [
        [
          {
            "node": "Profile Analyzer Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Get information about a user": {
      "main": [
        [
          {
            "node": "Send result in the mentioned channel",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Send result in the mentioned channel": {
      "main": [
        []
      ]
    },
    "Download Candidate Profile From Slack": {
      "main": [
        [
          {
            "node": "Extract from File",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
常见问题

如何使用这个工作流?

复制上方的 JSON 配置代码,在您的 n8n 实例中创建新工作流并选择「从 JSON 导入」,粘贴配置后根据需要修改凭证设置即可。

这个工作流适合什么场景?

高级 - AI 聊天机器人, 多模态 AI

需要付费吗?

本工作流完全免费,您可以直接导入使用。但请注意,工作流中使用的第三方服务(如 OpenAI API)可能需要您自行付费。

工作流信息
难度等级
高级
节点数量29
分类2
节点类型15
难度说明

适合高级用户,包含 16+ 个节点的复杂工作流

作者
Trung Tran

Trung Tran

@trungtran

Empowering small and medium businesses with smart automation and practical AI, no big tech team required.

外部链接
在 n8n.io 查看

分享此工作流