AutomationFlowsAI & RAG › AI Resume Screening with Gpt-4o & Error Handling | Google Sheets & Drive Flow

AI Resume Screening with Gpt-4o & Error Handling | Google Sheets & Drive Flow

ByDavid Olusola @dae221 on n8n.io

Enterprise-grade resume screening automation built for production environments. This workflow combines intelligent AI analysis with comprehensive error handling to ensure reliable processing of candidate applications. Every potential failure point is monitored with automatic…

Event trigger★★★★★ complexityAI-powered34 nodesGmail TriggerGoogle DriveHTTP RequestAgentOutput Parser StructuredOpenAI ChatInformation ExtractorGoogle Sheets
AI & RAG Trigger: Event Nodes: 34 Complexity: ★★★★★ AI nodes: yes Added:

This workflow corresponds to n8n.io template #9048 — we link there as the canonical source.

This workflow follows the Agent → Gmail recipe pattern — see all workflows that pair these two integrations.

The workflow JSON

Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →

Download .json
{
  "nodes": [
    {
      "id": "548b4ba3-85c0-4e01-a89d-53c345910b22",
      "name": "Setup Guide",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -4752,
        -160
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "c84f6d81-dec5-458d-b298-617752318f87",
      "name": "Monitor Resumes",
      "type": "n8n-nodes-base.gmailTrigger",
      "position": [
        -3952,
        560
      ],
      "parameters": {},
      "typeVersion": 1.2
    },
    {
      "id": "ddd0aa5e-dd9c-4658-9ccb-eb183bd75062",
      "name": "Email Monitoring",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -4080,
        320
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "e0a4d380-edc6-48c0-b655-f7ffc2d11603",
      "name": "Save to Drive",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        -3728,
        560
      ],
      "parameters": {},
      "typeVersion": 3
    },
    {
      "id": "37bb352f-14f9-4286-9a0b-9b3e3680f733",
      "name": "Upload Success?",
      "type": "n8n-nodes-base.if",
      "position": [
        -3504,
        560
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "6ee6f742-ce91-4bdc-a3ea-769a06cf2512",
      "name": "Route by File Type",
      "type": "n8n-nodes-base.switch",
      "position": [
        -3280,
        352
      ],
      "parameters": {},
      "typeVersion": 3.2
    },
    {
      "id": "899b217d-9258-4fd6-be41-fdd5fe52c5d3",
      "name": "Extract PDF Text",
      "type": "n8n-nodes-base.extractFromFile",
      "position": [
        -2864,
        128
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "3f93e040-46e2-4c71-b0b2-548bcfe04235",
      "name": "Convert DOCX to Docs",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -3056,
        368
      ],
      "parameters": {},
      "typeVersion": 4.2
    },
    {
      "id": "64cf332a-2691-4181-a244-4cc18f9a1b13",
      "name": "Get Doc as Text",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        -2832,
        368
      ],
      "parameters": {},
      "typeVersion": 3
    },
    {
      "id": "6b5e1a57-2c26-4bbe-b104-99ef776f867c",
      "name": "Download TXT",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        -3056,
        576
      ],
      "parameters": {},
      "typeVersion": 3
    },
    {
      "id": "2255b19e-1842-4e23-9fcf-0c69b036226b",
      "name": "Extract TXT Content",
      "type": "n8n-nodes-base.extractFromFile",
      "position": [
        -2832,
        576
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "ee8c0749-6302-420d-9fff-cb57dfef3b9e",
      "name": "Text Extracted?",
      "type": "n8n-nodes-base.if",
      "position": [
        -2544,
        288
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "cd20f833-a887-46c4-9702-94e53780552d",
      "name": "Standardize Resume Data",
      "type": "n8n-nodes-base.set",
      "position": [
        -2320,
        192
      ],
      "parameters": {},
      "typeVersion": 3.4
    },
    {
      "id": "87bae272-a305-4573-b651-8a0428d13fce",
      "name": "Resume Quality Check",
      "type": "n8n-nodes-base.if",
      "position": [
        -2096,
        192
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "0a211848-c56f-4602-a8f5-e0a63e9c0631",
      "name": "Job Description",
      "type": "n8n-nodes-base.set",
      "position": [
        -1872,
        80
      ],
      "parameters": {},
      "typeVersion": 3.4
    },
    {
      "id": "53dbdfb5-0e9e-4e03-81d3-ed01714978ba",
      "name": "AI Recruiter Analysis",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        -1648,
        80
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "416be5d3-78da-4837-b312-5edd184216b5",
      "name": "Structured Output Parser",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        -1504,
        304
      ],
      "parameters": {},
      "typeVersion": 1.3
    },
    {
      "id": "ea66c7e3-1572-4824-8eae-a5b637e5df33",
      "name": "GPT-4o Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        -1632,
        304
      ],
      "parameters": {},
      "typeVersion": 1.2
    },
    {
      "id": "101a971e-3fae-445e-96ac-878650a6d14a",
      "name": "AI Analysis Success?",
      "type": "n8n-nodes-base.if",
      "position": [
        -1296,
        80
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "df2d7bc1-4628-4a08-8a55-6de9111eea4c",
      "name": "Extract Candidate Info",
      "type": "@n8n/n8n-nodes-langchain.informationExtractor",
      "position": [
        -1136,
        -160
      ],
      "parameters": {},
      "typeVersion": 1.2
    },
    {
      "id": "e5ac2a2d-bbdd-4582-b019-d8ba5ba6c57c",
      "name": "Final Data Valid?",
      "type": "n8n-nodes-base.if",
      "position": [
        -784,
        -160
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "168334bc-97c8-490b-a1fc-0acb8066912d",
      "name": "Log Successful Processing",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -736,
        -336
      ],
      "parameters": {},
      "typeVersion": 4.6
    },
    {
      "id": "95d4e4e5-63bd-4a2b-bc26-ea15144d76af",
      "name": "Set Upload Error",
      "type": "n8n-nodes-base.set",
      "position": [
        -560,
        752
      ],
      "parameters": {},
      "typeVersion": 3.4
    },
    {
      "id": "56635bec-8887-4b1d-90fd-a4cf35484f57",
      "name": "Set Extraction Error",
      "type": "n8n-nodes-base.set",
      "position": [
        -560,
        528
      ],
      "parameters": {},
      "typeVersion": 3.4
    },
    {
      "id": "825c2125-1914-4e4b-9d6e-b67a2e3b11ce",
      "name": "Set Quality Error",
      "type": "n8n-nodes-base.set",
      "position": [
        -560,
        336
      ],
      "parameters": {},
      "typeVersion": 3.4
    },
    {
      "id": "57f8e9fb-3175-4975-9775-e134e94eb6e4",
      "name": "Set AI Error",
      "type": "n8n-nodes-base.set",
      "position": [
        -560,
        112
      ],
      "parameters": {},
      "typeVersion": 3.4
    },
    {
      "id": "f7b1385e-6a0a-470c-93cd-55ba1da56ee4",
      "name": "Set Validation Error",
      "type": "n8n-nodes-base.set",
      "position": [
        -560,
        -80
      ],
      "parameters": {},
      "typeVersion": 3.4
    },
    {
      "id": "3b4b6746-99e0-4d6b-a620-fc8c89974eee",
      "name": "Merge All Errors",
      "type": "n8n-nodes-base.merge",
      "position": [
        -336,
        352
      ],
      "parameters": {},
      "typeVersion": 3
    },
    {
      "id": "5c692947-9802-43d7-848a-61d9fa01f02a",
      "name": "Send Error Notification",
      "type": "n8n-nodes-base.gmail",
      "position": [
        -112,
        352
      ],
      "parameters": {},
      "typeVersion": 2.1
    },
    {
      "id": "803eb0cb-f941-44cb-89dc-3813ec26d3c9",
      "name": "Log Error to Sheet",
      "type": "n8n-nodes-base.googleSheets",
      "disabled": true,
      "position": [
        112,
        352
      ],
      "parameters": {},
      "typeVersion": 4.6
    },
    {
      "id": "52ea629f-2f47-4b03-9498-98701026de61",
      "name": "File Processing",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -3104,
        -464
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "82d07dc3-aac4-4d04-94ce-89555c5c5abd",
      "name": "Error Handling",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -592,
        -480
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "e14473a9-91b4-43b7-8279-de2e3a47711f",
      "name": "AI Analysis Engine",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1648,
        -512
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "087335ab-ae10-46c5-8608-eafa51d47ed7",
      "name": "Get Doc",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        -3088,
        128
      ],
      "parameters": {},
      "typeVersion": 3
    }
  ],
  "connections": {
    "Get Doc": {
      "main": [
        [
          {
            "node": "Extract PDF Text",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Download TXT": {
      "main": [
        [
          {
            "node": "Extract TXT Content",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "GPT-4o Model": {
      "ai_languageModel": [
        [
          {
            "node": "AI Recruiter Analysis",
            "type": "ai_languageModel",
            "index": 0
          },
          {
            "node": "Extract Candidate Info",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Set AI Error": {
      "main": [
        [
          {
            "node": "Merge All Errors",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Save to Drive": {
      "main": [
        [
          {
            "node": "Upload Success?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Doc as Text": {
      "main": [
        [
          {
            "node": "Text Extracted?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Job Description": {
      "main": [
        [
          {
            "node": "AI Recruiter Analysis",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Monitor Resumes": {
      "main": [
        [
          {
            "node": "Save to Drive",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Text Extracted?": {
      "main": [
        [
          {
            "node": "Standardize Resume Data",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Set Extraction Error",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Upload Success?": {
      "main": [
        [
          {
            "node": "Route by File Type",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Set Upload Error",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extract PDF Text": {
      "main": [
        [
          {
            "node": "Text Extracted?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Merge All Errors": {
      "main": [
        [
          {
            "node": "Send Error Notification",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set Upload Error": {
      "main": [
        [
          {
            "node": "Merge All Errors",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Final Data Valid?": {
      "main": [
        [
          {
            "node": "Log Successful Processing",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Set Validation Error",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set Quality Error": {
      "main": [
        [
          {
            "node": "Merge All Errors",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Route by File Type": {
      "main": [
        [
          {
            "node": "Get Doc",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Convert DOCX to Docs",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Download TXT",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extract TXT Content": {
      "main": [
        [
          {
            "node": "Text Extracted?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "AI Analysis Success?": {
      "main": [
        [
          {
            "node": "Extract Candidate Info",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Set AI Error",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Convert DOCX to Docs": {
      "main": [
        [
          {
            "node": "Get Doc as Text",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Resume Quality Check": {
      "main": [
        [
          {
            "node": "Job Description",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Set Quality Error",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set Extraction Error": {
      "main": [
        [
          {
            "node": "Merge All Errors",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Set Validation Error": {
      "main": [
        [
          {
            "node": "Merge All Errors",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "AI Recruiter Analysis": {
      "main": [
        [
          {
            "node": "AI Analysis Success?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extract Candidate Info": {
      "main": [
        [
          {
            "node": "Final Data Valid?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Send Error Notification": {
      "main": [
        [
          {
            "node": "Log Error to Sheet",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Standardize Resume Data": {
      "main": [
        [
          {
            "node": "Resume Quality Check",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Structured Output Parser": {
      "ai_outputParser": [
        [
          {
            "node": "AI Recruiter Analysis",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    }
  }
}
Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

Enterprise-grade resume screening automation built for production environments. This workflow combines intelligent AI analysis with comprehensive error handling to ensure reliable processing of candidate applications. Every potential failure point is monitored with automatic…

Source: https://n8n.io/workflows/9048/ — original creator credit. Request a take-down →

More AI & RAG workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

AI & RAG

🎯 Create viral TikToks, Shorts, Reels, podcasts, and ASMR videos in minutes — all on autopilot.

OpenAI, HTTP Request, Form Trigger +7
AI & RAG

Generate AI viral videos with NanoBanana & VEO3, shared on socials via Blotato 2. Uses @blotato/n8n-nodes-blotato, googleSheets, lmChatOpenAi, toolThink. Event-driven trigger; 94 nodes.

@Blotato/N8N Nodes Blotato, Google Sheets, OpenAI Chat +9
AI & RAG

> Note: This workflow uses sticky notes extensively to document each logical section of the automation. Sticky notes are mandatory and already included to explain OCR, AI parsing, folder logic, dup

QuickBooks, Google Sheets, Google Drive +5
AI & RAG

This template is designed for marketers, content creators, and e-commerce brands who want to automate the creation of professional ad videos at scale. It’s ideal for teams looking to generate consiste

Telegram, Telegram Trigger, Google Drive +8
AI & RAG

This comprehensive n8n workflow automates the entire Meta (Facebook/Instagram) advertising process, from asset analysis to ad creation. It combines AI-powered content analysis with automated ad deploy

Facebook Graph Api, HTTP Request, Google Drive +5