{
  "id": "dOaiA0eoSCdxkOv0",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "BeyondPresence Agent HR Interview System",
  "tags": [],
  "nodes": [
    {
      "id": "f934aa49-faee-4413-b1b9-6a4c2b9f45b2",
      "name": "Job Description Instructions",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1240,
        -680
      ],
      "parameters": {
        "color": 5,
        "width": 400,
        "height": 520,
        "content": "## \ud83d\udcdd 1\ub2e8\uacc4: \uadc0\ud558\uc758 \uc9c1\ubb34 \uc124\uba85 \ucd94\uac00\n\n**\uc544\ub798\uc758 \ub178\ub780\uc0c9 \uc0c1\uc790\uc5d0 \uadc0\ud558\uc758 \uc644\uc804\ud55c \uc9c1\ubb34 \uacf5\uace0\ub97c \uac04\ub2e8\ud788 \ubd99\uc5ec\ub123\uc73c\uc138\uc694**\n\n\ud3ec\ud568:\n- \uc9c1\ubb34 \uc81c\ubaa9\n- \ud68c\uc0ac \uc774\ub984\n- \ucc45\uc784\n- \uc694\uad6c\uc0ac\ud56d\n- \uae30\ud0c0 \uad00\ub828 \uc138\ubd80 \uc0ac\ud56d\n\nAI\uac00 \uadc0\ud558\uc758 \ud14d\uc2a4\ud2b8\uc5d0\uc11c \ubaa8\ub4e0 \uac83\uc744 \uc774\ud574\ud560 \uac83\uc785\ub2c8\ub2e4!"
      },
      "typeVersion": 1
    },
    {
      "id": "81fa81d2-1b16-4e15-a84c-4677bcbc4ad8",
      "name": "\ud83d\udcdd Your Job Description",
      "type": "n8n-nodes-base.code",
      "position": [
        -1000,
        -320
      ],
      "parameters": {
        "jsCode": "// ========== PASTE YOUR JOB DESCRIPTION HERE ==========\n// Simply paste your entire job posting between the quotes below\n// Include everything: job title, company name, requirements, etc.\n\nconst jobDescription = `\nProduct Marketing Manager \u2013 BeyondPresence.ai\n\nBeyondPresence.ai is redefining human-computer interaction with hyper-realistic, emotionally intelligent digital avatars and Conversational Video Agents that deliver human-like, real-time conversations at scale. Our proprietary AI technology powers next-generation customer support, sales, HR, and training experiences for leading brands worldwide. We are seeking a dynamic Product Marketing Manager to drive the go-to-market strategy and accelerate adoption of our cutting-edge platform.\n\nResponsibilities\nDevelop and execute go-to-market strategies for new and existing BeyondPresence.ai products, with a focus on driving demand, adoption, and customer engagement.\n\nCraft compelling product positioning and messaging that differentiates our conversational avatars and platform in the market.\n\nConduct market, competitor, and user research to identify trends, customer needs, and growth opportunities.\n\nBuild and maintain detailed buyer personas to guide targeted marketing and sales initiatives.\n\nCollaborate closely with product, engineering, and sales teams to align on product vision, roadmap, and feature launches.\n\nLead cross-functional product launches, including launch planning, sales enablement, and campaign execution.\n\nCreate and manage marketing collateral, demos, website content, case studies, and sales tools that clearly communicate product value.\n\nGather and analyze customer feedback and campaign performance data to optimize messaging and marketing programs.\n\nSupport the sales team with training, product presentations, and competitive insights to drive conversions and upsells.\n\nRepresent BeyondPresence.ai at industry events, webinars, and customer meetings as a product evangelist.\n\nRequirements\n4+ years of experience in product marketing, preferably in B2B SaaS, AI, or related technology sectors.\n\nProven track record of launching and scaling innovative technology products, ideally in AI, conversational platforms, or digital avatars.\n\nDeep understanding of go-to-market strategies, product positioning, and value-based messaging.\n\nExceptional written and verbal communication skills, including copywriting and storytelling.\n\nStrong analytical skills with experience in market research, data analysis, and campaign optimization.\n\nDemonstrated ability to influence and collaborate with cross-functional teams without direct authority.\n\nExperience supporting sales teams with enablement materials and training.\n\nBachelor\u2019s degree in marketing, business, or a related field; advanced degree a plus.\n\nPassion for emerging technologies, AI, and shaping the future of human-computer interaction.\n\nWhy BeyondPresence.ai?\nJoin a visionary, fast-growing team with deep expertise in AI, avatars, and conversational technology.\n\nShape the future of digital communication and help global brands deliver human-like experiences at scale.\n\nWork with a collaborative, mission-driven team backed by proven founders and industry leaders.\n\nCompetitive compensation, flexible work environment, and opportunities for rapid career growth.\n\nReady to help define the future of human-AI interaction? Apply now and join BeyondPresence.ai!\n`;\n\n// Don't change anything below this line\nreturn [{\n  json: {\n    jobDescription: jobDescription.trim(),\n    timestamp: new Date().toISOString()\n  }\n}];"
      },
      "typeVersion": 2
    },
    {
      "id": "3b076ed7-a31d-4ce5-af14-c79fe425ce41",
      "name": "Setup Instructions",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -820,
        -680
      ],
      "parameters": {
        "color": 7,
        "width": 430,
        "height": 520,
        "content": "## \ud83d\ude80 2\ub2e8\uacc4: \uadc0\ud558\uc758 \uc778\ud130\ubdf0 \uc5d0\uc774\uc804\ud2b8 \ub9cc\ub4e4\uae30\n\n**\uc544\ub798 \ubc84\ud2bc\uc744 \ud074\ub9ad\ud558\uc5ec:**\n1. \uadc0\ud558\uc758 AI \uc778\ud130\ubdf0\uc5b4 \ub9cc\ub4e4\uae30\n2. \uadc0\ud558\uc758 \uc778\ud130\ubdf0 \ub9c1\ud06c \ubc1b\uae30\n\n\uc774\uac83\uc740 \ud55c \ubc88\ub9cc \uc218\ud589\ud558\uba74 \ub429\ub2c8\ub2e4!"
      },
      "typeVersion": 1
    },
    {
      "id": "aecf3f6e-bd63-4af5-b8f1-d18c05c1c661",
      "name": "\u25b6\ufe0f Click to Start Setup",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        -1200,
        -320
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "2ce3a3f3-05cc-49f6-b52e-4e2491848452",
      "name": "Prepare Interview Agent",
      "type": "n8n-nodes-base.code",
      "position": [
        -780,
        -320
      ],
      "parameters": {
        "jsCode": "// Generate the interview system prompt\nconst jobDescription = $input.first().json.jobDescription;\n\nconst systemPrompt = `You are a professional HR interviewer conducting job interviews. Your goal is to assess candidates thoroughly while making them feel comfortable and valued.\n\nJob Description:\n${jobDescription}\n\nInterview Approach:\n- Start with a warm welcome and brief introduction\n- Ask about their interest in the role and company\n- Explore their relevant experience with specific examples\n- Assess technical skills and cultural fit\n- Allow time for their questions\n- Close professionally with next steps\n\nBe conversational, ask follow-up questions, and show genuine interest in their responses. If they seem nervous, help them feel at ease. Always maintain a professional yet friendly tone.`;\n\nconst welcomeMessage = `Hello! Welcome to our interview. I'm excited to learn about your background and discuss this opportunity with you. \n\nLet's start with you telling me a bit about yourself and what interests you about this position.`;\n\nreturn [{\n  json: {\n    jobDescription,\n    systemPrompt,\n    welcomeMessage,\n    agentName: `HR Interview Bot - ${new Date().toLocaleDateString()}`\n  }\n}];"
      },
      "typeVersion": 2
    },
    {
      "id": "f05b2cd3-1550-4c5b-ab27-9313b46b75ef",
      "name": "Create Interview Agent",
      "type": "n8n-nodes-beyondpresence.beyondPresence",
      "position": [
        -560,
        -320
      ],
      "parameters": {
        "name": "={{ $json.agentName }}",
        "greeting": "={{ $json.welcomeMessage }}",
        "systemPrompt": "={{ $json.systemPrompt }}",
        "requestOptions": {}
      },
      "typeVersion": 1
    },
    {
      "id": "9ccd8a67-fbae-4ac8-b763-f43b1cf38a48",
      "name": "Save Agent Info",
      "type": "n8n-nodes-base.code",
      "position": [
        -220,
        -320
      ],
      "parameters": {
        "jsCode": "const workflowStaticData = $getWorkflowStaticData('global');\n\n\n\nconst agentId = $input.first().json.id;\nconst interviewLink = $input.first().json.call_link;\nconst jobDescription = $('Prepare Interview Agent').first().json.jobDescription;\n\nworkflowStaticData.agentId = agentId;\nworkflowStaticData.jobDescription = jobDescription;\nworkflowStaticData.interviewLink = interviewLink;\n\n\n\nreturn [{\n  json: {\n    \"Agent ID\": workflowStaticData.agentId,\n    \"Agent Name\":$('Prepare Interview Agent').first().json.agentName,\n    \"Interview Link\": interviewLink,\n    \"Job Description\": workflowStaticData.jobDescription,\n    \"System Prompt\": $('Prepare Interview Agent').first().json.systemPrompt,\n    \"Welcome Message\": $('Prepare Interview Agent').first().json.welcomeMessage\n    \n  }\n}];"
      },
      "typeVersion": 2
    },
    {
      "id": "25c02197-28b9-415f-8e83-1b0700fe1ae7",
      "name": "Success!",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -340,
        -680
      ],
      "parameters": {
        "color": 2,
        "width": 330,
        "height": 520,
        "content": "## \u2705 \uc124\uc815 \uc644\ub8cc!\n\n**\uadc0\ud558\uc758 \uc778\ud130\ubdf0 \ub9c1\ud06c:**  \n`https://bey.chat/[agent-id]`\n\n**\uc774 \ub2e8\uacc4\ub294 \uc774\uc81c \uc6b0\ub9ac \uc5d0\uc774\uc804\ud2b8 ID\uc640 \uc791\uc5c5 \uc124\uba85\uc744 \uc124\uc815\ud558\uba70, \uc774\ub294 \uc774\uc81c \uc790\ub3d9\uc73c\ub85c \uc804\ub2ec\ub418\uc5b4 \uc6f9\ud6c5\uc5d0 \uc758\ud574 \uc0ac\uc6a9\ub429\ub2c8\ub2e4.**"
      },
      "typeVersion": 1
    },
    {
      "id": "ac2610af-10e0-42ef-83f8-5aa3ee48dbdf",
      "name": "Automated Analysis",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1240,
        -140
      ],
      "parameters": {
        "color": 6,
        "width": 390,
        "height": 540,
        "content": "## \ud83e\udd16 3\ub2e8\uacc4: \uc790\ub3d9\ud654\ub41c \uc778\ud130\ubdf0 \ubd84\uc11d\n\n**\uc774 \uc139\uc158\uc740 \uc790\ub3d9\uc73c\ub85c \uc2e4\ud589\ub418\uc5b4:**\n- \uc644\ub8cc\ub41c \uc778\ud130\ubdf0\ub97c \uc218\uc2e0\n- \ud6c4\ubcf4\uc790 \uc751\ub2f5 \ubd84\uc11d\n- \uacb0\uacfc\ub97c Google Sheets\uc5d0 \uc800\uc7a5\n\n**\ud65c\uc131\ud654 \uc804\uc5d0:**  \nBeyondPresence \ub300\uc2dc\ubcf4\ub4dc\uc758 \uc124\uc815 \u2192 \uc6f9\ud6c4\ud06c\uc5d0\uc11c \uc6f9\ud6c4\ud06c URL\uc744 \uad6c\uc131\ud588\ub294\uc9c0 \ud655\uc778\ud558\uc138\uc694"
      },
      "typeVersion": 1
    },
    {
      "id": "99af0fae-f69a-4172-8864-2e4a94347ecf",
      "name": "Receive Interview Data",
      "type": "n8n-nodes-base.webhook",
      "position": [
        -1200,
        300
      ],
      "parameters": {
        "path": "beyondpresence-hr-interviews",
        "options": {},
        "httpMethod": "POST",
        "responseMode": "responseNode"
      },
      "typeVersion": 2
    },
    {
      "id": "94289ea4-518a-4b37-9ece-6d1bf1d4a4a8",
      "name": "Confirm Receipt",
      "type": "n8n-nodes-base.respondToWebhook",
      "position": [
        -1000,
        300
      ],
      "parameters": {
        "options": {},
        "respondWith": "json",
        "responseBody": "{\n  \"status\": \"success\",\n  \"message\": \"Interview received and being analyzed\"\n}"
      },
      "typeVersion": 1.2
    },
    {
      "id": "c0b156a3-99a4-437d-b116-e8fe94ac5ead",
      "name": "Is Our Interview?",
      "type": "n8n-nodes-base.if",
      "position": [
        -520,
        280
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 1,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "931e1a97-c22c-48be-9728-73989cf00f41",
              "operator": {
                "type": "boolean",
                "operation": "true"
              },
              "leftValue": "={{ $json.process }}",
              "rightValue": true
            }
          ]
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "09cf419c-3a1a-4c08-b27f-08c35fbd1b1a",
      "name": "Analyze Interview",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "position": [
        -220,
        300
      ],
      "parameters": {
        "modelId": {
          "__rl": true,
          "mode": "id",
          "value": "gpt-4o-mini"
        },
        "options": {
          "temperature": 0.3
        },
        "messages": {
          "values": [
            {
              "role": "system",
              "content": "=Analyze this job interview and provide a hiring assessment.\n\nJob Description:\n{{ $getWorkflowStaticData('global').jobDescription }}\n\n\nCandidate: {{ $json.webhookData.call_data.userName }}\nInterview Date:  {{ $now }}\nDuration: {{ $json.webhookData.evaluation.duration_minutes }} minutes\n\nCandidate Transcript:\n{{ $json.webhookData.messages.map(m => `[${m.sent_at}] ${m.sender.toUpperCase()}: ${m.message}`).join('\\n') }}\n\nProvide a comprehensive assessment including:\n1. Overall fit score (0-100)\n2. Key strengths\n3. Any concerns or gaps\n4. Hiring recommendation\n5. Suggested next steps\n\nFormat your response as JSON:\n```json\n{\n  \"fitScore\": 85,\n  \"recommendation\": \"recommend\",\n  \"strengths\": [\"strength 1\", \"strength 2\", \"strength 3\"],\n  \"concerns\": [\"concern 1\", \"concern 2\"],\n  \"summary\": \"Brief 2-3 sentence overall assessment\",\n  \"nextSteps\": [\"suggested action 1\", \"suggested action 2\"]\n}\n```"
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "id": "0dea6278-69e2-485f-a213-90d6a8aeb26f",
      "name": "Format for Sheets",
      "type": "n8n-nodes-base.code",
      "position": [
        280,
        300
      ],
      "parameters": {
        "jsCode": "// Parse AI analysis\nconst analysisText = $input.first().json.message.content;\nconst analysis = JSON.parse(analysisText.match(/```json\\n([\\s\\S]*?)\\n```/)[1]);\nconst interviewData = $input.first().json;\n\n// Format for Google Sheets\nreturn [{\n  json: {\n    \"Candidate Name\": $('Is Our Interview?').first().json.webhookData.call_data.userName,\n    \"Interview Date\":  $now,\n    \"Duration (minutes)\": $('Is Our Interview?').first().json.webhookData.evaluation.duration_minutes,\n    \"Fit Score\": analysis.fitScore,\n    \"Recommendation\": analysis.recommendation,\n    \"Strengths\": analysis.strengths.join(\"; \"),\n    \"Concerns\": analysis.concerns.join(\"; \") || \"None\",\n    \"Summary\": analysis.summary,\n    \"Next Steps\": analysis.nextSteps.join(\"; \"),\n    \"Call ID\": $('Is Our Interview?').first().json.webhookData.call_id,\n    \"Analyzed On\": $now,\n  }\n}];"
      },
      "typeVersion": 2
    },
    {
      "id": "74a0fe09-9c5e-4181-a38b-e15404d256e3",
      "name": "Save to Google Sheets",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        640,
        280
      ],
      "parameters": {
        "columns": {
          "value": {
            "Fit Score": "={{ $json['Fit Score'] }}",
            "Candidate Name": "={{ $json['Candidate Name'] }}",
            "Interview Date": "={{ $json['Interview Date'] }}",
            "Duration (minutes)": "={{ $json['Duration (minutes)'] }}"
          },
          "schema": [
            {
              "id": "Candidate Name",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Candidate Name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Interview Date",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Interview Date",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Duration (minutes)",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Duration (minutes)",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Fit Score",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Fit Score",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Recommendation",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Recommendation",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Strengths",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Strengths",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Concerns",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Concerns",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Summary",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Summary",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Next Steps",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Next Steps",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Call ID",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Call ID",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Analyzed On",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Analyzed On",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "autoMapInputData",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "append",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1dXLpP5bRRirBsln4YIQtFgb1MiP-0yR8IDRzse5k7X0/edit#gid=0",
          "cachedResultName": "Interview Results"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1dXLpP5bRRirBsln4YIQtFgb1MiP-0yR8IDRzse5k7X0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1dXLpP5bRRirBsln4YIQtFgb1MiP-0yR8IDRzse5k7X0/edit?usp=drivesdk",
          "cachedResultName": "BeyondPresence HR Interview System Template"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "eebced68-6690-4a91-a165-0ec99aadd268",
      "name": "Sheet Headers",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        480,
        -140
      ],
      "parameters": {
        "color": 3,
        "width": 480,
        "height": 540,
        "content": "## \ud83d\udcca Google \uc2a4\ud504\ub808\ub4dc\uc2dc\ud2b8 \uc5f0\uacb0\n\n**\ube60\ub978 \uc2dc\uc791**:\n1. \ub3d9\uc77c\ud55c \ubb38\uc11c\ub97c \uc0ac\uc6a9\ud558\uc138\uc694. \ud558\uc9c0\ub9cc \uc774\ubc88\uc5d0\ub294 **'Interview Results'** \uc2dc\ud2b8\ub97c \uc120\ud0dd\ud558\uc138\uc694. \ud15c\ud50c\ub9bf\uc5d0 \ubaa8\ub4e0 \ud544\uc218 \uc5f4\uc774 \ud3ec\ud568\ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4!\n\n**\uc5ec\uae30\uc5d0\uc11c Google \uc2a4\ud504\ub808\ub4dc\uc2dc\ud2b8\ub97c \uc5f0\uacb0\ud558\uc138\uc694 \u2192**"
      },
      "typeVersion": 1
    },
    {
      "id": "375ff0d6-e540-46cb-a20a-baf42969cc08",
      "name": "Important!",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -820,
        -80
      ],
      "parameters": {
        "width": 500,
        "height": 100,
        "content": "\u26a0\ufe0f **\ud65c\uc131\ud654 \uc804\uc5d0 \ud544\uc218\ub85c \ud574\uc57c \ud560 \uc77c:**\n\n1. \uba3c\uc800 Step 2\ub97c \uc2e4\ud589\ud558\uc138\uc694. \uadf8\uac83\uc774 \uc790\ub3d9\uc73c\ub85c \ud544\uc694\ud55c \uac12\uc744 \uc124\uc815\ud560 \uac83\uc785\ub2c8\ub2e4."
      },
      "typeVersion": 1
    },
    {
      "id": "f3b219c1-6888-4e2d-9ea6-a65b72200770",
      "name": "Processing Steps",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -280,
        -140
      ],
      "parameters": {
        "color": 4,
        "width": 700,
        "height": 540,
        "content": "## \ud83d\udd0d \uc778\ud130\ubdf0 \ucc98\ub9ac \ubc0f AI \ud3c9\uac00\n\n1. \uc778\ud130\ubdf0 \ub370\uc774\ud130 \ucd94\ucd9c: \uc644\ub8cc\ub41c \uc778\ud130\ubdf0\uc5d0\uc11c \ud6c4\ubcf4\uc790\uc758 \uc751\ub2f5\uacfc \uba54\ud0c0\ub370\uc774\ud130\ub97c \ucea1\ucc98\ud569\ub2c8\ub2e4  \n2. AI \uc778\ud130\ubdf0 \ubd84\uc11d: OpenAI\ub97c \uc0ac\uc6a9\ud558\uc5ec \ud6c4\ubcf4\uc790\uc758 \uc9c1\ubb34 \uc694\uad6c\uc0ac\ud56d\uc5d0 \ub300\ud55c \uc801\ud569\uc131\uc744 \ud3c9\uac00\ud569\ub2c8\ub2e4  \n3. \ud3c9\uac00 \uacb0\uacfc \ud615\uc2dd\ud654: AI \uc778\uc0ac\uc774\ud2b8\ub97c \uc27d\uac8c \uac80\ud1a0\ud558\uace0 \uc758\uc0ac\uacb0\uc815\uc744 \ud560 \uc218 \uc788\ub3c4\ub85d \uad6c\uc870\ud654\ud569\ub2c8\ub2e4  \n\nAI\uac00 \ubd84\uc11d\ud558\ub294 \ub0b4\uc6a9:  \n- \uc804\ubc18\uc801\uc778 \uc801\ud569\uc131 \uc810\uc218 (0-100)  \n- \uc8fc\uc694 \uac15\uc810  \n- \uc7a0\uc7ac\uc801 \uc6b0\ub824\uc0ac\ud56d \ub610\ub294 \uae30\uc220 \uaca9\ucc28  \n- \ucc44\uc6a9 \ucd94\ucc9c \uc218\uc900  \n- \uc81c\uc548\ub41c \ub2e4\uc74c \ub2e8\uacc4  \n- \ud6c4\ubcf4\uc790 \uc801\ud569\uc131 \uc694\uc57d  \n\n\uc774 \ud3ec\uad04\uc801\uc778 \ubd84\uc11d\uc740 HR \ud300\uc774 \uac01 \ud6c4\ubcf4\uc790\uc758 \uc778\ud130\ubdf0 \uc131\uacfc\uc5d0 \ub300\ud55c \uc77c\uad00\uc801\uc774\uace0 \uac1d\uad00\uc801\uc778 \ud3c9\uac00\ub97c \uc81c\uacf5\ud558\uc5ec \ub370\uc774\ud130 \uae30\ubc18\uc758 \ucc44\uc6a9 \uacb0\uc815\uc744 \ub0b4\ub9ac\ub294 \ub370 \ub3c4\uc6c0\uc774 \ub429\ub2c8\ub2e4."
      },
      "typeVersion": 1
    },
    {
      "id": "6929cd46-bfcb-435b-8e9b-7a2c1c20ccde",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -820,
        120
      ],
      "parameters": {
        "color": 3,
        "width": 500,
        "height": 320,
        "content": "## \ub370\uc774\ud130 \ud655\uc778\n\n- \uc6b0\ub9ac \uc5d0\uc774\uc804\ud2b8\uc640 \uad00\ub828\ub41c \uc6f9\ud6c5\ub9cc \uc804\ub2ec\ud558\uc138\uc694\n- \uc644\ub8cc\ub41c \ud638\ucd9c\ub9cc \uc804\ub2ec\ud558\uace0 \uc2e4\uc2dc\uac04 \uba54\uc2dc\uc9c0\ub294 \ubc84\ub9ac\uc138\uc694."
      },
      "typeVersion": 1
    },
    {
      "id": "5a62069a-d4a7-427d-ba2e-84ea9ab81954",
      "name": "Data checks",
      "type": "n8n-nodes-base.code",
      "position": [
        -740,
        280
      ],
      "parameters": {
        "jsCode": "const workflowStaticData = $getWorkflowStaticData('global');\nconst MY_AGENT_ID = workflowStaticData.agentId;\n\nconst jobDescription = workflowStaticData.jobDescription;\n\nconst webhookData = $input.first().json.body;\nconst receivedAgentId = webhookData.agent_id || webhookData.agentId || \n                        (webhookData.call_data && webhookData.call_data.agent_id);\n\n// Only process if it's our agent and the call ended\nif (receivedAgentId === MY_AGENT_ID && webhookData.event_type === \"call_ended\") {\n  return [{\n    json: {\n      process: true,\n      jobDescription,\n      webhookData\n    }\n  }];\n} else {\n  return [{\n    json: {\n      process: false,\n      reason: receivedAgentId !== MY_AGENT_ID ? \n        \"Interview from different agent\" : \n        \"Call not finished yet\"\n    }\n  }];\n}"
      },
      "typeVersion": 2
    },
    {
      "id": "003bd0dc-e828-475a-aa7b-130c11cd2991",
      "name": "Sheet Headers1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        80,
        -680
      ],
      "parameters": {
        "color": 3,
        "width": 380,
        "height": 520,
        "content": "## \ud83d\udcca \uad6c\uae00 \uc2dc\ud2b8 \uc124\uc815\n\n**\ube60\ub978 \uc2dc\uc791**:\n1. \uc6b0\ub9ac \ud15c\ud50c\ub9bf \uc2dc\ud2b8\ub97c \ubcf5\uc0ac\ud558\uc138\uc694:  https://docs.google.com/spreadsheets/d/1dXLpP5bRRirBsln4YIQtFgb1MiP-0yR8IDRzse5k7X0/copy\n2. \ub178\ub4dc\uc5d0\uc11c \uadc0\ud558\uc758 \uacc4\uc815 \uc790\uaca9 \uc99d\uba85\uc744 \uc5f0\uacb0\ud558\uc138\uc694.\n3. \uc0c8 \ubb38\uc11c\ub85c Google Sheets \ub178\ub4dc\ub97c \uc5c5\ub370\uc774\ud2b8\ud558\uace0 **'Interview Agents'** \uc2dc\ud2b8\ub97c \uc120\ud0dd\ud558\uc138\uc694 (\uc790\ub3d9\uc73c\ub85c \uc124\uc815\ub418\uc9c0 \uc54a\uc740 \uacbd\uc6b0)\n3. \uc774 \uc2dc\ud2b8\uc5d0\uc11c \uc778\ud130\ubdf0 \ub9c1\ud06c\ub97c \uc5bb\uc744 \uc218 \uc788\uc73c\uba70, \ud6c4\ubcf4\uc790\uc640 \uacf5\uc720\ud558\uc5ec \uc778\ud130\ubdf0\ub97c \uc2dc\uc791\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4\n\n**\uc5ec\uae30\uc5d0\uc11c \uadc0\ud558\uc758 Google Sheets\ub97c \uc5f0\uacb0\ud558\uc138\uc694 \u2192**"
      },
      "typeVersion": 1
    },
    {
      "id": "60847f4e-5e0d-41a6-bee1-96e6bb733fce",
      "name": "Save to Google Sheets1",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        180,
        -320
      ],
      "parameters": {
        "columns": {
          "value": {},
          "schema": [
            {
              "id": "Agent ID",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Agent ID",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Agent Name",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Agent Name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Interview Link",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Interview Link",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Job Description",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Job Description",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "System Prompt",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "System Prompt",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Welcome Message",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Welcome Message",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "autoMapInputData",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "append",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": 1902016160,
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1dXLpP5bRRirBsln4YIQtFgb1MiP-0yR8IDRzse5k7X0/edit#gid=1902016160",
          "cachedResultName": "Interview Agents"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1dXLpP5bRRirBsln4YIQtFgb1MiP-0yR8IDRzse5k7X0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1dXLpP5bRRirBsln4YIQtFgb1MiP-0yR8IDRzse5k7X0/edit?usp=drivesdk",
          "cachedResultName": "BeyondPresence HR Interview System Template"
        }
      },
      "typeVersion": 4.6
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "7bc4a98e-afe5-4924-849e-a75f74bfdc69",
  "connections": {
    "Data checks": {
      "main": [
        [
          {
            "node": "Is Our Interview?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Confirm Receipt": {
      "main": [
        [
          {
            "node": "Data checks",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Save Agent Info": {
      "main": [
        [
          {
            "node": "Save to Google Sheets1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Analyze Interview": {
      "main": [
        [
          {
            "node": "Format for Sheets",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Format for Sheets": {
      "main": [
        [
          {
            "node": "Save to Google Sheets",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Is Our Interview?": {
      "main": [
        [
          {
            "node": "Analyze Interview",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create Interview Agent": {
      "main": [
        [
          {
            "node": "Save Agent Info",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Receive Interview Data": {
      "main": [
        [
          {
            "node": "Confirm Receipt",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Prepare Interview Agent": {
      "main": [
        [
          {
            "node": "Create Interview Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "\ud83d\udcdd Your Job Description": {
      "main": [
        [
          {
            "node": "Prepare Interview Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "\u25b6\ufe0f Click to Start Setup": {
      "main": [
        [
          {
            "node": "\ud83d\udcdd Your Job Description",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}