Workflow: AI Agent - Cv Resume - Automated Screening , Sorting , Rating and Tracker System
Integrations: extractFromFile, gmailTool, googleDocs, googleDrive, googleDriveTool, googleDriveTrigger, googleSheetsTool, stickyNote

{"id": "2ddwHvuidKc6lZia", "meta": {"instanceId": "5b12f258e7b8845a7e4d948aaf2096c942ee796fa3f6edf443a06fe951a6e6e2", "templateCredsSetupCompleted": true}, "name": "AI Agent - Cv Resume - Automated Screening , Sorting , Rating and Tracker System", "tags": [], "nodes": [{"id": "92b75a8f-da03-4545-91ef-da29b88f1cef", "name": "GDocs - Get Job Desc", "type": "n8n-nodes-base.googleDocs", "position": [220, 120], "parameters": {"operation": "get", "documentURL": "https://docs.google.com/document/d/12dv1AXaotpJ3ST1nUI-QgCoi5SJjM52zeHmjhwZUtvs/edit?usp=sharing"}, "credentials": {"googleDocsOAuth2Api": {"id": "k7j5KUAvAzARmxTu", "name": "Google Docs account"}}, "typeVersion": 2}, {"id": "213712d5-f7ef-4c49-bfa6-da02be76a213", "name": "Google Drive - Resume CV File Created", "type": "n8n-nodes-base.googleDriveTrigger", "position": [-540, 120], "parameters": {"event": "fileCreated", "options": {}, "pollTimes": {"item": [{"mode": "everyHour"}]}, "triggerOn": "specificFolder", "folderToWatch": {"__rl": true, "mode": "list", "value": "17g2HGxLieONy6EWfsPADvA9IXDp5nJ8p", "cachedResultUrl": "https://drive.google.com/drive/folders/17g2HGxLieONy6EWfsPADvA9IXDp5nJ8p", "cachedResultName": "Unfiltered"}}, "credentials": {"googleDriveOAuth2Api": {"id": "i0k4QgJ8YgVPNgF7", "name": "Google Drive account"}}, "typeVersion": 1}, {"id": "31075389-e8c5-431a-b5e1-807422dbcd5f", "name": "Download Resume File From Gdrive", "type": "n8n-nodes-base.googleDrive", "position": [-220, 120], "parameters": {"fileId": {"__rl": true, "mode": "id", "value": "={{ $json.id }}"}, "options": {"fileName": "={{ $json.name }}"}, "operation": "download"}, "credentials": {"googleDriveOAuth2Api": {"id": "i0k4QgJ8YgVPNgF7", "name": "Google Drive account"}}, "typeVersion": 3}, {"id": "367d4e61-a73c-4e47-bd73-690b2a63e0ae", "name": "AI Agent", "type": "@n8n/n8n-nodes-langchain.agent", "position": [720, -400], "parameters": {"text": "=You are expert backend principal engineer specialize in python. You will compare job description and candidate profile.\n\nThen you will response with decision [REJECTED/KIV/SHORTLISTED].\n, provide a reason and give a score rating\n{ decision, reason , score}\n\nAfter you identify a decision, used the tool in sequence.\n1. Use the relevant tool to move the candidate resume file accordingly to the right folder GoogleDrive:MoveFileToReject or GoogleDrive:MoveFileToShortlisted or GoogleDrive:MoveFileToKIV\n2. Use the Gsheet:UpdateTracker tool to update the tracker status.\n3. Use the Gmail:NotificationTool to infor the candidate name, role, decision and reason\n\n==[JOB-DESC]===\n{{ $json.content }}\n==[/JOB-DESC]===\n\n==[CANDIDATE-DESC]===\n{{ $('Extract from File').item.json.text }}\n \n==[/CANDIDATE-DESC]===\n\n", "options": {"systemMessage": "You are expert backend principal engineer specialize in python. You will compare job description and candidate profile.\n\nThen you will response with decision [REJECTED/KIV/SHORTLISTED].\nand provide a reason.\n{ decision, reason}\n\nAfter you identify a decision, used the tool \n1. Use the relevant tool to move the candidate resume file accordingly to the right folder GoogleDrive:MoveFileToReject or GoogleDrive:MoveFileToShortlisted or GoogleDrive:MoveFileToKIV\n2. Use the Gsheet-UpdateTracker tool to update the tracker status.\n"}, "promptType": "define"}, "typeVersion": 1.9}, {"id": "f2a16cf3-0404-4791-b7d4-64f1909e02c2", "name": "Extract from File", "type": "n8n-nodes-base.extractFromFile", "position": [-40, 120], "parameters": {"options": {}, "operation": "pdf"}, "typeVersion": 1}, {"id": "98af749e-d4ee-4f9b-bacc-f78a47525077", "name": "Gmail:Notification", "type": "n8n-nodes-base.gmailTool", "position": [1760, 120], "webhookId": "ed0f09b9-4b16-4bf1-af47-208f1e8e3761", "parameters": {"sendTo": "aiix.space.noreply@gmail.com", "message": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Message', ``, 'string') }}", "options": {}, "subject": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Subject', ``, 'string') }}", "descriptionType": "manual", "toolDescription": "Gmail:NotificationTool - This tool will notify the candidate name, job role, and status of [shortlisted/kiv/rejected]"}, "credentials": {"gmailOAuth2": {"id": "1cn2wligOf77izLL", "name": "Gmail account"}}, "typeVersion": 2.1}, {"id": "343f7f0f-d505-448f-a95d-0fc7d3c14730", "name": "Sticky Note", "type": "n8n-nodes-base.stickyNote", "position": [500, -60], "parameters": {"color": 4, "width": 660, "height": 400, "content": "## 1. Move candidate cv to folder\n "}, "typeVersion": 1}, {"id": "9941231e-7cfb-442e-9593-aed21fe86cf8", "name": "Sticky Note1", "type": "n8n-nodes-base.stickyNote", "position": [1220, -60], "parameters": {"color": 4, "width": 320, "height": 400, "content": "## 2. Update tracker\n "}, "typeVersion": 1}, {"id": "bfd181ec-cf79-4320-9acd-f3e35fb499c5", "name": "Sticky Note2", "type": "n8n-nodes-base.stickyNote", "position": [1640, -60], "parameters": {"color": 4, "width": 320, "height": 400, "content": "## 3. Send email notification\n "}, "typeVersion": 1}, {"id": "60fd65e7-6e8a-4092-9fce-2dd97e35b236", "name": "Sticky Note3", "type": "n8n-nodes-base.stickyNote", "position": [-280, -60], "parameters": {"color": 2, "width": 380, "height": 400, "content": "## Download and read candidate CV Resume\n "}, "typeVersion": 1}, {"id": "d5d3cf16-d84d-4e7d-af75-f5341af20f59", "name": "Sticky Note4", "type": "n8n-nodes-base.stickyNote", "position": [100, -60], "parameters": {"color": 2, "width": 380, "height": 400, "content": "## Read Job Description\n "}, "typeVersion": 1}, {"id": "0ee07985-b24b-492b-a394-2f7097254911", "name": "Sticky Note5", "type": "n8n-nodes-base.stickyNote", "position": [-2040, -80], "parameters": {"color": 6, "width": 620, "height": 1040, "content": "# AI-Agent : Automated CV Resume Screening Evaluate Rating System\n\n## What is this for?\n### Let AI agent intelligently analyze and rate your Candidate's cv resumes based on your job description. This will help ensure a fast and accurate screening process.\n\n### The Screening AI automatically organizes resumes into appropriate folders, updates statuses and scores in your tracking system, and sends timely notifications\u2014saving you valuable time and effort. \n\n\n### Let AI Agent and automation handle the heavy lifting while you focus on making the best hiring decisions!\n\n\n```\n```\n\n## Prerequisite\n\n### Please follow official n8n integration document on how setup your gdrive,gmail,gdoc,gsheet credentials. \n\n \n```\n```\n\n## How it works?\n\n### Each time you place a new pdf resume in the 'Unfiltered' folder , you will automatically get screening results in the tracker for the candidate. \n\nThe AI agent will help notify email and do CV sorting into appropriate folder.\n\n "}, "typeVersion": 1}, {"id": "aa43af12-fae1-4a98-9cad-7859051baf48", "name": "Sticky Note6", "type": "n8n-nodes-base.stickyNote", "position": [-620, -60], "parameters": {"color": 2, "width": 260, "height": 400, "content": "## Add candidate CV Resume into folder\n "}, "typeVersion": 1}, {"id": "7ad2b8a9-3720-4713-a8dd-af8f6745f95d", "name": "Gdrive:Move-To-Reject-Folder", "type": "n8n-nodes-base.googleDriveTool", "position": [580, 120], "parameters": {"fileId": {"__rl": true, "mode": "id", "value": "={{ $('Google Drive - Resume CV File Created').item.json.id }}"}, "driveId": {"__rl": true, "mode": "list", "value": "My Drive", "cachedResultUrl": "https://drive.google.com/drive/my-drive", "cachedResultName": "My Drive"}, "folderId": {"__rl": true, "mode": "list", "value": "16BR7dhzd4-6i_kHYRStJd5UdqNWhpXKA", "cachedResultUrl": "https://drive.google.com/drive/folders/16BR7dhzd4-6i_kHYRStJd5UdqNWhpXKA", "cachedResultName": "REJECTED"}, "operation": "move", "descriptionType": "manual", "toolDescription": "GoogleDrive:MoveFileToReject\nUse this tool to move rejected candidate profile to reject folder\n "}, "credentials": {"googleDriveOAuth2Api": {"id": "i0k4QgJ8YgVPNgF7", "name": "Google Drive account"}}, "typeVersion": 3}, {"id": "921a0561-9733-47fe-a6ee-191abf30ac37", "name": "Gdrive:Move-To-KIV-Folder", "type": "n8n-nodes-base.googleDriveTool", "position": [800, 120], "parameters": {"fileId": {"__rl": true, "mode": "id", "value": "={{ $('Google Drive - Resume CV File Created').item.json.id }}"}, "driveId": {"__rl": true, "mode": "list", "value": "My Drive", "cachedResultUrl": "https://drive.google.com/drive/my-drive", "cachedResultName": "My Drive"}, "folderId": {"__rl": true, "mode": "list", "value": "1KLfykacUhwtO0-wgYs6WsrcxbCHHKJ7o", "cachedResultUrl": "https://drive.google.com/drive/folders/1KLfykacUhwtO0-wgYs6WsrcxbCHHKJ7o", "cachedResultName": "KIV"}, "operation": "move", "descriptionType": "manual", "toolDescription": "GoogleDrive:MoveFileToKIV\nUse this tool to move KIV candidate profile to KIV folder"}, "credentials": {"googleDriveOAuth2Api": {"id": "i0k4QgJ8YgVPNgF7", "name": "Google Drive account"}}, "typeVersion": 3}, {"id": "0b32131c-3811-406f-a50d-875750781906", "name": "Gdrive:Move-To-Shortlisted-Folder", "type": "n8n-nodes-base.googleDriveTool", "position": [1000, 120], "parameters": {"fileId": {"__rl": true, "mode": "id", "value": "={{ $('Google Drive - Resume CV File Created').item.json.id }}"}, "driveId": {"__rl": true, "mode": "list", "value": "My Drive", "cachedResultUrl": "https://drive.google.com/drive/my-drive", "cachedResultName": "My Drive"}, "folderId": {"__rl": true, "mode": "list", "value": "1m8vrejmyPWpGsjJc6amnWfSXBRESlpfO", "cachedResultUrl": "https://drive.google.com/drive/folders/1m8vrejmyPWpGsjJc6amnWfSXBRESlpfO", "cachedResultName": "SHORTLISTED"}, "operation": "move", "descriptionType": "manual", "toolDescription": "GoogleDrive:MoveFileToShortlisted\nUse this tool to move  Shortlisted candidate profile to Shortlisted folder"}, "credentials": {"googleDriveOAuth2Api": {"id": "i0k4QgJ8YgVPNgF7", "name": "Google Drive account"}}, "typeVersion": 3}, {"id": "98a656c7-bb17-4808-abf8-ef4e23716b60", "name": "Gsheet: Update Candidate Tracker", "type": "n8n-nodes-base.googleSheetsTool", "position": [1340, 120], "parameters": {"columns": {"value": {"AI Score": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('AI_Score', ``, 'string') }}", "AI Reason": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('AI_Reason', ``, 'string') }}", "AI Verdict": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('AI_Verdict', ``, 'string') }}", "Candidate Name": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Candidate_Name__using_to_match_', ``, 'string') }}"}, "schema": [{"id": "Candidate Name", "type": "string", "display": true, "removed": false, "required": false, "displayName": "Candidate Name", "defaultMatch": false, "canBeUsedToMatch": true}, {"id": "Current Role", "type": "string", "display": true, "removed": true, "required": false, "displayName": "Current Role", "defaultMatch": false, "canBeUsedToMatch": true}, {"id": "Role Scope", "type": "string", "display": true, "removed": true, "required": false, "displayName": "Role Scope", "defaultMatch": false, "canBeUsedToMatch": true}, {"id": "AI Score", "type": "string", "display": true, "removed": false, "required": false, "displayName": "AI Score", "defaultMatch": false, "canBeUsedToMatch": true}, {"id": "AI Verdict", "type": "string", "display": true, "required": false, "displayName": "AI Verdict", "defaultMatch": false, "canBeUsedToMatch": true}, {"id": "AI Reason", "type": "string", "display": true, "required": false, "displayName": "AI Reason", "defaultMatch": false, "canBeUsedToMatch": true}, {"id": "Status", "type": "string", "display": true, "removed": true, "required": false, "displayName": "Status", "defaultMatch": false, "canBeUsedToMatch": true}, {"id": "Referral", "type": "string", "display": true, "removed": true, "required": false, "displayName": "Referral", "defaultMatch": false, "canBeUsedToMatch": true}, {"id": "Due date", "type": "string", "display": true, "removed": true, "required": false, "displayName": "Due date", "defaultMatch": false, "canBeUsedToMatch": true}, {"id": "Notes", "type": "string", "display": true, "removed": true, "required": false, "displayName": "Notes", "defaultMatch": false, "canBeUsedToMatch": true}, {"id": "Human verdict", "type": "string", "display": true, "removed": true, "required": false, "displayName": "Human verdict", "defaultMatch": false, "canBeUsedToMatch": true}], "mappingMode": "defineBelow", "matchingColumns": ["Candidate Name"], "attemptToConvertTypes": false, "convertFieldsToString": false}, "options": {}, "operation": "appendOrUpdate", "sheetName": {"__rl": true, "mode": "list", "value": 843593464, "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1SwnbH_dnqPMho7SqX1LKAjFMc0YvLBGok4I1AdgrJjE/edit#gid=843593464", "cachedResultName": "main"}, "documentId": {"__rl": true, "mode": "list", "value": "1SwnbH_dnqPMho7SqX1LKAjFMc0YvLBGok4I1AdgrJjE", "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1SwnbH_dnqPMho7SqX1LKAjFMc0YvLBGok4I1AdgrJjE/edit?usp=drivesdk", "cachedResultName": "ResumeScreening- Candidate Tracker"}, "descriptionType": "manual", "toolDescription": "Gsheet:UpdateTracker\nThis tool help update relevant candidate status"}, "credentials": {"googleSheetsOAuth2Api": {"id": "fqYZ5O9pQ89v3SAp", "name": "Google Sheets account"}}, "typeVersion": 4.5}, {"id": "c9eb92a0-f3bc-4226-835e-602a2f808e4c", "name": "Sticky Note7", "type": "n8n-nodes-base.stickyNote", "position": [-1340, -80], "parameters": {"color": 6, "width": 600, "height": 1300, "content": "\n## Folder & File Setup\n### 1. Create a google-drive folder like this\n \n[View directory example](https://drive.google.com/drive/folders/1Uh7VdJORE03YBJkCmvr1TXg_esbiNnTV?dmr=1&ec=wgc-drive-hero-goto)\n\n![Directory EXAMPLE](https://github.com/dragonjump/n8n-ai-agent-screening/blob/main/screenshot1.png?raw=true)\n\n### 2. Create a job description like this\n \n[View file example](https://docs.google.com/document/d/12dv1AXaotpJ3ST1nUI-QgCoi5SJjM52zeHmjhwZUtvs/edit?usp=drive_link)\n\n![Directory EXAMPLE](https://github.com/dragonjump/n8n-ai-agent-screening/blob/main/screenshot2.png?raw=true)\n\n\n### 3. Configure a tracker like this\n \n[View file example](https://docs.google.com/spreadsheets/d/1SwnbH_dnqPMho7SqX1LKAjFMc0YvLBGok4I1AdgrJjE/edit?gid=843593464#gid=843593464)\n\n![Directory EXAMPLE](https://github.com/dragonjump/n8n-ai-agent-screening/blob/main/screenshot3.png?raw=true)"}, "typeVersion": 1}, {"id": "e0d419d7-dcc1-40c5-afb1-5bda110e681c", "name": "Sticky Note8", "type": "n8n-nodes-base.stickyNote", "position": [-560, 20], "parameters": {"color": 7, "width": 150, "height": 80, "content": "UNFILTERED FOLDER"}, "typeVersion": 1}, {"id": "d9034b09-41f9-4f27-8d9d-e40f8603e1ea", "name": "Groq - llama 4 AI MODEL", "type": "@n8n/n8n-nodes-langchain.lmChatGroq", "position": [680, -200], "parameters": {"model": "meta-llama/llama-4-maverick-17b-128e-instruct", "options": {}}, "credentials": {"groqApi": {"id": "RBCtAUywXbI6hFmr", "name": "Groq account -bbflight"}}, "typeVersion": 1}], "active": true, "pinData": {}, "settings": {"executionOrder": "v1"}, "versionId": "adba9994-2c2e-40f2-9a73-8a57b48b3bc4", "connections": {"AI Agent": {"main": [[]]}, "Extract from File": {"main": [[{"node": "GDocs - Get Job Desc", "type": "main", "index": 0}]]}, "Gmail:Notification": {"ai_tool": [[{"node": "AI Agent", "type": "ai_tool", "index": 0}]]}, "GDocs - Get Job Desc": {"main": [[{"node": "AI Agent", "type": "main", "index": 0}]]}, "Groq - llama 4 AI MODEL": {"ai_languageModel": [[{"node": "AI Agent", "type": "ai_languageModel", "index": 0}]]}, "Gdrive:Move-To-KIV-Folder": {"ai_tool": [[{"node": "AI Agent", "type": "ai_tool", "index": 0}]]}, "Gdrive:Move-To-Reject-Folder": {"ai_tool": [[{"node": "AI Agent", "type": "ai_tool", "index": 0}]]}, "Download Resume File From Gdrive": {"main": [[{"node": "Extract from File", "type": "main", "index": 0}]]}, "Gsheet: Update Candidate Tracker": {"ai_tool": [[{"node": "AI Agent", "type": "ai_tool", "index": 0}]]}, "Gdrive:Move-To-Shortlisted-Folder": {"ai_tool": [[{"node": "AI Agent", "type": "ai_tool", "index": 0}]]}, "Google Drive - Resume CV File Created": {"main": [[{"node": "Download Resume File From Gdrive", "type": "main", "index": 0}]]}}}