{
  "name": "Bulk resume screening & JD matching with GPT-4 for HR teams",
  "nodes": [
    {
      "id": "f007fbd5-f154-4497-ad34-6f90c3e78631",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1136,
        1936
      ],
      "parameters": {
        "width": 748,
        "height": 80,
        "content": "## 1. HR/TA upload multiple resumes & select the position (job role)"
      }
    },
    {
      "id": "23581b43-6d12-4868-818c-f267ae9535c1",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        976,
        1920
      ],
      "parameters": {
        "width": 632,
        "height": 768,
        "content": "## 3. HR AI Agent evaluate candidate matching based on profile & job description\n- Evaluate candidate profile against the selected position job description (download from google drive)\n- Output follow"
      }
    },
    {
      "id": "31815a99-970e-45dd-9eac-19b04fe6afbe",
      "name": "Application form",
      "type": "n8n-nodes-base.formTrigger",
      "position": [
        -528,
        2176
      ]
    },
    {
      "id": "ff46db6c-5f77-4c45-b0a2-d8997760f363",
      "name": "Extract profile",
      "type": "n8n-nodes-base.extractFromFile",
      "position": [
        -192,
        2064
      ]
    },
    {
      "id": "4e80f14b-b866-4966-ad8b-b92276dfc676",
      "name": "json parser",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        80,
        2208
      ]
    },
    {
      "id": "8a0d545c-b28d-4a0b-ba77-d3533597d155",
      "name": "gpt4-1 model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        -48,
        2208
      ]
    },
    {
      "id": "291e6b3e-0a21-459c-9340-291effc1d941",
      "name": "Get position JD",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -304,
        2592
      ]
    },
    {
      "id": "02ccf47d-e039-477c-9028-7ccf08f7b58f",
      "name": "Download file",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        -112,
        2592
      ]
    },
    {
      "id": "bffa78db-6f40-488f-a4ef-fce685acc8cc",
      "name": "Extract Job Description",
      "type": "n8n-nodes-base.extractFromFile",
      "position": [
        112,
        2592
      ]
    },
    {
      "id": "ec4ff009-360f-4ff6-943b-3cf87a6b87e5",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -352,
        1648
      ],
      "parameters": {
        "width": 588,
        "height": 676,
        "content": "## 2.1. Candidate profiles analyzer\n- Upload all candidate profile to Google Drive folder for later processing\n- Extract each candidate information from PDF file\n- Transform each candidate information"
      }
    },
    {
      "id": "8aac80ce-2afd-4b28-a5c1-67319dc7c3b8",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -352,
        2400
      ],
      "parameters": {
        "width": 636,
        "height": 372,
        "content": "## 2.2. Download selected job description\n- Get position name & job description URL from google sheet based on candidate application form\n- Download job description file from Google Drive\n- Extract da"
      }
    },
    {
      "id": "15ce288c-a8e6-4016-a26c-059de23ba6d6",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1744,
        1920
      ],
      "parameters": {
        "width": 1032,
        "height": 768,
        "content": "## 4. Update evaluation result to target platform\n- Candidate with overall fit score under 8 will be considered as unqualified, config in the \"Candidate qualified\" node\n- Send message to Slack, Email\n"
      }
    },
    {
      "id": "1e3e7898-f264-4446-b2a0-c0d6445a6637",
      "name": "HR Expert Agent",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "position": [
        1264,
        2272
      ]
    },
    {
      "id": "8e4f9f63-86ac-43f3-a535-4c49b4ea3863",
      "name": "Profile Analyzer Agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        -48,
        2064
      ]
    },
    {
      "id": "e637352c-bc2c-4c50-a217-f7072c4515a6",
      "name": "Update evaluation sheet",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        2224,
        2528
      ]
    },
    {
      "id": "1cfcfbec-2206-4d24-985c-5a7307f045a8",
      "name": "Map Columns",
      "type": "n8n-nodes-base.code",
      "position": [
        1808,
        2272
      ]
    },
    {
      "id": "8b7ae83f-27ac-4ecc-8180-fd46ce375cc2",
      "name": "Upload to Google Drive",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        -80,
        1808
      ]
    },
    {
      "id": "bc0cc422-0789-466f-a485-9615bea31687",
      "name": "gpt-4-1 model 2",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        1248,
        2496
      ]
    },
    {
      "id": "a9f1c1b2-b75b-49c8-84e2-e3b328824c1a",
      "name": "json parser 2",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        1456,
        2496
      ]
    },
    {
      "id": "9f431dbc-4b1a-45cc-b8f8-d68d7ad74536",
      "name": "Sticky Note7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2096,
        1856
      ],
      "parameters": {
        "width": 912,
        "height": 1760,
        "content": "## TalentFlow AI – Bulk Resume Screening with JD Matching\n\n- Automatically extract, evaluate, and shortlist multiple resumes against a selected job description using GPT-4. This smart, scalable n8n wo"
      }
    },
    {
      "id": "6bd0f5cc-8830-49a6-9003-4e74c84a56b2",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -352,
        2800
      ],
      "parameters": {
        "width": 640,
        "height": 128,
        "content": "![Alt text](https://wisestackai.s3.ap-southeast-1.amazonaws.com/Screenshot+2025-07-29+at+12.54.54%E2%80%AFPM.png \"Optional title text\")"
      }
    },
    {
      "id": "ea2175ea-cc01-48d7-8e2f-604ec2673e94",
      "name": "Sticky Note8",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1792,
        2736
      ],
      "parameters": {
        "width": 960,
        "height": 512,
        "content": "![Alt text](https://wisestackai.s3.ap-southeast-1.amazonaws.com/SmartHR+form+3.jpg \"Sample evaluation sheet data\")"
      }
    },
    {
      "id": "cd0c42ec-c281-4132-a6c0-009cd92f7779",
      "name": "Send email to candidate about the result",
      "type": "n8n-nodes-base.sendGrid",
      "position": [
        2560,
        2320
      ]
    },
    {
      "id": "46086f32-5a6c-4f3e-9539-34ac476283b7",
      "name": "Send message via Slack to the hiring team",
      "type": "n8n-nodes-base.slack",
      "position": [
        2560,
        2080
      ]
    },
    {
      "id": "df5ab265-1b74-4f89-9d01-db9b4d5e26f2",
      "name": "Candidate qualified?",
      "type": "n8n-nodes-base.if",
      "position": [
        2224,
        2192
      ]
    },
    {
      "id": "99d34017-e9b7-4802-8f69-9b77a90ec9f2",
      "name": "Code",
      "type": "n8n-nodes-base.code",
      "position": [
        -336,
        1936
      ]
    },
    {
      "id": "9067e3d6-34a4-4c04-a785-a929aa32b912",
      "name": "Merge",
      "type": "n8n-nodes-base.merge",
      "position": [
        768,
        2272
      ]
    },
    {
      "id": "787c7622-3f48-4b73-83c1-5eee7f8c3c4a",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1136,
        2048
      ],
      "parameters": {
        "width": 556,
        "height": 580,
        "content": "![Alt text](https://wisestackai.s3.ap-southeast-1.amazonaws.com/Screenshot+2025-07-30+at+2.45.53%E2%80%AFPM.png \"Optional title text\")"
      }
    },
    {
      "id": "3b30fd6b-489a-4050-8ff0-74d3e257b477",
      "name": "Code1",
      "type": "n8n-nodes-base.code",
      "position": [
        1008,
        2272
      ]
    },
    {
      "id": "e6ce2613-5dbc-4005-a939-982af7e75d3f",
      "name": "Remove bad data CV",
      "type": "n8n-nodes-base.filter",
      "position": [
        416,
        2128
      ]
    }
  ],
  "connections": {
    "Code": {
      "main": [
        [
          {
            "node": "Upload to Google Drive",
            "type": "main",
            "index": 0
          },
          {
            "node": "Extract profile",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Code1": {
      "main": [
        [
          {
            "node": "HR Expert Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Merge": {
      "main": [
        [
          {
            "node": "Code1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Map Columns": {
      "main": [
        [
          {
            "node": "Update evaluation sheet",
            "type": "main",
            "index": 0
          },
          {
            "node": "Candidate qualified?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "json parser": {
      "ai_outputParser": [
        [
          {
            "node": "Profile Analyzer Agent",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "gpt4-1 model": {
      "ai_languageModel": [
        [
          {
            "node": "Profile Analyzer Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Download file": {
      "main": [
        [
          {
            "node": "Extract Job Description",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "json parser 2": {
      "ai_outputParser": [
        [
          {
            "node": "HR Expert Agent",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Extract profile": {
      "main": [
        [
          {
            "node": "Profile Analyzer Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get position JD": {
      "main": [
        [
          {
            "node": "Download file",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "HR Expert Agent": {
      "main": [
        [
          {
            "node": "Map Columns",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "gpt-4-1 model 2": {
      "ai_languageModel": [
        [
          {
            "node": "HR Expert Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Application form": {
      "main": [
        [
          {
            "node": "Code",
            "type": "main",
            "index": 0
          },
          {
            "node": "Get position JD",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Remove bad data CV": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Candidate qualified?": {
      "main": [
        [
          {
            "node": "Send message via Slack to the hiring team",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Send email to candidate about the result",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Profile Analyzer Agent": {
      "main": [
        [
          {
            "node": "Remove bad data CV",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Upload to Google Drive": {
      "main": [
        []
      ]
    },
    "Extract Job Description": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Update evaluation sheet": {
      "main": [
        []
      ]
    },
    "Send email to candidate about the result": {
      "main": [
        []
      ]
    }
  }
}