{
  "name": "Automate resume screening & candidate routing with Gemini AI and Google Sheets",
  "nodes": [
    {
      "id": "751d1f9a-b16e-40ac-83f0-88c7fa47792e",
      "name": "On form submission",
      "type": "n8n-nodes-base.formTrigger",
      "position": [
        -1456,
        208
      ]
    },
    {
      "id": "39a56ac4-aacb-4068-80a8-2dfa7106d17b",
      "name": "Extract from File",
      "type": "n8n-nodes-base.extractFromFile",
      "position": [
        -576,
        -48
      ]
    },
    {
      "id": "f5178513-1675-4ad2-b9c7-061922723012",
      "name": "Upload file",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        -192,
        -384
      ]
    },
    {
      "id": "a69042af-61af-4a6c-9fb6-c6369dd61068",
      "name": "Google Gemini Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
      "position": [
        288,
        1136
      ]
    },
    {
      "id": "9689ee83-b677-4a44-a332-264ff46c2ff6",
      "name": "Extract from File1",
      "type": "n8n-nodes-base.extractFromFile",
      "position": [
        -592,
        320
      ]
    },
    {
      "id": "6c2d5ecf-1c2c-46fa-92ba-c6207ea64ce1",
      "name": "Extract from File2",
      "type": "n8n-nodes-base.extractFromFile",
      "position": [
        -560,
        640
      ]
    },
    {
      "id": "8c8ca4a8-d076-45dd-be0f-ceb8f54a8073",
      "name": "Structured Output Parser",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        16,
        32
      ]
    },
    {
      "id": "d6de42bf-9c1f-48d2-88c6-540591fb0671",
      "name": "Append row in sheet",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        448,
        112
      ]
    },
    {
      "id": "23fee698-23e3-4030-9050-58cd8c0e2f74",
      "name": "Simple Memory",
      "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
      "position": [
        -240,
        32
      ]
    },
    {
      "id": "3b28a33e-e15b-42b5-acc5-d49894dca168",
      "name": "Merge",
      "type": "n8n-nodes-base.merge",
      "position": [
        224,
        112
      ]
    },
    {
      "id": "719c2bb1-5350-4675-ad65-56f0da200f4b",
      "name": "Structured Output Parser1",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        -48,
        432
      ]
    },
    {
      "id": "86e5a732-c802-4dbc-9e34-80f3a5fa5fb6",
      "name": "Structured Output Parser2",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        -128,
        864
      ]
    },
    {
      "id": "ceb7f29a-0504-44b7-8bc8-89d1e0562ec0",
      "name": "ICT Analysis",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        -256,
        -192
      ]
    },
    {
      "id": "8d8aa4fd-9f6d-4037-8bbc-0461b8cdc72e",
      "name": "Customer Care Agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        -256,
        208
      ]
    },
    {
      "id": "821d0a63-6946-4094-a906-08f117c10763",
      "name": "Accountant",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        -320,
        672
      ]
    },
    {
      "id": "21ecb5cc-7552-40d0-81fc-9b79d9315a16",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        208,
        -64
      ],
      "parameters": {
        "width": null,
        "height": null,
        "content": "Option 1 (Technical):\n\"Merges resume upload & AI analysis into 1 record. Use 'Merge By Position' in n8n to combine Google Drive URL + agent scores before updating Google Sheets CRM.\"\nOption 2 (Simple)"
      }
    },
    {
      "id": "fa72d55c-57c3-4298-bfbd-872e4be632a5",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1104,
        -240
      ],
      "parameters": {
        "width": 320,
        "height": 256,
        "content": "This is a workflow that automate Recruitment process. Unlike traditional ATS where candidates are matched by keywords, this agent analyses the candindates resume indepth, relevant, certifications, and"
      }
    },
    {
      "id": "479e0929-5d56-42a1-b699-3e4f81f6666c",
      "name": "No Operation, do nothing",
      "type": "n8n-nodes-base.noOp",
      "position": [
        -848,
        -864
      ]
    },
    {
      "id": "4ac39c0c-5f6e-41f2-9212-5df59476625d",
      "name": "Send email",
      "type": "n8n-nodes-base.emailSend",
      "position": [
        -592,
        -816
      ]
    },
    {
      "id": "60924b5b-c6b1-4e21-b592-3a8051af415d",
      "name": "Google Sheets Trigger",
      "type": "n8n-nodes-base.googleSheetsTrigger",
      "position": [
        -1456,
        -704
      ]
    },
    {
      "id": "5c5ff85c-204b-4329-bfdc-80852d9c8e4d",
      "name": "Rejection mail",
      "type": "n8n-nodes-base.emailSend",
      "position": [
        -592,
        -576
      ]
    },
    {
      "id": "50211e21-7f65-4047-9236-2ddebcaa155f",
      "name": "Update row in sheet",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -336,
        -832
      ]
    },
    {
      "id": "c13787e3-a000-4621-90c8-5baf5d41579f",
      "name": "Update row in sheet1",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -352,
        -560
      ]
    },
    {
      "id": "a22c87c9-c5b8-4b36-b228-3539ad2d1b31",
      "name": "Structured Output Parser3",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        -176,
        1344
      ]
    },
    {
      "id": "219c6d67-c114-4d2b-bf31-63316f695f86",
      "name": "Simple Memory1",
      "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
      "position": [
        -432,
        1344
      ]
    },
    {
      "id": "98bfe483-e1a9-4d6e-8a99-76e9724d658d",
      "name": "HR Analysis",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        -448,
        1120
      ]
    },
    {
      "id": "b61f5f0a-92e2-4f26-9b1c-0af1d1eb38f0",
      "name": "Extract from File3",
      "type": "n8n-nodes-base.extractFromFile",
      "position": [
        -656,
        880
      ]
    },
    {
      "id": "55beb023-baa9-44bf-b663-e6ca311fd6e5",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1808,
        -736
      ],
      "parameters": {
        "width": 336,
        "height": 304,
        "content": "## Update CRM\nOnce applications have been received this automation updates the CRM and sends the email to candidates. Those who have a score of above 7 get an invite for interview, while those who sco"
      }
    },
    {
      "id": "36841d58-fb29-467e-afca-72fe009344d4",
      "name": "If the application is sent",
      "type": "n8n-nodes-base.if",
      "position": [
        -1136,
        -704
      ]
    },
    {
      "id": "1d80bb4c-e23e-42c6-8284-2cb284ded1ab",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1200,
        -576
      ],
      "parameters": {
        "width": 192,
        "height": 144,
        "content": "this node prevents sending repeated emails. emails that had already been sent are filtered out"
      }
    },
    {
      "id": "f0bf576e-4400-49cd-a0e9-9a47bfe5c244",
      "name": "Filters based on the score",
      "type": "n8n-nodes-base.if",
      "position": [
        -880,
        -656
      ]
    },
    {
      "id": "c51bdbdf-648f-4814-b625-908c073cb7b3",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -896,
        -512
      ],
      "parameters": {
        "width": null,
        "height": null,
        "content": "Candidates with higher score get invitation letter while those with low score gets rejection letter"
      }
    },
    {
      "id": "90f51112-8f76-46ef-91a9-5c2b02d1c9af",
      "name": "Switch based on position",
      "type": "n8n-nodes-base.switch",
      "position": [
        -832,
        320
      ]
    },
    {
      "id": "e1421839-213e-4b9b-9ed4-44eaefaa9296",
      "name": "Searches the internet",
      "type": "n8n-nodes-base.httpRequestTool",
      "position": [
        304,
        816
      ]
    },
    {
      "id": "e9a81ab8-d092-48d6-b83a-482d2ef3b560",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -112,
        -448
      ],
      "parameters": {
        "width": 352,
        "height": 352,
        "content": "Candidates resume gets uploaded to google drive for later review"
      }
    },
    {
      "id": "3faada68-8e63-4078-a371-aabf91aa4e85",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2192,
        -16
      ],
      "parameters": {
        "width": 448,
        "height": 848,
        "content": "## 📋 Workflow Summary\nPurpose: Automated AI-powered resume screening system that replaces keyword-based ATS with intelligent analysis.\nProcess Flow:\n\nCandidate submits application form → Resume saved "
      }
    }
  ],
  "connections": {
    "Merge": {
      "main": [
        [
          {
            "node": "Append row in sheet",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Accountant": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Send email": {
      "main": [
        [
          {
            "node": "Update row in sheet",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "HR Analysis": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Upload file": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "ICT Analysis": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Simple Memory": {
      "ai_memory": [
        [
          {
            "node": "ICT Analysis",
            "type": "ai_memory",
            "index": 0
          }
        ]
      ]
    },
    "Rejection mail": {
      "main": [
        [
          {
            "node": "Update row in sheet1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Simple Memory1": {
      "ai_memory": [
        [
          {
            "node": "HR Analysis",
            "type": "ai_memory",
            "index": 0
          }
        ]
      ]
    },
    "Extract from File": {
      "main": [
        [
          {
            "node": "ICT Analysis",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extract from File1": {
      "main": [
        [
          {
            "node": "Customer Care Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extract from File2": {
      "main": [
        [
          {
            "node": "Accountant",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extract from File3": {
      "main": [
        [
          {
            "node": "HR Analysis",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "On form submission": {
      "main": [
        [
          {
            "node": "Switch based on position",
            "type": "main",
            "index": 0
          },
          {
            "node": "Upload file",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Customer Care Agent": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Google Sheets Trigger": {
      "main": [
        [
          {
            "node": "If the application is sent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Searches the internet": {
      "ai_tool": [
        [
          {
            "node": "ICT Analysis",
            "type": "ai_tool",
            "index": 0
          },
          {
            "node": "Customer Care Agent",
            "type": "ai_tool",
            "index": 0
          },
          {
            "node": "Accountant",
            "type": "ai_tool",
            "index": 0
          },
          {
            "node": "HR Analysis",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Google Gemini Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "ICT Analysis",
            "type": "ai_languageModel",
            "index": 0
          },
          {
            "node": "Customer Care Agent",
            "type": "ai_languageModel",
            "index": 0
          },
          {
            "node": "Accountant",
            "type": "ai_languageModel",
            "index": 0
          },
          {
            "node": "HR Analysis",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Structured Output Parser": {
      "ai_outputParser": [
        [
          {
            "node": "ICT Analysis",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Switch based on position": {
      "main": [
        [
          {
            "node": "Extract from File",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Extract from File1",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Extract from File2",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Extract from File3",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Structured Output Parser1": {
      "ai_outputParser": [
        [
          {
            "node": "Customer Care Agent",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Structured Output Parser2": {
      "ai_outputParser": [
        [
          {
            "node": "Accountant",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Structured Output Parser3": {
      "ai_outputParser": [
        [
          {
            "node": "HR Analysis",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Filters based on the score": {
      "main": [
        [
          {
            "node": "Send email",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Rejection mail",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "If the application is sent": {
      "main": [
        [
          {
            "node": "No Operation, do nothing",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Filters based on the score",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}