This workflow corresponds to n8n.io template #9046 — 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 →
{
"meta": {
"templateCredsSetupCompleted": true
},
"nodes": [
{
"id": "7fa0a7c4-b938-4522-89ae-bf6e4fe71d83",
"name": "Setup Guide",
"type": "n8n-nodes-base.stickyNote",
"position": [
0,
-272
],
"parameters": {
"width": 600,
"height": 1152,
"content": "# \ud83c\udfaf AI Resume Screening & Candidate Pipeline\n\n**Created by:** **David Olusola**\n\n\n## \ud83d\ude80 What This Workflow Does\n\nThis intelligent recruitment automation system:\n- **Monitors Gmail** for resume submissions\n- **Processes multiple file formats** (PDF, DOCX, TXT)\n- **Uses AI analysis** with GPT-4o for candidate evaluation\n- **Extracts contact info** automatically\n- **Scores candidates** against your job requirements\n- **Logs everything** to Google Sheets dashboard\n\n## \u26a1 Quick Setup Checklist\n\n\u2705 Connect Gmail credentials\n\u2705 Connect Google Drive & Sheets credentials \n\u2705 Add your OpenAI API key\n\u2705 Update job description document ID\n\u2705 Copy the tracking spreadsheet template\n\u2705 Test with a sample resume\n\n## \ud83d\udccb Required Integrations\n- Gmail (trigger)\n- Google Drive (file storage)\n- Google Sheets (data logging)\n- OpenAI GPT-4o (AI analysis)\n\n## \ud83c\udfaf Use Cases\n- HR departments screening applicants\n- Recruiting agencies processing candidates\n- Startups managing hiring pipelines\n- Remote teams coordinating interviews\n\n\n Copy the [Google Sheet Template](https://docs.google.com/spreadsheets/d/1vucZgBrULNToEQMAQrFyWczpOzXxBU6rzCX0waIZyeM/edit?gid=0#gid=0) \nMake a copy of the sheet in your own Google Drive. This is where the workflow will write the parsed data back."
},
"typeVersion": 1
},
{
"id": "4d692884-2255-4ddf-b88d-8e7c30601c35",
"name": "Email Monitoring",
"type": "n8n-nodes-base.stickyNote",
"position": [
848,
-64
],
"parameters": {
"color": 2,
"width": 686,
"height": 456,
"content": "## \ud83d\udce7 Email Monitoring\n\nWatches Gmail inbox for:\n- Resume attachments\n- Job application emails\n- Candidate submissions\n\nSupports multiple file formats:\n- PDF documents\n- Word documents (.docx)\n- Plain text files (.txt)"
},
"typeVersion": 1
},
{
"id": "d85372c3-dc71-4a37-86a1-aeebdec0a0e3",
"name": "Save to Drive",
"type": "n8n-nodes-base.googleDrive",
"position": [
1360,
224
],
"parameters": {
"name": "={{ $json.subject.replace(/[^a-zA-Z0-9]/g, '_') }}_resume_{{ $now.format('yyyy-MM-dd_HH-mm') }}",
"driveId": {
"__rl": true,
"mode": "list",
"value": "My Drive"
},
"options": {},
"folderId": {
"__rl": true,
"mode": "list",
"value": "root",
"cachedResultName": "/ (Root folder)"
},
"inputDataFieldName": "attachment_0"
},
"credentials": {
"googleDriveOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 3
},
{
"id": "2194e79e-a17b-417e-9ca3-7a9a43ab231a",
"name": "Route by File Type",
"type": "n8n-nodes-base.switch",
"position": [
1712,
208
],
"parameters": {
"rules": {
"values": [
{
"outputKey": "PDF",
"conditions": {
"options": {
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "pdf-check",
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.mimeType }}",
"rightValue": "application/pdf"
}
]
},
"renameOutput": true
},
{
"outputKey": "DOCX",
"conditions": {
"options": {
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "docx-check",
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.mimeType }}",
"rightValue": "application/vnd.openxmlformats-officedocument.wordprocessingml.document"
}
]
},
"renameOutput": true
},
{
"outputKey": "TXT",
"conditions": {
"options": {
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "txt-check",
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.mimeType }}",
"rightValue": "text/plain"
}
]
},
"renameOutput": true
}
]
},
"options": {}
},
"typeVersion": 3.2
},
{
"id": "06633a74-1122-41f6-a4ce-92efb0da1a45",
"name": "File Processing",
"type": "n8n-nodes-base.stickyNote",
"position": [
1536,
-192
],
"parameters": {
"color": 6,
"width": 1024,
"height": 792,
"content": "## \ud83d\udd04 File Processing\n\nRoutes different file types:\n- **PDF**: Direct text extraction\n- **DOCX**: Convert to Google Doc first\n- **TXT**: Simple text processing\n\nAll paths converge to standardized text output"
},
"typeVersion": 1
},
{
"id": "0c9bb794-48bb-48cd-b672-88eda9aa4106",
"name": "Extract PDF Text",
"type": "n8n-nodes-base.extractFromFile",
"position": [
2288,
16
],
"parameters": {
"options": {
"maxPages": 10
},
"operation": "pdf"
},
"typeVersion": 1
},
{
"id": "90aa13cb-dfcb-41c1-a7b7-598970122bca",
"name": "Convert DOCX to Docs",
"type": "n8n-nodes-base.httpRequest",
"position": [
2000,
208
],
"parameters": {
"url": "=https://www.googleapis.com/drive/v2/files/{{ $json.id }}/copy",
"method": "POST",
"options": {},
"jsonBody": "{\n \"title\": \"{{ $json.name }}_converted\",\n \"mimeType\": \"application/vnd.google-apps.document\"\n}",
"sendBody": true,
"specifyBody": "json",
"authentication": "predefinedCredentialType",
"nodeCredentialType": "googleDriveOAuth2Api"
},
"credentials": {
"googleDriveOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 4.2
},
{
"id": "c9828dee-ca5b-4945-8768-35c739843724",
"name": "Get Doc as Text",
"type": "n8n-nodes-base.googleDrive",
"position": [
2304,
208
],
"parameters": {
"fileId": {
"__rl": true,
"mode": "id",
"value": "={{ $json.id }}"
},
"options": {
"googleFileConversion": {
"conversion": {
"docsToFormat": "text/plain"
}
}
},
"operation": "download"
},
"credentials": {
"googleDriveOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 3
},
{
"id": "a4dbee46-03d7-4c8d-8cc4-1935cb28d65a",
"name": "Download TXT",
"type": "n8n-nodes-base.googleDrive",
"position": [
2000,
400
],
"parameters": {
"fileId": {
"__rl": true,
"mode": "id",
"value": "={{ $json.id }}"
},
"options": {},
"operation": "download"
},
"credentials": {
"googleDriveOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 3
},
{
"id": "2bb86d12-445b-48cf-93b2-1a29b8508054",
"name": "Extract TXT Content",
"type": "n8n-nodes-base.extractFromFile",
"position": [
2304,
400
],
"parameters": {
"options": {},
"operation": "text",
"destinationKey": "resumeText"
},
"typeVersion": 1
},
{
"id": "6c783f5c-271e-4bf7-ab5e-97655267ae27",
"name": "Standardize Resume Data",
"type": "n8n-nodes-base.set",
"position": [
2608,
208
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "resume-text",
"name": "candidateResume",
"type": "string",
"value": "={{ $json.text || $json.data || $json.resumeText }}"
},
{
"id": "original-email",
"name": "originalEmail",
"type": "object",
"value": "={{ $('Receive Resume').item.json }}"
},
{
"id": "drive-link",
"name": "driveLink",
"type": "string",
"value": "={{ $('Save to Drive').item.json.webViewLink }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "c8ced4be-80bd-4faa-bf8e-6502d151a381",
"name": "Data Standardization",
"type": "n8n-nodes-base.stickyNote",
"position": [
2576,
16
],
"parameters": {
"color": 3,
"width": 494,
"height": 344,
"content": "## \ud83d\udd04 Data Standardization\n\nConverts all file types to consistent format:\n- Extracts plain text content\n- Preserves original email metadata\n- Adds Google Drive link reference\n- Prepares data for AI analysis"
},
"typeVersion": 1
},
{
"id": "0c0cb748-f4ec-4d5c-a564-ffccaf9a9edd",
"name": "Job Description",
"type": "n8n-nodes-base.set",
"position": [
2912,
208
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "job-description",
"name": "jobDescription",
"type": "string",
"value": "Job Title: Senior Software Engineer\n\nWe are seeking a Senior Software Engineer to join our growing team. The ideal candidate will have:\n\nRequired Skills:\n- 5+ years of software development experience\n- Strong proficiency in JavaScript, Python, or Java\n- Experience with cloud platforms (AWS, GCP, Azure)\n- Database design and optimization experience\n- Agile development methodology experience\n\nPreferred Skills:\n- Full-stack development experience\n- DevOps and CI/CD pipeline experience\n- Team leadership experience\n- Experience with microservices architecture\n\nResponsibilities:\n- Design and develop scalable software solutions\n- Collaborate with cross-functional teams\n- Mentor junior developers\n- Participate in code reviews\n- Contribute to technical decision making"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "c779750a-750e-44f6-9e22-d5a09a0f533e",
"name": "AI Recruiter Analysis",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
3200,
208
],
"parameters": {
"text": "=**CANDIDATE RESUME:**\n\n{{ $('Extract PDF Text').item.json.text }}\n\n**JOB DESCRIPTION:**\n\n{{ $json.jobDescription }}",
"options": {
"systemMessage": "You are an expert technical recruiter and hiring manager with 15+ years of experience evaluating candidates across technology, business, and creative roles.\n\n# Your Mission\nAnalyze the candidate's resume against the provided job description and deliver a comprehensive, actionable screening report that helps hiring teams make informed decisions quickly.\n\n# Analysis Framework\nEvaluate the candidate across these dimensions:\n1. **Technical Skills Match** - Hard skills, tools, technologies\n2. **Experience Relevance** - Industry background, role progression\n3. **Cultural & Soft Skills Fit** - Leadership, communication, teamwork\n4. **Growth Potential** - Learning ability, adaptability, ambition\n5. **Red Flags** - Gaps, inconsistencies, concerns\n\n# Output Requirements\nProvide your analysis in this exact JSON structure - be specific and reference actual resume content.\n\n# Quality Standards\n- Reference specific resume content, not generalities\n- Consider both immediate needs and long-term potential\n- Balance optimism with realistic assessment\n- Provide actionable insights for hiring managers\n- Score from 1-10 where 8+ means \"definitely interview\""
},
"promptType": "define",
"hasOutputParser": true
},
"typeVersion": 2
},
{
"id": "7c14222a-0874-42a8-8044-fca5d58af083",
"name": "Structured Output Parser",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
3344,
448
],
"parameters": {
"schemaType": "manual",
"inputSchema": "{\n \"type\": \"object\",\n \"properties\": {\n \"candidate_strengths\": {\n \"type\": \"array\",\n \"items\": { \"type\": \"string\" },\n \"description\": \"List of candidate's key strengths with evidence\"\n },\n \"candidate_weaknesses\": {\n \"type\": \"array\", \n \"items\": { \"type\": \"string\" },\n \"description\": \"List of areas where candidate falls short\"\n },\n \"risk_assessment\": {\n \"type\": \"object\",\n \"properties\": {\n \"level\": {\n \"type\": \"string\",\n \"enum\": [\"Low\", \"Medium\", \"High\"]\n },\n \"explanation\": {\n \"type\": \"string\",\n \"description\": \"Detailed risk analysis\"\n }\n }\n },\n \"opportunity_assessment\": {\n \"type\": \"object\",\n \"properties\": {\n \"level\": {\n \"type\": \"string\", \n \"enum\": [\"Low\", \"Medium\", \"High\"]\n },\n \"explanation\": {\n \"type\": \"string\",\n \"description\": \"Upside potential analysis\"\n }\n }\n },\n \"overall_score\": {\n \"type\": \"integer\",\n \"minimum\": 1,\n \"maximum\": 10,\n \"description\": \"Overall fit score 1-10\"\n },\n \"score_justification\": {\n \"type\": \"string\",\n \"description\": \"Detailed explanation of the score\"\n },\n \"next_steps_recommendation\": {\n \"type\": \"string\",\n \"description\": \"Recommended next actions\"\n }\n },\n \"required\": [\"candidate_strengths\", \"candidate_weaknesses\", \"risk_assessment\", \"opportunity_assessment\", \"overall_score\", \"score_justification\", \"next_steps_recommendation\"]\n}"
},
"typeVersion": 1.3
},
{
"id": "0bf3800f-5f64-4ee7-abbf-0ea8fa27c273",
"name": "GPT-4o Model",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
3200,
432
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4o-mini",
"cachedResultName": "gpt-4o-mini"
},
"options": {
"maxTokens": 2000,
"temperature": 0.3
}
},
"credentials": {
"openAiApi": {
"name": "<your credential>"
}
},
"typeVersion": 1.2
},
{
"id": "279926a6-030f-41ef-b202-77a277cd543e",
"name": "AI Analysis Engine",
"type": "n8n-nodes-base.stickyNote",
"position": [
3072,
-256
],
"parameters": {
"color": 5,
"width": 400,
"height": 892,
"content": "## \ud83e\udd16 AI Analysis Engine\n\n**Powered by GPT-4o**\n\nAnalyzes candidates across:\n- Technical skills alignment\n- Experience relevance \n- Cultural fit indicators\n- Growth potential\n- Risk factors\n\nOutputs structured JSON with:\n- Strengths & weaknesses\n- Risk/opportunity assessment\n- 1-10 scoring with justification\n- Next steps recommendation"
},
"typeVersion": 1
},
{
"id": "a8b68718-7fcc-49de-b9de-9f22fd821dab",
"name": "Extract Candidate Info",
"type": "@n8n/n8n-nodes-langchain.informationExtractor",
"position": [
3568,
192
],
"parameters": {
"text": "={{ $('Standardize Resume Data').item.json.candidateResume }}",
"options": {},
"attributes": {
"attributes": [
{
"name": "full_name",
"required": true,
"description": "Candidate's full name (first and last name combined)"
},
{
"name": "email_address",
"required": true,
"description": "Primary email address of the candidate"
},
{
"name": "phone_number",
"description": "Phone number or mobile number"
},
{
"name": "current_title",
"description": "Current job title or most recent position"
},
{
"name": "years_experience",
"description": "Total years of relevant work experience"
},
{
"name": "key_skills",
"description": "Top 5 technical or professional skills mentioned"
}
]
}
},
"typeVersion": 1.2
},
{
"id": "01d9ad73-55f6-4aa9-b3b9-6bb162d585eb",
"name": "Data Extraction",
"type": "n8n-nodes-base.stickyNote",
"position": [
3488,
-48
],
"parameters": {
"color": 4,
"width": 350,
"height": 536,
"content": "## \ud83d\udcca Data Extraction\n\nUses AI to extract:\n- Contact information\n- Current role & experience\n- Key skills & competencies\n- Professional background\n\nStructured data for CRM integration"
},
"typeVersion": 1
},
{
"id": "223dc55b-9834-4f54-9eba-2ea50a42480f",
"name": "Results Dashboard",
"type": "n8n-nodes-base.stickyNote",
"position": [
3840,
-96
],
"parameters": {
"color": 7,
"width": 400,
"height": 584,
"content": "## \ud83d\udcc8 Results Dashboard\n\n**Google Sheets Integration**\n\nTracks all candidates with:\n- Contact & background info\n- AI analysis scores\n- Strengths & weaknesses\n- Risk/opportunity levels\n- Next steps recommendations\n- Resume links & source data\n\nEnables filtering, sorting, and team collaboration"
},
"typeVersion": 1
},
{
"id": "cfe547a4-821d-4df3-84f9-d374fd75928f",
"name": "Append row in sheet",
"type": "n8n-nodes-base.googleSheets",
"position": [
3920,
192
],
"parameters": {
"columns": {
"value": {
"Date": "={{ $('Save to Drive').item.json.createdTime }}",
"Email": "={{ $json.output.email_address }}",
"Resume": "={{ $('Save to Drive').item.json.webViewLink }}",
"Full Name": "={{ $json.output.full_name }}",
"Strengths": "={{ $('AI Recruiter Analysis').item.json.output.candidate_strengths.join(\"\\n\\n\") }}",
"Key Skills": "={{ $json.output.key_skills }}",
"Weaknesses": "={{ $('AI Recruiter Analysis').item.json.output.candidate_weaknesses.join(\"\\n\\n\") }}",
"Overall Fit": "={{ $('AI Recruiter Analysis').item.json.output.overall_score }}",
"Risk Factor": "={{ $('AI Recruiter Analysis').item.json.output.risk_assessment.level }}\n{{ $('AI Recruiter Analysis').item.json.output.risk_assessment.explanation }}",
"Justification": "={{ $('AI Recruiter Analysis').item.json.output.score_justification }}",
"Reward Factor": "={{ $('AI Recruiter Analysis').item.json.output.opportunity_assessment.level }} \n\n{{ $('AI Recruiter Analysis').item.json.output.opportunity_assessment.explanation }}"
},
"schema": [
{
"id": "Date",
"type": "string",
"display": true,
"required": false,
"displayName": "Date",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Resume",
"type": "string",
"display": true,
"required": false,
"displayName": "Resume",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Full Name",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Full Name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Email",
"type": "string",
"display": true,
"required": false,
"displayName": "Email",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Strengths",
"type": "string",
"display": true,
"required": false,
"displayName": "Strengths",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Weaknesses",
"type": "string",
"display": true,
"required": false,
"displayName": "Weaknesses",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Risk Factor",
"type": "string",
"display": true,
"required": false,
"displayName": "Risk Factor",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Reward Factor",
"type": "string",
"display": true,
"required": false,
"displayName": "Reward Factor",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Overall Fit",
"type": "string",
"display": true,
"required": false,
"displayName": "Overall Fit",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Justification",
"type": "string",
"display": true,
"required": false,
"displayName": "Justification",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Key Skills",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Key Skills",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "append",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1vucZgBrULNToEQMAQrFyWczpOzXxBU6rzCX0waIZyeM/edit#gid=0",
"cachedResultName": "Sheet1"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1vucZgBrULNToEQMAQrFyWczpOzXxBU6rzCX0waIZyeM",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1vucZgBrULNToEQMAQrFyWczpOzXxBU6rzCX0waIZyeM/edit?usp=drivesdk",
"cachedResultName": "Resume Screener (file -> make a copy)"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 4.7
},
{
"id": "8e49be48-133a-485e-b983-165567da97ed",
"name": "Receive Resume",
"type": "n8n-nodes-base.gmailTrigger",
"position": [
1152,
224
],
"parameters": {
"simple": false,
"filters": {},
"options": {
"downloadAttachments": true
},
"pollTimes": {
"item": [
{
"mode": "everyMinute"
}
]
}
},
"credentials": {
"gmailOAuth2": {
"name": "<your credential>"
}
},
"typeVersion": 1.2
},
{
"id": "2378eb54-7a38-402f-b4b9-1ea0eeae4959",
"name": "Get Doc",
"type": "n8n-nodes-base.googleDrive",
"position": [
1984,
16
],
"parameters": {
"fileId": {
"__rl": true,
"mode": "id",
"value": "={{ $json.id }}"
},
"options": {
"googleFileConversion": {
"conversion": {
"docsToFormat": "application/pdf"
}
}
},
"operation": "download"
},
"credentials": {
"googleDriveOAuth2Api": {
"name": "<your credential>"
}
},
"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
}
]
]
},
"Save to Drive": {
"main": [
[
{
"node": "Route by File Type",
"type": "main",
"index": 0
}
]
]
},
"Receive Resume": {
"main": [
[
{
"node": "Save to Drive",
"type": "main",
"index": 0
}
]
]
},
"Get Doc as Text": {
"main": [
[
{
"node": "Standardize Resume Data",
"type": "main",
"index": 0
}
]
]
},
"Job Description": {
"main": [
[
{
"node": "AI Recruiter Analysis",
"type": "main",
"index": 0
}
]
]
},
"Extract PDF Text": {
"main": [
[
{
"node": "Standardize Resume Data",
"type": "main",
"index": 0
}
]
]
},
"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": "Standardize Resume Data",
"type": "main",
"index": 0
}
]
]
},
"Convert DOCX to Docs": {
"main": [
[
{
"node": "Get Doc as Text",
"type": "main",
"index": 0
}
]
]
},
"AI Recruiter Analysis": {
"main": [
[
{
"node": "Extract Candidate Info",
"type": "main",
"index": 0
}
]
]
},
"Extract Candidate Info": {
"main": [
[
{
"node": "Append row in sheet",
"type": "main",
"index": 0
}
]
]
},
"Standardize Resume Data": {
"main": [
[
{
"node": "Job Description",
"type": "main",
"index": 0
}
]
]
},
"Structured Output Parser": {
"ai_outputParser": [
[
{
"node": "AI Recruiter Analysis",
"type": "ai_outputParser",
"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.
gmailOAuth2googleDriveOAuth2ApigoogleSheetsOAuth2ApiopenAiApi
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
Transform your hiring process with this intelligent automation that screens resumes in minutes, not hours. The workflow monitors your Gmail inbox, processes resume attachments using AI analysis, and delivers structured candidate evaluations to a centralized Google Sheets…
Source: https://n8n.io/workflows/9046/ — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
🎯 Create viral TikToks, Shorts, Reels, podcasts, and ASMR videos in minutes — all on autopilot.
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.
> 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
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
Digistars - Scrape & Crawl. Uses httpRequest, n8n-nodes-firecrawl-scraper, googleSheets, lmChatOpenAi. Event-driven trigger; 63 nodes.