AutomationFlowsAI & RAG › Screen and Score Resumes from Gmail to Sheets with AI

Screen and Score Resumes from Gmail to Sheets with AI

ByAditya Sharma @hicounselor on n8n.io

This intelligent n8n automation streamlines the process of collecting, extracting, and scoring resumes sent to a Gmail inbox—making it an ideal solution for recruiters who regularly receive hundreds of applications. The workflow scans incoming emails with attachments, extracts…

Event trigger★★☆☆☆ complexityAI-powered7 nodesOutput Parser StructuredAgentOpenAI ChatGoogle SheetsGmail Trigger
AI & RAG Trigger: Event Nodes: 7 Complexity: ★★☆☆☆ AI nodes: yes Added:

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

This workflow follows the Agent → Gmail Trigger 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
{
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "nodes": [
    {
      "id": "53cc8017-5310-4205-85e0-8cc839693601",
      "name": "Structured Output Parser",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        720,
        400
      ],
      "parameters": {
        "schemaType": "manual",
        "inputSchema": "{\n\t\"type\": \"object\",\n\t\"properties\": {\n\t\t\"name\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n      \"email\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n      \"linkedin\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n      \"score\": {\n\t\t\t\"type\": \"string\"\n\t\t}\n\t\t\n\t}\n}"
      },
      "typeVersion": 1.2
    },
    {
      "id": "ea0c00d3-25c8-4523-88ff-d61d6665ecf7",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -760,
        160
      ],
      "parameters": {
        "width": 480,
        "height": 260,
        "content": "## Resume Screener from Gmail to Sheets\n\n### \ud83d\udcc3Before you get started, you'll need:\n- [n8n installation](https://n8n.partnerlinks.io/n8nTTVideoGenTemplate) \n- [OpenAI API Key](https://platform.openai.com/api-keys)\n- Google Sheets API enabled in [Google Cloud Console](https://console.cloud.google.com/apis/api/sheets.googleapis.com/overview)\n- Google Drive API enabled in [Google Cloud Console](https://console.cloud.google.com/apis/api/drive.googleapis.com/overview)\n- OAuth 2.0 Client ID and Client Secret from your [Google Cloud Console Credentials](https://console.cloud.google.com/apis/credentials)\n"
      },
      "typeVersion": 1
    },
    {
      "id": "e4f3aef9-750a-48bb-899b-bd4a810032f2",
      "name": "Extract text from PDF File",
      "type": "n8n-nodes-base.extractFromFile",
      "position": [
        320,
        180
      ],
      "parameters": {
        "options": {},
        "operation": "pdf",
        "binaryPropertyName": "attachment_0"
      },
      "typeVersion": 1
    },
    {
      "id": "5418cfae-25da-4f58-99ef-d6957d8819a8",
      "name": "AI Agent to evaluate Resume",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        540,
        180
      ],
      "parameters": {
        "text": "=Here is the resume:\n\n{{ $json.text }}",
        "options": {
          "systemMessage": "You are an invaluable assistant. You were given a resume. You have to help me analyze the resume and give it a score based on the details available in the resume. Also, extract the name, email, and LinkedIn profile from the resume."
        },
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 1.8
    },
    {
      "id": "dce8e431-9d5c-4aa1-a0eb-c2a27de2d7f9",
      "name": "OpenAI Chat Model (GPT 4o-mini)",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        520,
        400
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "e7fdaf75-11ad-40c2-84a0-13c52f6f2eb1",
      "name": "Add Resume Evaluation to Google Sheets",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        920,
        180
      ],
      "parameters": {
        "columns": {
          "value": {
            "Name": "={{ $json.output.name }}",
            "Email": "={{ $json.output.email }}",
            "Score": "={{ $json.output.score }}",
            "LinkedIn": "={{ $json.output.linkedin }}",
            "Resume text": "={{ $('Extract text from PDF File').item.json.text }}"
          },
          "schema": [
            {
              "id": "Name",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Email",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Email",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "LinkedIn",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "LinkedIn",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Score",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Score",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Resume text",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Resume text",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {
          "useAppend": true
        },
        "operation": "append",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": 781640061,
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1SGYsuJI2YJVztZZmSLsFZ0lbUHnxm0V9r3c8S5-2q74/edit#gid=781640061",
          "cachedResultName": "Resume Score"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1SGYsuJI2YJVztZZmSLsFZ0lbUHnxm0V9r3c8S5-2q74",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1SGYsuJI2YJVztZZmSLsFZ0lbUHnxm0V9r3c8S5-2q74/edit?usp=drivesdk",
          "cachedResultName": "Lead Generation"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.5
    },
    {
      "id": "0ad65e2b-665d-4b77-a941-b15a7ffbfb89",
      "name": "Trigger on new Email Received",
      "type": "n8n-nodes-base.gmailTrigger",
      "position": [
        60,
        180
      ],
      "parameters": {
        "simple": false,
        "filters": {
          "q": "has:attachment",
          "labelIds": [
            "UNREAD"
          ],
          "readStatus": "unread"
        },
        "options": {
          "downloadAttachments": true
        },
        "pollTimes": {
          "item": [
            {
              "mode": "everyHour",
              "minute": 1
            }
          ]
        }
      },
      "credentials": {
        "gmailOAuth2": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.2
    }
  ],
  "connections": {
    "Structured Output Parser": {
      "ai_outputParser": [
        [
          {
            "node": "AI Agent to evaluate Resume",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Extract text from PDF File": {
      "main": [
        [
          {
            "node": "AI Agent to evaluate Resume",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "AI Agent to evaluate Resume": {
      "main": [
        [
          {
            "node": "Add Resume Evaluation to Google Sheets",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Trigger on new Email Received": {
      "main": [
        [
          {
            "node": "Extract text from PDF File",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model (GPT 4o-mini)": {
      "ai_languageModel": [
        [
          {
            "node": "AI Agent to evaluate Resume",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    }
  }
}

Credentials you'll need

Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.

Pro

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

About this workflow

This intelligent n8n automation streamlines the process of collecting, extracting, and scoring resumes sent to a Gmail inbox—making it an ideal solution for recruiters who regularly receive hundreds of applications. The workflow scans incoming emails with attachments, extracts…

Source: https://n8n.io/workflows/3546/ — 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

Gmail Googlesheets. Uses outputParserStructured, stickyNote, extractFromFile, agent. Event-driven trigger; 7 nodes.

Output Parser Structured, Agent, OpenAI Chat +2
AI & RAG

Enterprise-grade resume screening automation built for production environments. This workflow combines intelligent AI analysis with comprehensive error handling to ensure reliable processing of candid

Gmail Trigger, Google Drive, HTTP Request +6
AI & RAG

This workflow automates invoice processing directly from your email inbox.

Gmail Trigger, HTTP Request, Agent +5
AI & RAG

*Tags: AI Agent, Supply Chain, Logistics, Circular Economy, Route Planning, Transportation, GPS API*

Gmail Trigger, Output Parser Structured, Agent +4
AI & RAG

This template is for founders, finance teams, and solo operators who receive lots of invoices by email and want them captured automatically in a single, searchable source of truth. If you’re tired of

OpenAI Chat, Output Parser Structured, Gmail Trigger +4