8
n8n 中文网amn8n.com

智能面试助手:基于简历、职位描述和轮次的定制问题

高级

这是一个HR, Multimodal AI领域的自动化工作流,包含 26 个节点。主要使用 Set, Code, Merge, EmailSend, FormTrigger 等节点。 基于简历、职位描述和轮次使用GPT-4生成定制面试问题

前置要求
  • Google Drive API 凭证
  • Google Sheets API 凭证
  • OpenAI API Key
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
  "id": "zbggnEhKUnzCjVEY",
  "meta": {
    "instanceId": "4a2e6764ba7a6bc9890d9225f4b21d570ce88fc9bd57549c89057fcee58fed0f",
    "templateId": "5453",
    "templateCredsSetupCompleted": true
  },
  "name": "智能面试助手:基于简历、职位描述和轮次的定制问题",
  "tags": [
    {
      "id": "OcQfoQT2ejtrpKfF",
      "name": "HR Workflow",
      "createdAt": "2025-07-30T05:57:04.113Z",
      "updatedAt": "2025-07-30T05:57:04.113Z"
    }
  ],
  "nodes": [
    {
      "id": "951cb8f8-c122-42fb-929a-7008fd545e5c",
      "name": "便签1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1168,
        1856
      ],
      "parameters": {
        "width": 748,
        "height": 176,
        "content": "## 1. 招聘经理选择候选人资料、申请职位和面试轮次"
      },
      "typeVersion": 1
    },
    {
      "id": "02b35afe-c7ee-425f-95d7-5e22489d4445",
      "name": "申请表",
      "type": "n8n-nodes-base.formTrigger",
      "position": [
        -560,
        2112
      ],
      "webhookId": "f29214cd-588d-4116-8d56-7d0f91cfda9d",
      "parameters": {
        "options": {
          "customCss": ":root {\n\t--font-family: 'Open Sans', sans-serif;\n\t--font-weight-normal: 400;\n\t--font-weight-bold: 600;\n\t--font-size-body: 12px;\n\t--font-size-label: 14px;\n\t--font-size-test-notice: 12px;\n\t--font-size-input: 14px;\n\t--font-size-header: 20px;\n\t--font-size-paragraph: 14px;\n\t--font-size-link: 12px;\n\t--font-size-error: 12px;\n\t--font-size-html-h1: 28px;\n\t--font-size-html-h2: 20px;\n\t--font-size-html-h3: 16px;\n\t--font-size-html-h4: 14px;\n\t--font-size-html-h5: 12px;\n\t--font-size-html-h6: 10px;\n\t--font-size-subheader: 14px;\n\n\t/* Colors */\n\t--color-background: #fbfcfe;\n\t--color-test-notice-text: #e6a23d;\n\t--color-test-notice-bg: #fefaf6;\n\t--color-test-notice-border: #f6dcb7;\n\t--color-card-bg: #ffffff;\n\t--color-card-border: #dbdfe7;\n\t--color-card-shadow: rgba(99, 77, 255, 0.06);\n\t--color-link: #7e8186;\n\t--color-header: #525356;\n\t--color-label: #555555;\n\t--color-input-border: #dbdfe7;\n\t--color-input-text: #71747A;\n\t--color-focus-border: rgb(90, 76, 194);\n\t--color-submit-btn-bg: #0000FF; /* Changed to blue */\n\t--color-submit-btn-text: #ffffff;\n\t--color-error: #ea1f30;\n\t--color-required: #ff6d5a;\n\t--color-clear-button-bg: #7e8186;\n\t--color-html-text: #555;\n\t--color-html-link: #ff6d5a;\n\t--color-header-subtext: #7e8186;\n\n\t/* Border Radii */\n\t--border-radius-card: 8px;\n\t--border-radius-input: 6px;\n\t--border-radius-clear-btn: 50%;\n\t--card-border-radius: 8px;\n\n\t/* Spacing */\n\t--padding-container-top: 24px;\n\t--padding-card: 24px;\n\t--padding-test-notice-vertical: 12px;\n\t--padding-test-notice-horizontal: 24px;\n\t--margin-bottom-card: 16px;\n\t--padding-form-input: 12px;\n\t--card-padding: 24px;\n\t--card-margin-bottom: 16px;\n\n\t/* Dimensions */\n\t--container-width: 448px;\n\t--submit-btn-height: 48px;\n\t--checkbox-size: 18px;\n\n\t/* Others */\n\t--box-shadow-card: 0px 4px 16px 0px var(--color-card-shadow);\n\t--opacity-placeholder: 0.5;\n}\n",
          "appendAttribution": false
        },
        "formTitle": "Smart Interview Prep Assistant",
        "formFields": {
          "values": [
            {
              "fieldType": "file",
              "fieldLabel": "CV",
              "multipleFiles": false,
              "requiredField": true,
              "acceptFileTypes": ".pdf"
            },
            {
              "fieldType": "dropdown",
              "fieldLabel": "Job Role",
              "fieldOptions": {
                "values": [
                  {
                    "option": "Talent acquisition Specialist (Intermediate)"
                  },
                  {
                    "option": "Senior Tester/QC (Web Apps, Mobile, API, Database)"
                  },
                  {
                    "option": "Lead Full-stack Developer (.NET, Angular/React.js)"
                  },
                  {
                    "option": "Manual Tester/QC (Senior level)"
                  }
                ]
              },
              "requiredField": true
            },
            {
              "fieldType": "dropdown",
              "fieldLabel": "Interview Round",
              "fieldOptions": {
                "values": [
                  {
                    "option": "Initial Screening"
                  },
                  {
                    "option": "Technical/Functional Interview"
                  },
                  {
                    "option": "Managerial/Team Fit Interview"
                  },
                  {
                    "option": "Final Interview"
                  }
                ]
              }
            }
          ]
        },
        "formDescription": "Effortlessly generate tailored interview questions based on the candidate’s resume, job description, and interview round. Perfect for recruiters, hiring managers, and interviewers who want to save time while staying sharp and relevant."
      },
      "typeVersion": 2.2
    },
    {
      "id": "fede7d7a-9e6b-4f41-8faa-11bc18385a1e",
      "name": "提取资料",
      "type": "n8n-nodes-base.extractFromFile",
      "position": [
        -144,
        1776
      ],
      "parameters": {
        "options": {},
        "operation": "pdf",
        "binaryPropertyName": "CV"
      },
      "typeVersion": 1
    },
    {
      "id": "89b76cb0-9ac8-40c5-a305-cee3914be9dc",
      "name": "JSON 解析器",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        304,
        1968
      ],
      "parameters": {
        "jsonSchemaExample": "{\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}"
      },
      "typeVersion": 1.3
    },
    {
      "id": "bdab7446-ab5a-4bde-9f05-5d9eea6c392d",
      "name": "gpt4-1 模型",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        112,
        1968
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4.1-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "id": "PPSwAKeLQYgAPobT",
          "name": "OpenAi account"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "e81e164b-2f0a-44be-ae52-66b1de95a0f2",
      "name": "获取职位 JD",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -304,
        2256
      ],
      "parameters": {
        "options": {},
        "filtersUI": {
          "values": [
            {
              "lookupValue": "={{ $('Application form').item.json['Job Role'] }}",
              "lookupColumn": "Job Role"
            }
          ]
        },
        "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,
      "alwaysOutputData": true
    },
    {
      "id": "8ef88c1b-16d1-4984-87a2-3fe10d98646c",
      "name": "下载文件",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        -80,
        2256
      ],
      "parameters": {
        "fileId": {
          "__rl": true,
          "mode": "url",
          "value": "={{ $json['Job Description'] }}"
        },
        "options": {},
        "operation": "download"
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "id": "fC471es5gk5Mm900",
          "name": "Google Drive account"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "b9d5fe39-af88-419e-bdf8-4646a324f892",
      "name": "提取职位描述",
      "type": "n8n-nodes-base.extractFromFile",
      "position": [
        240,
        2256
      ],
      "parameters": {
        "options": {},
        "operation": "pdf"
      },
      "typeVersion": 1
    },
    {
      "id": "d9c3fd9b-ca77-4c39-b4fe-1e5f51d0aebf",
      "name": "资料分析器代理",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        112,
        1776
      ],
      "parameters": {
        "text": "=Please extract all relevant information from this candiadte:\nCV Content:\n===\n{{ $json[\"text\"] }}\n===",
        "options": {
          "systemMessage": ""
        },
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 2.1
    },
    {
      "id": "d2e82f1b-7d55-4588-8f5b-28f6fef8ed48",
      "name": "gpt-4-1 模型 2",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        1376,
        2272
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4.1-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "id": "PPSwAKeLQYgAPobT",
          "name": "OpenAi account"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "ceaca356-c885-44ed-8976-291f29550f7c",
      "name": "便签7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2512,
        928
      ],
      "parameters": {
        "width": 1312,
        "height": 2896,
        "content": "# 🤖 智能面试助手:基于简历、职位描述和轮次的定制问题"
      },
      "typeVersion": 1
    },
    {
      "id": "0c6aa881-8155-444f-9cb2-0a5ba0ea968e",
      "name": "便签3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1136,
        2048
      ],
      "parameters": {
        "width": 556,
        "height": 708,
        "content": "![替代文本](https://wisestackai.s3.ap-southeast-1.amazonaws.com/Screenshot+2025-08-01+at+2.29.54%E2%80%AFPM.png \"可选标题文本\")"
      },
      "typeVersion": 1
    },
    {
      "id": "0833bd6f-9ea5-450e-9818-628082b8b762",
      "name": "便签4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -304,
        2464
      ],
      "parameters": {
        "width": 736,
        "height": 128,
        "content": "![替代文本](https://wisestackai.s3.ap-southeast-1.amazonaws.com/Screenshot+2025-07-29+at+12.54.54%E2%80%AFPM.png \"可选标题文本\")"
      },
      "typeVersion": 1
    },
    {
      "id": "7ae138fa-8739-4eee-80c0-91e357e40054",
      "name": "面试轮次元数据",
      "type": "n8n-nodes-base.set",
      "position": [
        992,
        2112
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "caac3f3e-06a2-4095-91e3-41910f80b1ea",
              "name": "Initial Screening",
              "type": "string",
              "value": "Purpose: Quickly assess whether the candidate meets the basic qualifications and is a potential fit for the role and company culture.  Conducted by: Recruiter or Talent Acquisition (TA) Specialist.  Focus Areas: \t•\tResume walkthrough and career summary \t•\tMotivation for applying \t•\tSalary expectations and availability \t•\tBasic qualification and communication skills \t•\tClarifying job responsibilities and candidate’s interest  Goal for Agent: Generate light, conversational questions that verify resume claims, screen for red flags, and confirm role alignment."
            },
            {
              "id": "9baaec07-ddaa-4d10-a80f-33a0dd200fcc",
              "name": "Technical/Functional Interview",
              "type": "string",
              "value": "Purpose: Evaluate the candidate’s core technical or functional skills required for the job.  Conducted by: Team members, senior engineers, or functional managers.  Focus Areas: \t•\tRole-specific skills (e.g., coding, data analysis, sales strategy) \t•\tProblem-solving and past project experience \t•\tUnderstanding of tools, frameworks, or domain knowledge \t•\tScenario-based or behavioral questions related to their role  Goal for Agent: Generate targeted, skill-assessing questions with a mix of practical scenarios and behavioral prompts."
            },
            {
              "id": "672e2623-81b8-4e2a-959d-3e1ec9886cf8",
              "name": "Managerial/Team Fit Interview",
              "type": "string",
              "value": "Purpose: Assess collaboration skills, ownership, team dynamics, and alignment with team culture.  Conducted by: Hiring Manager or Team Lead.  Focus Areas: \t•\tCommunication and stakeholder management \t•\tDecision-making and conflict resolution \t•\tPast team experiences and leadership style \t•\tCareer growth and adaptability  Goal for Agent: Generate behavioral and situational questions that test emotional intelligence, leadership, and problem ownership."
            },
            {
              "id": "516ca9b8-de86-41a8-b398-f14e746ed414",
              "name": "Final Interview (Executive/Leadership Round)",
              "type": "string",
              "value": "Purpose: Validate overall fit with company values, long-term potential, and alignment with business goals. May include negotiation.  Conducted by: Director, VP, or C-level executives.  Focus Areas: \t•\tVision alignment and strategic thinking \t•\tLong-term career goals and role alignment \t•\tBusiness acumen and cross-functional collaboration \t•\tSalary/compensation discussion (if applicable)  Goal for Agent: Generate questions around strategic vision, values alignment, and leadership potential."
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "9634847d-288d-4c09-824d-b0a391ace376",
      "name": "合并",
      "type": "n8n-nodes-base.merge",
      "position": [
        544,
        2112
      ],
      "parameters": {},
      "typeVersion": 3.2
    },
    {
      "id": "5867643e-e996-43bd-b025-ba4ad6308289",
      "name": "转换输出",
      "type": "n8n-nodes-base.code",
      "position": [
        768,
        2112
      ],
      "parameters": {
        "jsCode": "// Raw merged input (first N items are candidate profiles, last item is JD)\nconst items = $input.all();\n\n// Extract job description (assuming it's the last element)\nconst jdItem = items[items.length - 1];\nconst job_description = jdItem.json.text;\n// Prepare output array\nconst results = [];\n\n// Loop through all items except the last one (JD)\nfor (let i = 0; i < items.length - 1; i++) {\n  const candidate = items[i].json.output;\n  results.push({\n    json: {\n      candidate_profile: candidate,\n      job_description: job_description,\n      applied_position: $('Application form').first().json['Job Role'],\n      interview_round: $('Application form').first().json['Interview Round']\n    }\n  });\n}\n\nreturn results;"
      },
      "typeVersion": 2
    },
    {
      "id": "61e4c089-30a5-4b93-af09-75f2c68d6fb6",
      "name": "结构化输出解析器",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        1568,
        2288
      ],
      "parameters": {
        "jsonSchemaExample": "{\n  \"candidate_summary\": {\n    \"name\": \"string\",\n    \"position_applied\": \"string\",\n    \"years_of_experience\": \"number\",\n    \"key_skills\": [\"string\"],\n    \"highlights\": \"string\"\n  },\n  \"job_description_summary\": {\n    \"role_title\": \"string\",\n    \"team\": \"string\",\n    \"core_requirements\": [\"string\"]\n  },\n  \"interview_round\": {\n    \"round_type\": \"string\",\n    \"round_purpose\": \"string\",\n    \"conducted_by\": \"string\",\n    \"focus_areas\": [\"string\"]\n  },\n  \"interview_questions\": [\n    {\n      \"question\": \"string\",\n      \"expected_answer\": \"string\"\n    }\n  ]\n}"
      },
      "typeVersion": 1.3
    },
    {
      "id": "530851ff-f0c3-47a1-abdd-01d13f1875e4",
      "name": "构建面试准备报告",
      "type": "n8n-nodes-base.code",
      "position": [
        1984,
        2112
      ],
      "parameters": {
        "mode": "runOnceForEachItem",
        "jsCode": "const data = $json.output;\n\nconst candidate = data.candidate_summary;\nconst jd = data.job_description_summary;\nconst round = data.interview_round;\nconst questions = data.interview_questions;\n\nlet html = `\n  <html>\n    <head>\n      <style>\n        body { font-family: Arial, sans-serif; line-height: 1.5; padding: 20px; }\n        h1, h2 { color: #2c3e50; }\n        h3 { color: #34495e; }\n        ul { padding-left: 20px; }\n        .section { margin-bottom: 25px; }\n        .question { margin-bottom: 15px; }\n        .q-label { font-weight: bold; color: #2c3e50; }\n        .a-label { font-style: italic; color: #7f8c8d; }\n      </style>\n    </head>\n    <body>\n      <h1>Interview Prep Report</h1>\n\n      <div class=\"section\">\n        <h2>Candidate Summary</h2>\n        <p><strong>Name:</strong> ${candidate.name}</p>\n        <p><strong>Position Applied:</strong> ${candidate.position_applied}</p>\n        <p><strong>Experience:</strong> ${candidate.years_of_experience}</p>\n        <p><strong>Highlights:</strong> ${candidate.highlights}</p>\n        <p><strong>Key Skills:</strong></p>\n        <ul>${candidate.key_skills.map(skill => `<li>${skill}</li>`).join('')}</ul>\n      </div>\n\n      <div class=\"section\">\n        <h2>Job Description Summary</h2>\n        <p><strong>Role:</strong> ${jd.role_title}</p>\n        <p><strong>Team:</strong> ${jd.team}</p>\n        <p><strong>Requirements:</strong></p>\n        <ul>${jd.core_requirements.map(req => `<li>${req}</li>`).join('')}</ul>\n      </div>\n\n      <div class=\"section\">\n        <h2>Interview Round</h2>\n        <p><strong>Round Type:</strong> ${round.round_type}</p>\n        <p><strong>Purpose:</strong> ${round.round_purpose}</p>\n        <p><strong>Conducted By:</strong> ${round.conducted_by}</p>\n        <p><strong>Focus Areas:</strong></p>\n        <ul>${round.focus_areas.map(item => `<li>${item}</li>`).join('')}</ul>\n      </div>\n\n      <div class=\"section\">\n        <h2>Interview Questions</h2>\n        ${questions.map((q, index) => `\n          <div class=\"question\">\n            <p class=\"q-label\">Q${index + 1}: ${q.question}</p>\n            <p class=\"a-label\">Expected Answer: ${q.expected_answer}</p>\n          </div>\n        `).join('')}\n      </div>\n    </body>\n  </html>\n`;\n\nreturn { json: { html }}"
      },
      "typeVersion": 2
    },
    {
      "id": "2e188bfa-db80-4493-9ec3-6853ead3e3c1",
      "name": "发送面试准备报告给招聘团队",
      "type": "n8n-nodes-base.emailSend",
      "position": [
        2208,
        2112
      ],
      "webhookId": "bb7abbfe-9fd9-495c-8a6c-89701389b4d6",
      "parameters": {
        "html": "={{ $json.html }}",
        "options": {},
        "subject": "=Interview Preparation Guide for [{{ $('Interview Expert Agent').item.json.output.candidate_summary.name }}] – [{{ $('Interview Expert Agent').item.json.output.candidate_summary.position_applied }}]",
        "toEmail": "hiring-team@example.com",
        "fromEmail": "no-reply@example.com"
      },
      "credentials": {
        "smtp": {
          "id": "Cqc9p9Z5PHj2MHzn",
          "name": "SMTP account"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "3e49e6fa-0dab-4f73-bd7f-8f6473d0559c",
      "name": "便签",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -336,
        2128
      ],
      "parameters": {
        "width": 780,
        "height": 304,
        "content": "## 2.2. 下载选定的职位描述"
      },
      "typeVersion": 1
    },
    {
      "id": "aabd3e08-605e-4fe2-b687-78eccefc1103",
      "name": "便签2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -336,
        1648
      ],
      "parameters": {
        "width": 780,
        "height": 432,
        "content": "## 2.1. 候选人资料分析器"
      },
      "typeVersion": 1
    },
    {
      "id": "17f5f597-3bf3-4314-82a8-67fc654ac144",
      "name": "便签5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        512,
        1952
      ],
      "parameters": {
        "width": 652,
        "height": 336,
        "content": "## 3. 为面试专家代理准备材料"
      },
      "typeVersion": 1
    },
    {
      "id": "84d88fdb-f333-45c9-94ae-eb5545b2087c",
      "name": "面试专家代理",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "position": [
        1376,
        2112
      ],
      "parameters": {
        "text": "=Generate interview prep document based on the following:\n- Applied Position: {{ $('Transform output').item.json.applied_position }}\n- Job Description: {{ $('Transform output').item.json.job_description }}\n- Candidate Profile: {{ $('Transform output').item.json.candidate_profile.toJsonString() }}\n- Interview Round: {{ $('Transform output').item.json.interview_round }}\n- Interview Round Description: {{ $json[$('Transform output').item.json.interview_round] }}",
        "messages": {
          "messageValues": [
            {
              "message": "You are an AI Interview Prep Assistant supporting Talent Acquisition (TA) teams. Your job is to generate relevant, role-specific interview questions based on three inputs: the candidate’s profile, the job description (JD), and the selected interview round.  You must first analyze the candidate profile to understand key skills, experiences, and career highlights. Then extract the core requirements and responsibilities from the JD. Based on the specified interview round, adjust the tone, focus, and style of your questions appropriately.  Your output must include: \t•\tA summary of the candidate and applied position, including name, role, years of experience, and notable skills or achievements. \t•\tA summary of the job description, highlighting the core role requirements and expectations. \t•\tThe interview round type, along with its purpose and focus areas. \t•\tA list of 5 to 8 high-quality interview questions, each with a brief explanation of the expected answer or evaluation criteria.  Questions should reflect the intent of the selected round: \t•\tFor screening rounds, keep them light and conversational to verify fit and clarify resume details. \t•\tFor technical or functional rounds, generate questions that evaluate skill depth and practical knowledge. \t•\tFor managerial or leadership rounds, focus on behavior, decision-making, and collaboration. \t•\tFor executive rounds, assess strategic thinking, long-term alignment, and business perspective."
            }
          ]
        },
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 1.5
    },
    {
      "id": "64389790-9976-4905-a09b-416dbc445588",
      "name": "便签6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1216,
        1952
      ],
      "parameters": {
        "width": 652,
        "height": 496,
        "content": "## 4. 面试专家代理生成面试准备报告"
      },
      "typeVersion": 1
    },
    {
      "id": "f0f1a9f5-92a6-4ac4-8c4c-fc65cbb4d32a",
      "name": "便签8",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1904,
        2048
      ],
      "parameters": {
        "width": 572,
        "height": 224,
        "content": "## 5. 解析输出并发送电子邮件给招聘团队"
      },
      "typeVersion": 1
    },
    {
      "id": "ebf2fcc0-19bd-4d7e-aa49-875952463f52",
      "name": "便签9",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2512,
        1776
      ],
      "parameters": {
        "width": 736,
        "height": 768,
        "content": "![替代文本](https://wisestackai.s3.ap-southeast-1.amazonaws.com/interview-prep-2.png \"可选标题文本\")"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "eb364707-bf93-475b-abd4-5105515732a1",
  "connections": {
    "Merge": {
      "main": [
        [
          {
            "node": "Transform output",
            "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
          }
        ]
      ]
    },
    "Extract profile": {
      "main": [
        [
          {
            "node": "Profile Analyzer Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get position JD": {
      "main": [
        [
          {
            "node": "Download file",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "gpt-4-1 model 2": {
      "ai_languageModel": [
        [
          {
            "node": "Interview Expert Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Application form": {
      "main": [
        [
          {
            "node": "Get position JD",
            "type": "main",
            "index": 0
          },
          {
            "node": "Extract profile",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Transform output": {
      "main": [
        [
          {
            "node": "Interview round metadata",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Interview Expert Agent": {
      "main": [
        [
          {
            "node": "Build interview prep report",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Profile Analyzer Agent": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extract Job Description": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Interview round metadata": {
      "main": [
        [
          {
            "node": "Interview Expert Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Structured Output Parser": {
      "ai_outputParser": [
        [
          {
            "node": "Interview Expert Agent",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Build interview prep report": {
      "main": [
        [
          {
            "node": "Send interview prep report to hiring team",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
常见问题

如何使用这个工作流?

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

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

高级 - 人力资源, 多模态 AI

需要付费吗?

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

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

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

作者
Trung Tran

Trung Tran

@trungtran

Helps small and medium businesses grow with intelligent automation and practical AI tools, no heavy tech team needed.

外部链接
在 n8n.io 查看

分享此工作流