8
n8n 中文网amn8n.com

JD匹配分数

高级

这是一个HR, AI Summarization领域的自动化工作流,包含 37 个节点。主要使用 Code, GoogleDrive, GoogleSheets, ManualTrigger, Agent 等节点。 使用 Google Drive、Google Sheets 和 GPT-4o 评估简历与职位描述的匹配度

前置要求
  • Google Drive API 凭证
  • Google Sheets API 凭证
  • OpenAI API Key
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
  "id": "7Pytou63ro4Ht10d",
  "meta": {
    "instanceId": "8443f10082278c46aa5cf3acf8ff0f70061a2c58bce76efac814b16290845177",
    "templateCredsSetupCompleted": true
  },
  "name": "JD匹配分数",
  "tags": [],
  "nodes": [
    {
      "id": "b30ed071-9118-4b6c-9645-7f675c7f003a",
      "name": "点击\"执行工作流\"时",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        -432,
        -112
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "f9c22328-7675-4161-a984-a7704ad41e05",
      "name": "下载文件",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        16,
        -112
      ],
      "parameters": {
        "fileId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $json.id }}"
        },
        "options": {},
        "operation": "download"
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "id": "gQtjXVGUgZru29qC",
          "name": "Google Drive account"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "7f63f5cf-8b71-4235-9a38-5fe3b2d01467",
      "name": "从文件提取",
      "type": "n8n-nodes-base.extractFromFile",
      "position": [
        240,
        -112
      ],
      "parameters": {
        "options": {},
        "operation": "pdf"
      },
      "typeVersion": 1
    },
    {
      "id": "73d898cf-26f3-468a-adc1-bd18589bea19",
      "name": "下载文件1",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        688,
        -112
      ],
      "parameters": {
        "fileId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $json.id }}"
        },
        "options": {},
        "operation": "download"
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "id": "gQtjXVGUgZru29qC",
          "name": "Google Drive account"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "7ec0bfc6-497e-4121-bb5a-420067a9d63a",
      "name": "从文件1提取",
      "type": "n8n-nodes-base.extractFromFile",
      "position": [
        912,
        -112
      ],
      "parameters": {
        "options": {},
        "operation": "pdf"
      },
      "typeVersion": 1
    },
    {
      "id": "4958145c-c824-4606-b483-bad0f7a0ef4d",
      "name": "AI 代理",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        1136,
        -112
      ],
      "parameters": {
        "text": "=Compare the following job description and resume, then score and evaluate according to the instructions.\n\nJob Description (JD):\n{{ $('Extract from File').item.json.text }}\n\nCandidate Resume:\n{{ $json.text }}\n\nReturn the evaluation in the required JSON format.",
        "options": {
          "systemMessage": "You are an AI resume evaluator.\nYour task is to compare a candidate’s resume against a provided job description and return a structured JSON evaluation.\nFollow these rules:\n\nEvaluate alignment between the job description (JD) and the resume.\n\nAssign a score (0–100) where:\n\n90–100 = Excellent fit\n\n70–89 = Good fit with some gaps\n\n50–69 = Moderate fit with significant gaps\n\nBelow 50 = Poor fit\n\nIdentify must_have_gaps → missing critical skills, experience, or qualifications explicitly required in the JD.\n\nIdentify nice_to_have_bonus → additional desirable skills, certifications, or achievements mentioned in the JD but not mandatory.\n\nProvide a summary (3–5 sentences) describing the overall fit and candidate potential.\n\nAlways return output in the following JSON format (no extra text, no markdown):"
        },
        "promptType": "define"
      },
      "typeVersion": 2.1
    },
    {
      "id": "2c36bdc0-ec36-4b8c-bd1e-54e40fdb87a1",
      "name": "Azure OpenAI 聊天模型",
      "type": "@n8n/n8n-nodes-langchain.lmChatAzureOpenAi",
      "position": [
        1232,
        112
      ],
      "parameters": {
        "model": "gpt-4o-mini",
        "options": {}
      },
      "credentials": {
        "azureOpenAiApi": {
          "id": "C3WzT18XqF8OdVM6",
          "name": "Azure Open AI account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "4cf138e8-9c52-4f5e-89cf-67e1d6b49f14",
      "name": "搜索JD",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        -208,
        -112
      ],
      "parameters": {
        "filter": {
          "folderId": {
            "__rl": true,
            "mode": "list",
            "value": "1KnopVQ7CIdUl5j9ICwijk1RG5w7050nW",
            "cachedResultUrl": "https://drive.google.com/drive/folders/1KnopVQ7CIdUl5j9ICwijk1RG5w7050nW",
            "cachedResultName": "JD store"
          }
        },
        "options": {},
        "resource": "fileFolder",
        "returnAll": true
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "id": "gQtjXVGUgZru29qC",
          "name": "Google Drive account"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "22daae51-9cb8-4584-8e1a-e8abcea3369f",
      "name": "搜索简历",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        464,
        -112
      ],
      "parameters": {
        "filter": {
          "folderId": {
            "__rl": true,
            "mode": "list",
            "value": "1MIvpHU_ZqG76Vov2-D5WlS5dD3UhOMSz",
            "cachedResultUrl": "https://drive.google.com/drive/folders/1MIvpHU_ZqG76Vov2-D5WlS5dD3UhOMSz",
            "cachedResultName": "Resume_store"
          }
        },
        "options": {},
        "resource": "fileFolder",
        "returnAll": true
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "id": "gQtjXVGUgZru29qC",
          "name": "Google Drive account"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "274e9346-1bbc-413b-8a29-0ba32a37f7df",
      "name": "代码",
      "type": "n8n-nodes-base.code",
      "position": [
        1536,
        -112
      ],
      "parameters": {
        "jsCode": "return items.map(item => {\n  let text = item.json.output;\n\n  // Remove code fences like ```json ... ```\n  text = text.replace(/```json|```/g, \"\").trim();\n\n  let parsed = {};\n  try {\n    parsed = JSON.parse(text);\n  } catch (err) {\n    parsed = { error: \"Failed to parse JSON\", raw: text };\n  }\n\n  return { json: parsed };\n});"
      },
      "typeVersion": 2
    },
    {
      "id": "e812463c-3796-4f43-9586-efbbf04f1930",
      "name": "从文本创建文件",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        1760,
        -112
      ],
      "parameters": {
        "name": "={{ $('Search Resume').item.json.name }}_result-summary",
        "content": "=Score: {{ $json.score }}\nmust have gaps: {{ $json.must_have_gaps }}\nnice to have bonus: {{ $json.nice_to_have_bonus }}\nsummary: {{ $json.summary }}",
        "driveId": {
          "__rl": true,
          "mode": "list",
          "value": "My Drive"
        },
        "options": {},
        "folderId": {
          "__rl": true,
          "mode": "list",
          "value": "1MIvpHU_ZqG76Vov2-D5WlS5dD3UhOMSz",
          "cachedResultUrl": "https://drive.google.com/drive/folders/1MIvpHU_ZqG76Vov2-D5WlS5dD3UhOMSz",
          "cachedResultName": "Resume_store"
        },
        "operation": "createFromText"
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "id": "gQtjXVGUgZru29qC",
          "name": "Google Drive account"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "6403b230-16ca-4e09-83e4-eadfe14d0fb2",
      "name": "在表格中追加或更新行",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1984,
        -112
      ],
      "parameters": {
        "columns": {
          "value": {
            "Name": "John Doe",
            "Score": "={{ $('Code').item.json.score }}",
            "Summary": "={{ $('Code').item.json.summary }}"
          },
          "schema": [
            {
              "id": "Name",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Email",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "Email",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Phone ",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "Phone ",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Years of experience",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "Years of experience",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "skills",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "skills",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "curent role",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "curent role",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "education",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "education",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Score",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Score",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Summary",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Summary",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "Name"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "appendOrUpdate",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": 1424038785,
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1JlXxy90s0we_IqErHyvomrJSijb8pd4H91hOUCH6xCA/edit#gid=1424038785",
          "cachedResultName": "Sheet2"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1JlXxy90s0we_IqErHyvomrJSijb8pd4H91hOUCH6xCA",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1JlXxy90s0we_IqErHyvomrJSijb8pd4H91hOUCH6xCA/edit?usp=drivesdk",
          "cachedResultName": "Resume store"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "s4dP1fNuVZ2gWvs3",
          "name": "Google Sheets account"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "156e51d2-5eb1-4db4-a108-58845354ef06",
      "name": "便签",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1024,
        -528
      ],
      "parameters": {
        "width": 464,
        "height": 1104,
        "content": "## JD匹配分数工作流"
      },
      "typeVersion": 1
    },
    {
      "id": "fbba0640-0175-437d-9760-cdbbdcc75ef8",
      "name": "下载职位描述PDF",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        2032,
        1584
      ],
      "parameters": {
        "fileId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $json.id }}"
        },
        "options": {},
        "operation": "download"
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "id": "gQtjXVGUgZru29qC",
          "name": "Google Drive account"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "27e2a0af-070e-424a-beef-864ac39eae1a",
      "name": "提取JD文本内容",
      "type": "n8n-nodes-base.extractFromFile",
      "position": [
        2256,
        1584
      ],
      "parameters": {
        "options": {},
        "operation": "pdf"
      },
      "typeVersion": 1
    },
    {
      "id": "451af1bb-e02f-4964-afb2-6d7793954ec8",
      "name": "下载候选人简历PDF",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        2704,
        1584
      ],
      "parameters": {
        "fileId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $json.id }}"
        },
        "options": {},
        "operation": "download"
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "id": "gQtjXVGUgZru29qC",
          "name": "Google Drive account"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "7f27b30a-b264-48a9-b42f-54ebca30becc",
      "name": "提取简历文本内容",
      "type": "n8n-nodes-base.extractFromFile",
      "position": [
        2928,
        1584
      ],
      "parameters": {
        "options": {},
        "operation": "pdf"
      },
      "typeVersion": 1
    },
    {
      "id": "db811ef4-01ad-4c2f-95f8-5513af29fa57",
      "name": "AI简历评估代理",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        3152,
        1584
      ],
      "parameters": {
        "text": "=Compare the following job description and resume, then score and evaluate according to the instructions.\n\nJob Description (JD):\n{{ $('Extract JD Text Content').item.json.text }}\n\nCandidate Resume:\n{{ $json.text }}\n\nReturn the evaluation in the required JSON format.",
        "options": {
          "systemMessage": "You are an AI resume evaluator.\nYour task is to compare a candidate's resume against a provided job description and return a structured JSON evaluation.\nFollow these rules:\n\nEvaluate alignment between the job description (JD) and the resume.\n\nAssign a score (0–100) where:\n\n90–100 = Excellent fit\n\n70–89 = Good fit with some gaps\n\n50–69 = Moderate fit with significant gaps\n\nBelow 50 = Poor fit\n\nIdentify must_have_gaps → missing critical skills, experience, or qualifications explicitly required in the JD.\n\nIdentify nice_to_have_bonus → additional desirable skills, certifications, or achievements mentioned in the JD but not mandatory.\n\nProvide a summary (3–5 sentences) describing the overall fit and candidate potential.\n\nAlways return output in the following JSON format (no extra text, no markdown):"
        },
        "promptType": "define"
      },
      "typeVersion": 2.1
    },
    {
      "id": "ca6036ea-5fb9-4ca2-aa02-ef53dd890bec",
      "name": "Azure OpenAI GPT-4模型",
      "type": "@n8n/n8n-nodes-langchain.lmChatAzureOpenAi",
      "position": [
        3248,
        1808
      ],
      "parameters": {
        "model": "gpt-4o-mini",
        "options": {}
      },
      "credentials": {
        "azureOpenAiApi": {
          "id": "C3WzT18XqF8OdVM6",
          "name": "Azure Open AI account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "92b8dec7-6906-40fc-978a-864a2b3c693a",
      "name": "在Drive中查找职位描述",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        1808,
        1584
      ],
      "parameters": {
        "filter": {
          "folderId": {
            "__rl": true,
            "mode": "list",
            "value": "1KnopVQ7CIdUl5j9ICwijk1RG5w7050nW",
            "cachedResultUrl": "https://drive.google.com/drive/folders/1KnopVQ7CIdUl5j9ICwijk1RG5w7050nW",
            "cachedResultName": "JD store"
          }
        },
        "options": {},
        "resource": "fileFolder",
        "returnAll": true
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "id": "gQtjXVGUgZru29qC",
          "name": "Google Drive account"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "ab51acb4-d1b4-456b-8570-e792678a0fdf",
      "name": "在Drive中查找候选人简历",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        2480,
        1584
      ],
      "parameters": {
        "filter": {
          "folderId": {
            "__rl": true,
            "mode": "list",
            "value": "1MIvpHU_ZqG76Vov2-D5WlS5dD3UhOMSz",
            "cachedResultUrl": "https://drive.google.com/drive/folders/1MIvpHU_ZqG76Vov2-D5WlS5dD3UhOMSz",
            "cachedResultName": "Resume_store"
          }
        },
        "options": {},
        "resource": "fileFolder",
        "returnAll": true
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "id": "gQtjXVGUgZru29qC",
          "name": "Google Drive account"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "1ea350f8-a3f2-4570-ac74-21cea7088082",
      "name": "将AI响应解析为JSON",
      "type": "n8n-nodes-base.code",
      "position": [
        3552,
        1584
      ],
      "parameters": {
        "jsCode": "return items.map(item => {\n  let text = item.json.output;\n\n  // Remove code fences like ```json ... ```\n  text = text.replace(/```json|```/g, \"\").trim();\n\n  let parsed = {};\n  try {\n    parsed = JSON.parse(text);\n  } catch (err) {\n    parsed = { error: \"Failed to parse JSON\", raw: text };\n  }\n\n  return { json: parsed };\n});"
      },
      "typeVersion": 2
    },
    {
      "id": "96787a98-f91a-40a1-89b9-baceff8249ee",
      "name": "将评估报告保存到Drive",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        3776,
        1584
      ],
      "parameters": {
        "name": "={{ $('Find Candidate Resumes in Drive').item.json.name }}_result-summary",
        "content": "=Score: {{ $json.score }}\nmust have gaps: {{ $json.must_have_gaps }}\nnice to have bonus: {{ $json.nice_to_have_bonus }}\nsummary: {{ $json.summary }}",
        "driveId": {
          "__rl": true,
          "mode": "list",
          "value": "My Drive"
        },
        "options": {},
        "folderId": {
          "__rl": true,
          "mode": "list",
          "value": "1MIvpHU_ZqG76Vov2-D5WlS5dD3UhOMSz",
          "cachedResultUrl": "https://drive.google.com/drive/folders/1MIvpHU_ZqG76Vov2-D5WlS5dD3UhOMSz",
          "cachedResultName": "Resume_store"
        },
        "operation": "createFromText"
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "id": "gQtjXVGUgZru29qC",
          "name": "Google Drive account"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "dc9cb8cc-34f6-4ce2-ae33-d929126a7370",
      "name": "更新候选人数据库",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        4000,
        1584
      ],
      "parameters": {
        "columns": {
          "value": {
            "Name": "John Doe",
            "Score": "={{ $('Parse AI Response to JSON').item.json.score }}",
            "Summary": "={{ $('Parse AI Response to JSON').item.json.summary }}"
          },
          "schema": [
            {
              "id": "Name",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Email",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "Email",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Phone ",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "Phone ",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Years of experience",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "Years of experience",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "skills",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "skills",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "curent role",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "curent role",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "education",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "education",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Score",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Score",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Summary",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Summary",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "Name"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "appendOrUpdate",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": 1424038785,
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1JlXxy90s0we_IqErHyvomrJSijb8pd4H91hOUCH6xCA/edit#gid=1424038785",
          "cachedResultName": "Sheet2"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1JlXxy90s0we_IqErHyvomrJSijb8pd4H91hOUCH6xCA",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1JlXxy90s0we_IqErHyvomrJSijb8pd4H91hOUCH6xCA/edit?usp=drivesdk",
          "cachedResultName": "Resume store"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "s4dP1fNuVZ2gWvs3",
          "name": "Google Sheets account"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "bb89e2d9-4f18-468f-8b28-a0aa8506b92b",
      "name": "便签1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1072,
        1728
      ],
      "parameters": {
        "width": 320,
        "height": 240,
        "content": "## 🚀 启动流程"
      },
      "typeVersion": 1
    },
    {
      "id": "0343be16-153b-46f2-8675-b7928b289fb2",
      "name": "便签2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1584,
        1280
      ],
      "parameters": {
        "width": 320,
        "height": 280,
        "content": "## 📁 职位描述搜索"
      },
      "typeVersion": 1
    },
    {
      "id": "2fe90bdf-4305-40a1-875c-1f773a4e0afb",
      "name": "便签3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1904,
        1792
      ],
      "parameters": {
        "width": 320,
        "height": 260,
        "content": "## 📥 下载JD文件"
      },
      "typeVersion": 1
    },
    {
      "id": "efca102d-d66d-4d66-b314-45ed34287b69",
      "name": "便签4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2144,
        1280
      ],
      "parameters": {
        "width": 320,
        "height": 260,
        "content": "## 📄 提取JD文本"
      },
      "typeVersion": 1
    },
    {
      "id": "02c627d4-877e-4d65-8e1d-7ccfbd0b5804",
      "name": "便签5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2352,
        1792
      ],
      "parameters": {
        "width": 320,
        "height": 280,
        "content": "## 🔍 简历搜索"
      },
      "typeVersion": 1
    },
    {
      "id": "13d3d43a-f1b0-45fb-8dfb-7b63496102f9",
      "name": "便签6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2576,
        1264
      ],
      "parameters": {
        "width": 320,
        "height": 260,
        "content": "## 📥 下载简历"
      },
      "typeVersion": 1
    },
    {
      "id": "610649af-431e-43dd-9278-0b095b194955",
      "name": "便签7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2800,
        1776
      ],
      "parameters": {
        "width": 320,
        "height": 260,
        "content": "## 📄 提取简历文本"
      },
      "typeVersion": 1
    },
    {
      "id": "0c35ebd4-20fa-4ccc-bf38-65814afbbb5a",
      "name": "便签8",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        3088,
        1216
      ],
      "parameters": {
        "width": 320,
        "height": 320,
        "content": "## 🤖 AI评估引擎"
      },
      "typeVersion": 1
    },
    {
      "id": "32715c21-bd37-4edd-906c-73285919b97c",
      "name": "便签9",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        3168,
        1968
      ],
      "parameters": {
        "width": 320,
        "height": 260,
        "content": "## ⚙️ AI模型配置"
      },
      "typeVersion": 1
    },
    {
      "id": "458a71d5-705e-4107-b827-55188bbba6dc",
      "name": "便签 10",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        3472,
        1264
      ],
      "parameters": {
        "width": 320,
        "height": 280,
        "content": "## 🔧 JSON解析器"
      },
      "typeVersion": 1
    },
    {
      "id": "3c10aefc-1be1-415e-8707-8e5d44853dcf",
      "name": "便签 11",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        3680,
        1824
      ],
      "parameters": {
        "width": 320,
        "height": 280,
        "content": "## 📊 保存报告"
      },
      "typeVersion": 1
    },
    {
      "id": "a7615e89-8b92-4266-b9b6-95d574b5aca6",
      "name": "便签12",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        3904,
        1280
      ],
      "parameters": {
        "width": 320,
        "height": 280,
        "content": "## 📈 数据库更新"
      },
      "typeVersion": 1
    },
    {
      "id": "9b3d9948-3d7f-4491-abd5-2e7def378c83",
      "name": "便签13",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1008,
        1056
      ],
      "parameters": {
        "width": 400,
        "height": 600,
        "content": "## 📋 JD匹配分数工作流概述"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "7e773013-c40d-4eab-b3ed-6f96bc6fe260",
  "connections": {
    "Code": {
      "main": [
        [
          {
            "node": "Create file from text",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "AI Agent": {
      "main": [
        [
          {
            "node": "Code",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Search JD": {
      "main": [
        [
          {
            "node": "Download file",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Download file": {
      "main": [
        [
          {
            "node": "Extract from File",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Search Resume": {
      "main": [
        [
          {
            "node": "Download file1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Download file1": {
      "main": [
        [
          {
            "node": "Extract from File1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extract from File": {
      "main": [
        [
          {
            "node": "Search Resume",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extract from File1": {
      "main": [
        [
          {
            "node": "AI Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create file from text": {
      "main": [
        [
          {
            "node": "Append or update row in sheet",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Azure OpenAI Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "AI Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Extract JD Text Content": {
      "main": [
        [
          {
            "node": "Find Candidate Resumes in Drive",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Azure OpenAI GPT-4 Model": {
      "ai_languageModel": [
        [
          {
            "node": "AI Resume Evaluator Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "AI Resume Evaluator Agent": {
      "main": [
        [
          {
            "node": "Parse AI Response to JSON",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Parse AI Response to JSON": {
      "main": [
        [
          {
            "node": "Save Evaluation Report to Drive",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extract Resume Text Content": {
      "main": [
        [
          {
            "node": "AI Resume Evaluator Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Download Job Description PDF": {
      "main": [
        [
          {
            "node": "Extract JD Text Content",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Download Candidate Resume PDF": {
      "main": [
        [
          {
            "node": "Extract Resume Text Content",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Find Job Descriptions in Drive": {
      "main": [
        [
          {
            "node": "Download Job Description PDF",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Find Candidate Resumes in Drive": {
      "main": [
        [
          {
            "node": "Download Candidate Resume PDF",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Save Evaluation Report to Drive": {
      "main": [
        [
          {
            "node": "Update Candidate Database",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "When clicking ‘Execute workflow’": {
      "main": [
        [
          {
            "node": "Search JD",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
常见问题

如何使用这个工作流?

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

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

高级 - 人力资源, AI 摘要总结

需要付费吗?

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

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

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

作者
Rahul Joshi

Rahul Joshi

@rahul08

Rahul Joshi is a seasoned technology leader specializing in the n8n automation tool and AI-driven workflow automation. With deep expertise in building open-source workflow automation and self-hosted automation platforms, he helps organizations eliminate manual processes through intelligent n8n ai agent automation solutions.

外部链接
在 n8n.io 查看

分享此工作流