{"id":"2ddwHvuidKc6lZia","meta":{"instanceId":"workflow-4a0ccb43","versionId":"1.0.0","createdAt":"2025-09-29T07:07:45.361424","updatedAt":"2025-09-29T07:07:45.361439","owner":"n8n-user","license":"MIT","category":"automation","status":"active","priority":"high","environment":"production"},"name":"AI Agent - Cv Resume - Automated Screening , Sorting , Rating and Tracker System","nodes":[{"id":"92b75a8f-da03-4545-91ef-da29b88f1cef","name":"GDocs - Get Job Desc","type":"n8n-nodes-base.googleDocs","position":[220,120],"parameters":{"operation":"get","documentURL":"{{ $env.WEBHOOK_URL }}"},"credentials":{"googleDocsOAuth2Api":{"id":"k7j5KUAvAzARmxTu","name":"Google Docs account"}},"typeVersion":2,"notes":"This googleDocs node performs automated tasks as part of the workflow."},{"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":"{{ $env.WEBHOOK_URL }}","cachedResultName":"Unfiltered"}},"credentials":{"googleDriveOAuth2Api":{"id":"i0k4QgJ8YgVPNgF7","name":"Google Drive account"}},"typeVersion":1,"notes":"This googleDriveTrigger node performs automated tasks as part of the workflow."},{"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,"notes":"This googleDrive node performs automated tasks as part of the workflow."},{"id":"367d4e61-a73c-4e47-bd73-690b2a63e0ae","name":"AI Agent","type":"n8n-nodes-base.noOp","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,"notes":"This agent node performs automated tasks as part of the workflow."},{"id":"f2a16cf3-0404-4791-b7d4-64f1909e02c2","name":"Extract from File","type":"n8n-nodes-base.extractFromFile","position":[-40,120],"parameters":{"options":{},"operation":"pdf"},"typeVersion":1,"notes":"This extractFromFile node performs automated tasks as part of the workflow."},{"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,"notes":"This gmailTool node performs automated tasks as part of the workflow."},{"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,"notes":"This stickyNote node performs automated tasks as part of the workflow."},{"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,"notes":"This stickyNote node performs automated tasks as part of the workflow."},{"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,"notes":"This stickyNote node performs automated tasks as part of the workflow."},{"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,"notes":"This stickyNote node performs automated tasks as part of the workflow."},{"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,"notes":"This stickyNote node performs automated tasks as part of the workflow."},{"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—saving 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,"notes":"This stickyNote node performs automated tasks as part of the workflow."},{"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,"notes":"This stickyNote node performs automated tasks as part of the workflow."},{"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":"{{ $env.WEBHOOK_URL }}","cachedResultName":"My Drive"},"folderId":{"__rl":true,"mode":"list","value":"16BR7dhzd4-6i_kHYRStJd5UdqNWhpXKA","cachedResultUrl":"{{ $env.WEBHOOK_URL }}","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,"notes":"This googleDriveTool node performs automated tasks as part of the workflow."},{"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":"{{ $env.WEBHOOK_URL }}","cachedResultName":"My Drive"},"folderId":{"__rl":true,"mode":"list","value":"1KLfykacUhwtO0-wgYs6WsrcxbCHHKJ7o","cachedResultUrl":"{{ $env.WEBHOOK_URL }}","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,"notes":"This googleDriveTool node performs automated tasks as part of the workflow."},{"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":"{{ $env.WEBHOOK_URL }}","cachedResultName":"My Drive"},"folderId":{"__rl":true,"mode":"list","value":"1m8vrejmyPWpGsjJc6amnWfSXBRESlpfO","cachedResultUrl":"{{ $env.WEBHOOK_URL }}","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,"notes":"This googleDriveTool node performs automated tasks as part of the workflow."},{"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":"{{ $env.WEBHOOK_URL }}","cachedResultName":"main"},"documentId":{"__rl":true,"mode":"list","value":"1SwnbH_dnqPMho7SqX1LKAjFMc0YvLBGok4I1AdgrJjE","cachedResultUrl":"{{ $env.WEBHOOK_URL }}","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,"notes":"This googleSheetsTool node performs automated tasks as part of the workflow."},{"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]({{ $env.WEBHOOK_URL }}\n\n![Directory EXAMPLE]({{ $env.WEBHOOK_URL }}\n\n### 2. Create a job description like this\n \n[View file example]({{ $env.WEBHOOK_URL }}\n\n![Directory EXAMPLE]({{ $env.WEBHOOK_URL }}\n\n\n### 3. Configure a tracker like this\n \n[View file example]({{ $env.WEBHOOK_URL }}\n\n![Directory EXAMPLE]({{ $env.WEBHOOK_URL }}"},"typeVersion":1,"notes":"This stickyNote node performs automated tasks as part of the workflow."},{"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,"notes":"This stickyNote node performs automated tasks as part of the workflow."},{"id":"d9034b09-41f9-4f27-8d9d-e40f8603e1ea","name":"Groq - llama 4 AI MODEL","type":"n8n-nodes-base.noOp","position":[680,-200],"parameters":{"model":"meta-llama/llama-4-maverick-17b-128e-instruct","options":{}},"credentials":{"groqApi":{"id":"RBCtAUywXbI6hFmr","name":"Groq account -bbflight"}},"typeVersion":1,"notes":"This lmChatGroq node performs automated tasks as part of the workflow."},{"id":"error-cb3c33c4","name":"Error Handler","type":"n8n-nodes-base.stopAndError","typeVersion":1,"position":[1000,400],"parameters":{"message":"Workflow execution error","options":{}}}],"active":true,"settings":{"executionOrder":"v1","saveManualExecutions":true,"callerPolicy":"workflowsFromSameOwner","errorWorkflow":null,"timezone":"UTC","executionTimeout":3600,"maxExecutions":1000,"retryOnFail":true,"retryCount":3,"retryDelay":1000},"versionId":"adba9994-2c2e-40f2-9a73-8a57b48b3bc4","connections":{"GDocs - Get Job Desc":{"main":[[]]},"Google Drive - Resume CV File Created":{"main":[[]]},"Download Resume File From Gdrive":{"main":[[]]},"Extract from File":{"main":[[]]},"Gdrive:Move-To-Reject-Folder":{"main":[[]]},"Gdrive:Move-To-KIV-Folder":{"main":[[]]},"Gdrive:Move-To-Shortlisted-Folder":{"main":[[]]},"Gsheet: Update Candidate Tracker":{"main":[[]]}},"description":"Automated workflow: AI Agent - Cv Resume - Automated Screening , Sorting , Rating and Tracker System. This workflow integrates 11 different services: stickyNote, googleDriveTrigger, googleDriveTool, gmailTool, agent. It contains 28 nodes and follows best practices for error handling and security.","notes":"Excellent quality workflow: AI Agent - Cv Resume - Automated Screening , Sorting , Rating and Tracker System. This workflow has been optimized for production use with comprehensive error handling, security, and documentation."}