8
n8n 中文网amn8n.com

基于比较的简历筛选

高级

这是一个HR, AI Summarization领域的自动化工作流,包含 27 个节点。主要使用 Code, Merge, FormTrigger, GoogleDrive, GoogleSheets 等节点。 使用Gemini AI和Google Sheets自动化简历筛选与候选人评分

前置要求
  • Google Drive API 凭证
  • Google Sheets API 凭证
  • Google Gemini API Key
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
  "id": "PMlL6T0rteWLJZ81",
  "meta": {
    "instanceId": "7b35059aff065837b1c7d24142b37474554b08b3370f3096b2e57345690d178e",
    "templateCredsSetupCompleted": true
  },
  "name": "基于比较的简历筛选",
  "tags": [],
  "nodes": [
    {
      "id": "2c5eefc2-dea1-4ce8-95c7-ced6a7c05496",
      "name": "便签 9",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1728,
        -1712
      ],
      "parameters": {
        "color": 4,
        "height": 496,
        "content": "表单触发器:"
      },
      "typeVersion": 1
    },
    {
      "id": "93dca7c6-1b73-4b9d-b4db-7033e3b2f332",
      "name": "便签10",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1472,
        -1712
      ],
      "parameters": {
        "width": 272,
        "height": 576,
        "content": "上传文件:"
      },
      "typeVersion": 1
    },
    {
      "id": "11e1a03b-63ab-48f3-b6cf-83e560ab7c18",
      "name": "便签13",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1184,
        -1712
      ],
      "parameters": {
        "color": 7,
        "width": 160,
        "height": 576,
        "content": "从文件提取:"
      },
      "typeVersion": 1
    },
    {
      "id": "67b1aaf1-0c9f-4df7-85ca-f2b31efa12e1",
      "name": "表单提交时",
      "type": "n8n-nodes-base.formTrigger",
      "position": [
        -1616,
        -1504
      ],
      "webhookId": "6572f1ae-0e94-44a1-855b-1b1051c04208",
      "parameters": {
        "options": {},
        "formTitle": "Senior Software Engineer Application",
        "formFields": {
          "values": [
            {
              "fieldLabel": "Name",
              "requiredField": true
            },
            {
              "fieldLabel": "Email",
              "requiredField": true
            },
            {
              "fieldType": "textarea",
              "fieldLabel": "Skills",
              "requiredField": true
            },
            {
              "fieldType": "textarea",
              "fieldLabel": "Job History",
              "requiredField": true
            },
            {
              "fieldType": "file",
              "fieldLabel": "Upload CV",
              "multipleFiles": false,
              "requiredField": true,
              "acceptFileTypes": ".pdf"
            }
          ]
        },
        "formDescription": "Fill out the details and upload your CV"
      },
      "typeVersion": 2.3
    },
    {
      "id": "e61a5cc7-888b-487d-b3a3-1c8da6f509d0",
      "name": "上传简历到Drive",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        -1472,
        -1328
      ],
      "parameters": {
        "name": "={{ $json['Upload CV'] }}",
        "driveId": {
          "__rl": true,
          "mode": "list",
          "value": "My Drive"
        },
        "options": {},
        "folderId": {
          "__rl": true,
          "mode": "list",
          "value": "18p9qvIyXOz3I-L6etwndWq9l2I9yEmb0",
          "cachedResultUrl": "Put your Drive folder",
          "cachedResultName": "Demo "
        },
        "inputDataFieldName": "Upload_CV"
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "id": "JlW82jJAO8Mqz1lU",
          "name": "My Account"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "b2cf1ee8-ae9e-433b-8f8c-97986506e6ca",
      "name": "下载简历",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        -1312,
        -1328
      ],
      "parameters": {
        "fileId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $json.id }}"
        },
        "options": {},
        "operation": "download"
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "id": "JlW82jJAO8Mqz1lU",
          "name": "My Account"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "fbf85dc4-eb37-485d-b3c9-baea539939a1",
      "name": "提取简历文本",
      "type": "n8n-nodes-base.extractFromFile",
      "position": [
        -1152,
        -1328
      ],
      "parameters": {
        "options": {},
        "operation": "pdf"
      },
      "typeVersion": 1
    },
    {
      "id": "cf300ed5-3ea2-4526-8ccf-a83a0c5d673d",
      "name": "AI比较与评分",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        -624,
        -1488
      ],
      "parameters": {
        "text": "=You are an expert HR analyst evaluating a job candidate for a Senior Software Engineer position.\n\n**CANDIDATE INFORMATION:**\nName: {{ $json.candidate_name }}\nEmail: {{ $json.email_address }}\n\n---\n\n**WHAT THE CANDIDATE CLAIMS (Written in Form):**\n\nSkills Claimed:\n{{ $json.skills_claimed }}\n\nJob History Claimed:\n{{ $json.job_history_claimed }}\n\n---\n\n**WHAT THE CV ACTUALLY SAYS:**\n{{ $json.cv_actual_content }}\n\n---\n\n**YOUR EVALUATION TASK:**\n\n1. **COMPARISON ANALYSIS** (Most Important):\n   - Compare what the candidate wrote in the form vs what's in their CV\n   - Check if skills claimed match skills in CV\n   - Check if job history claimed matches experience in CV\n   - Identify any exaggerations, omissions, or inconsistencies\n   - Calculate honesty/consistency score (1-100)\n\n2. **JOB FIT ANALYSIS**:\n   - Evaluate against these requirements:\n     * 3+ years professional development experience\n     * Bachelor's in CS/Engineering/IT\n     * Strong proficiency in Next.js and Supabase\n     * SaaS application development experience\n     * SQL and database design skills\n     * Uses AI tools in development\n   - Calculate job fit score (1-100)\n\n3. **FINAL SCORE CALCULATION**:\n   - Final Score = (Consistency Score × 0.40) + (Job Fit Score × 0.60)\n   - Score range: 1-100\n\n**OUTPUT FORMAT (STRICT JSON ONLY):**\n```json\n{\n  \"consistency_score\": 85,\n  \"job_fit_score\": 70,\n  \"final_score\": 76,\n  \"educational_qualification\": \"Brief summary from CV\",\n  \"job_history_summary\": \"Brief summary from CV\",\n  \"skill_set_summary\": \"Brief summary from CV\",\n  \"consistency_analysis\": \"Are form answers consistent with CV? List any discrepancies.\",\n  \"justification\": \"Why this final score? Focus on comparison results and job fit.\"\n}\n```",
        "options": {
          "systemMessage": "You are a professional HR analyst. Your PRIMARY task is to compare form answers with CV content. Always respond with valid JSON only. Be thorough in checking consistency between claimed skills/experience and actual CV content."
        },
        "promptType": "define"
      },
      "typeVersion": 2.2
    },
    {
      "id": "39b6c6d4-d99a-4303-aeb9-45e29c3c7194",
      "name": "解析AI结果",
      "type": "n8n-nodes-base.code",
      "position": [
        -320,
        -1488
      ],
      "parameters": {
        "jsCode": "// Get AI output (only one input expected)\nconst item = $input.item.json;\n\nlet aiOutput = {};\n\ntry {\n  const text = item.output || \"\";\n\n  // Extract JSON from markdown code blocks or fallback to plain JSON\n  const jsonMatch =\n    text.match(/```json\\s*([\\s\\S]*?)```/) ||\n    text.match(/```\\s*([\\s\\S]*?)```/) ||\n    [null, text];\n\n  aiOutput = JSON.parse(jsonMatch[1] || jsonMatch[0]);\n} catch (e) {\n  // Fallback: parse manually if JSON parsing fails\n  const text = item.output || \"\";\n  const finalScoreMatch = text.match(/\"final_score\"\\s*:\\s*(\\d+)/);\n  const consistencyMatch = text.match(/\"consistency_score\"\\s*:\\s*(\\d+)/);\n  const fitMatch = text.match(/\"job_fit_score\"\\s*:\\s*(\\d+)/);\n\n  aiOutput = {\n    final_score: finalScoreMatch ? parseInt(finalScoreMatch[1]) : 0,\n    consistency_score: consistencyMatch ? parseInt(consistencyMatch[1]) : 0,\n    job_fit_score: fitMatch ? parseInt(fitMatch[1]) : 0,\n    educational_qualification: \"Parse error\",\n    job_history_summary: \"Parse error\",\n    skill_set_summary: \"Parse error\",\n    consistency_analysis: \"Parse error: \" + e.message,\n    justification: \"Parse error\",\n  };\n}\n\n// Return only AI parsed data\nreturn [\n  {\n    json: {\n      consistency_score: aiOutput.consistency_score || 0,\n      job_fit_score: aiOutput.job_fit_score || 0,\n      final_score: aiOutput.final_score || 0,\n      educational_qualification: aiOutput.educational_qualification || \"\",\n      job_history_summary: aiOutput.job_history_summary || \"\",\n      skill_set_summary: aiOutput.skill_set_summary || \"\",\n      consistency_analysis: aiOutput.consistency_analysis || \"\",\n      justification: aiOutput.justification || \"\",\n    },\n  },\n];\n"
      },
      "typeVersion": 2
    },
    {
      "id": "eac75239-6849-4def-9498-a0067dafd42d",
      "name": "获取所有行",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        224,
        -1488
      ],
      "parameters": {
        "options": {},
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1ivfo6QQqw7H-2F10g1h0SR2Z6I4ApHOHYsxgH_7Mdlo/edit#gid=0",
          "cachedResultName": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1ivfo6QQqw7H-2F10g1h0SR2Z6I4ApHOHYsxgH_7Mdlo",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1ivfo6QQqw7H-2F10g1h0SR2Z6I4ApHOHYsxgH_7Mdlo/edit?usp=drivesdk",
          "cachedResultName": "CV Data"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "UwnixXxqC0pFVvLS",
          "name": "My Account"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "007f90d7-449f-4c01-a94b-08fd1a3c1970",
      "name": "按最终分数排序",
      "type": "n8n-nodes-base.code",
      "position": [
        400,
        -1488
      ],
      "parameters": {
        "jsCode": "// Sort all rows by final_score (highest to lowest)\nconst items = $input.all();\n\nitems.sort((a, b) => {\n  const scoreA = parseInt(a.json.final_score) || 0;\n  const scoreB = parseInt(b.json.final_score) || 0;\n  return scoreB - scoreA;\n});\n\nreturn items;"
      },
      "typeVersion": 2
    },
    {
      "id": "d933071d-3ac8-435d-b806-7e73566b32c0",
      "name": "清空表格",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        576,
        -1488
      ],
      "parameters": {
        "operation": "clear",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1ivfo6QQqw7H-2F10g1h0SR2Z6I4ApHOHYsxgH_7Mdlo"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "UwnixXxqC0pFVvLS",
          "name": "My Account"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "a7d7948c-71de-4f18-a6b7-956d1ba22ad9",
      "name": "写入排序数据",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        752,
        -1488
      ],
      "parameters": {
        "columns": {
          "value": {},
          "schema": [
            {
              "id": "candidate_name",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "candidate_name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "email_address",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "email_address",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "educational_qualification",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "educational_qualification",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Job_History",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Job_History",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "skill_set",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "skill_set",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "justification",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "justification",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "consistency_check",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "consistency_check",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "score",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "score",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "autoMapInputData",
          "matchingColumns": [
            "row_number"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "appendOrUpdate",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1ivfo6QQqw7H-2F10g1h0SR2Z6I4ApHOHYsxgH_7Mdlo/edit#gid=0",
          "cachedResultName": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1ivfo6QQqw7H-2F10g1h0SR2Z6I4ApHOHYsxgH_7Mdlo",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1ivfo6QQqw7H-2F10g1h0SR2Z6I4ApHOHYsxgH_7Mdlo/edit?usp=drivesdk",
          "cachedResultName": "CV Data"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "UwnixXxqC0pFVvLS",
          "name": "My Account"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "4ca956b4-c726-434c-952a-51c83a41337d",
      "name": "合并表单+简历1",
      "type": "n8n-nodes-base.merge",
      "position": [
        -976,
        -1488
      ],
      "parameters": {
        "mode": "combine",
        "options": {},
        "combineBy": "combineAll"
      },
      "typeVersion": 3.2
    },
    {
      "id": "2f209679-9ec9-4332-967f-1345f4c96b7d",
      "name": "Google Gemini聊天模型1",
      "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
      "position": [
        -576,
        -1280
      ],
      "parameters": {
        "options": {}
      },
      "credentials": {
        "googlePalmApi": {
          "id": "Your Gemini credential",
          "name": "My Account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "1c385e5b-1459-4a3a-979b-a1215d642a7e",
      "name": "获取分数",
      "type": "n8n-nodes-base.code",
      "position": [
        -144,
        -1488
      ],
      "parameters": {
        "jsCode": "// Get parsed AI results\nconst item = $input.item.json;\n\n// Convert to desired table-like format\nreturn [\n  {\n    json: {\n      Candidate: item.candidate_name || \"Unknown\",\n      \"Answer Quality\": item.consistency_score || 0,\n      \"CV Match\": item.job_fit_score || 0,\n      \"Fit Summary\": item.final_score || 0,\n      \"Final Score\": item.final_score || 0,\n    },\n  },\n];\n"
      },
      "typeVersion": 2
    },
    {
      "id": "3fea28de-e1ce-4cd5-b458-c8f1de1ae527",
      "name": "比较数据",
      "type": "n8n-nodes-base.code",
      "position": [
        -800,
        -1488
      ],
      "parameters": {
        "jsCode": "// Combine form data with CV text for comparison\nconst items = $input.all();\n\nlet formData = {};\nlet cvText = \"\";\n\nfor (const item of items) {\n  const data = item.json;\n  \n  if (data.Name || data.Email) {\n    formData = data;\n  }\n  \n  if (data.text && typeof data.text === 'string' && data.text.length > 50) {\n    cvText = data.text;\n  }\n}\n\nreturn {\n  json: {\n    candidate_name: formData.Name || \"\",\n    email_address: formData.Email || \"\",\n    skills_claimed: formData.Skills || \"\",\n    job_history_claimed: formData['Job History'] || \"\",\n    cv_actual_content: cvText || \"[ERROR: No CV text found]\",\n    timestamp: new Date().toISOString()\n  }\n};"
      },
      "typeVersion": 2
    },
    {
      "id": "a7404cf7-ee31-46cf-b21f-62965b8afb3f",
      "name": "保存到Sheets",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        32,
        -1488
      ],
      "parameters": {
        "columns": {
          "value": {
            "CV match": "={{ $json['CV Match'] }}",
            "Final Score": "={{ $json['Final Score'] }}",
            "Fit Summary": "={{ $json['Fit Summary'] }}",
            "email_address": "={{ $('Comparison Data').item.json.email_address }}",
            "candidate_name": "={{ $('Comparison Data').item.json.candidate_name }}",
            "Answers Quality": "={{ $json['Answer Quality'] }}"
          },
          "schema": [
            {
              "id": "candidate_name",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "candidate_name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "email_address",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "email_address",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Answers Quality",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Answers Quality",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "CV match",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "CV match",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Fit Summary",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Fit Summary",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Final Score",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Final Score",
              "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/1ivfo6QQqw7H-2F10g1h0SR2Z6I4ApHOHYsxgH_7Mdlo/edit#gid=0",
          "cachedResultName": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1ivfo6QQqw7H-2F10g1h0SR2Z6I4ApHOHYsxgH_7Mdlo",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1ivfo6QQqw7H-2F10g1h0SR2Z6I4ApHOHYsxgH_7Mdlo/edit?usp=drivesdk",
          "cachedResultName": "CV Data"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "UwnixXxqC0pFVvLS",
          "name": "My Account"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "a305785f-ac90-446e-9aef-a24fe5a2aaa1",
      "name": "便签",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1008,
        -1712
      ],
      "parameters": {
        "color": 5,
        "width": 166,
        "height": 576,
        "content": "合并节点以组合简历数据和问题答案"
      },
      "typeVersion": 1
    },
    {
      "id": "bed2791f-0183-44c1-97f2-e9e44ee531c8",
      "name": "便签1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -832,
        -1712
      ],
      "parameters": {
        "color": 3,
        "width": 166,
        "height": 576,
        "content": "比较传入数据\"问题答案和简历数据\""
      },
      "typeVersion": 1
    },
    {
      "id": "e5e6261f-a800-47f6-995d-b7680be6220e",
      "name": "便签2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -656,
        -1712
      ],
      "parameters": {
        "color": 2,
        "width": 288,
        "height": 576,
        "content": "AI助手节点:"
      },
      "typeVersion": 1
    },
    {
      "id": "3cd73546-3a4c-45cf-835a-2e10aee4baa8",
      "name": "便签3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -352,
        -1712
      ],
      "parameters": {
        "color": 4,
        "width": 336,
        "height": 576,
        "content": "代码节点:"
      },
      "typeVersion": 1
    },
    {
      "id": "731f3d2f-74b6-4d46-965d-519c030472d5",
      "name": "便签说明4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        0,
        -1712
      ],
      "parameters": {
        "color": 3,
        "width": 166,
        "height": 576,
        "content": "将数据保存到Google表格"
      },
      "typeVersion": 1
    },
    {
      "id": "24512dd9-c364-48e9-9d5c-29717202a28f",
      "name": "便签说明5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        176,
        -1712
      ],
      "parameters": {
        "color": 5,
        "width": 166,
        "height": 576,
        "content": "获取所有行"
      },
      "typeVersion": 1
    },
    {
      "id": "d6bcf2f6-9ab8-4d2e-a58f-3eb784136709",
      "name": "便签 6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        352,
        -1712
      ],
      "parameters": {
        "width": 166,
        "height": 576,
        "content": "基于评分排序数据"
      },
      "typeVersion": 1
    },
    {
      "id": "5dcfb8eb-da59-46be-8329-67011031eeba",
      "name": "便签 7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        544,
        -1712
      ],
      "parameters": {
        "color": 7,
        "width": 336,
        "height": 576,
        "content": "清空表格并重新按评分保存数据"
      },
      "typeVersion": 1
    },
    {
      "id": "378342c4-f97f-49b5-90dd-f654e3c6a230",
      "name": "## 为什么选择 4o 模型?👆",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1072,
        -1936
      ],
      "parameters": {
        "width": 1168,
        "content": "# 自动化AI驱动的简历筛选与候选人评分系统"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "8cd5ca24-38d3-4e20-b05a-beadf2d2acef",
  "connections": {
    "Clear Sheet": {
      "main": [
        [
          {
            "node": "Write Sorted Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Download CV": {
      "main": [
        [
          {
            "node": "Extract CV Text",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get All Rows": {
      "main": [
        [
          {
            "node": "Sort by Final Score",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Getting Score": {
      "main": [
        [
          {
            "node": "Save to Sheets",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Save to Sheets": {
      "main": [
        [
          {
            "node": "Get All Rows",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Comparison Data": {
      "main": [
        [
          {
            "node": "AI Comparison & Scoring",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extract CV Text": {
      "main": [
        [
          {
            "node": "Merge Form + CV1",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Merge Form + CV1": {
      "main": [
        [
          {
            "node": "Comparison Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Parse AI Results": {
      "main": [
        [
          {
            "node": "Getting Score",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "On form submission": {
      "main": [
        [
          {
            "node": "Upload CV to Drive",
            "type": "main",
            "index": 0
          },
          {
            "node": "Merge Form + CV1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Upload CV to Drive": {
      "main": [
        [
          {
            "node": "Download CV",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Sort by Final Score": {
      "main": [
        [
          {
            "node": "Clear Sheet",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "AI Comparison & Scoring": {
      "main": [
        [
          {
            "node": "Parse AI Results",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Gemini Chat Model1": {
      "ai_languageModel": [
        [
          {
            "node": "AI Comparison & Scoring",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    }
  }
}
常见问题

如何使用这个工作流?

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

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

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

需要付费吗?

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

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

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

作者
Asfandyar Malik

Asfandyar Malik

@asfandyar-malik

Building AI Calling | Voho Calling

外部链接
在 n8n.io 查看

分享此工作流