This workflow corresponds to n8n.io template #4813 — we link there as the canonical source.
This workflow follows the Chainllm → Chainsummarization 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 →
{
"nodes": [
{
"id": "8a152592-2259-4884-92dc-6e23158bf58f",
"name": "On form submission",
"type": "n8n-nodes-base.formTrigger",
"position": [
280,
420
],
"parameters": {},
"typeVersion": 2.2
},
{
"id": "eda2a030-df56-4989-9986-2d6837b71c78",
"name": "Extract from File",
"type": "n8n-nodes-base.extractFromFile",
"position": [
680,
420
],
"parameters": {},
"typeVersion": 1
},
{
"id": "6a848708-0a9b-4bbf-bcf7-4f7195e6196d",
"name": "Structured Output Parser",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
2960,
560
],
"parameters": {},
"typeVersion": 1.2
},
{
"id": "da721ba9-e799-4eb0-8d5f-d65eec959cbe",
"name": "Upload CV",
"type": "n8n-nodes-base.googleDrive",
"position": [
680,
220
],
"parameters": {},
"typeVersion": 3
},
{
"id": "f989cbb1-4eb8-4c77-ac03-5f5703afbc76",
"name": "OpenAI",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
1700,
780
],
"parameters": {},
"typeVersion": 1.2
},
{
"id": "e7b5b83c-042c-445c-869d-06d18aaba7d8",
"name": "Applicant's Details",
"type": "@n8n/n8n-nodes-langchain.informationExtractor",
"position": [
1320,
420
],
"parameters": {},
"typeVersion": 1
},
{
"id": "8a537b27-4418-406b-a204-04249295298a",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
0,
280
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "ca220bd7-6621-4920-b9ea-47ed338fd0e9",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
560,
0
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "8405dc04-3d99-45f0-a93b-2343e7ad5583",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
920,
240
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "e66f542e-2a8d-46ee-95df-aa2655b12be4",
"name": "Add Applicant's Details in Google Sheet",
"type": "n8n-nodes-base.googleSheets",
"position": [
1040,
420
],
"parameters": {},
"typeVersion": 4.5
},
{
"id": "d04a0c55-546d-41aa-91c5-c9fe0941981b",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
1280,
240
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "e90fc56b-7878-46f3-a079-e95dab695f9f",
"name": "Summarize Applicant's Profile",
"type": "@n8n/n8n-nodes-langchain.chainSummarization",
"position": [
1680,
420
],
"parameters": {},
"typeVersion": 2
},
{
"id": "d9c3773a-daa4-4f71-970d-d4d7ea2ddbf3",
"name": "Sticky Note4",
"type": "n8n-nodes-base.stickyNote",
"position": [
1640,
240
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "22b9732c-82b9-4eba-b195-62fd08744cce",
"name": "Get Job Description from Google Sheets",
"type": "n8n-nodes-base.googleSheets",
"position": [
2120,
420
],
"parameters": {},
"typeVersion": 4.5
},
{
"id": "664e0387-c69b-4f4a-a431-db2e9fc98d3f",
"name": "Sticky Note5",
"type": "n8n-nodes-base.stickyNote",
"position": [
2000,
240
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "e7dbb219-28da-40d4-806b-ff44be167cc4",
"name": "Sticky Note6",
"type": "n8n-nodes-base.stickyNote",
"position": [
2360,
240
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "ce417cff-854e-4e5b-8ff8-966f132fa07e",
"name": "Summarize Job Role Description",
"type": "@n8n/n8n-nodes-langchain.chainSummarization",
"position": [
2400,
420
],
"parameters": {},
"typeVersion": 2
},
{
"id": "3c684c15-bfc4-48ca-990f-c8bb12bb809a",
"name": "Semantic Fit & Evaluation by HR Expert",
"type": "@n8n/n8n-nodes-langchain.chainLlm",
"position": [
2760,
420
],
"parameters": {},
"typeVersion": 1.5
},
{
"id": "6940c4b0-b6b3-4e69-9203-a5c298ed77da",
"name": "Sticky Note7",
"type": "n8n-nodes-base.stickyNote",
"position": [
2720,
140
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "c43f554f-4d28-407e-aa32-164af6be244e",
"name": "Update Evaluation Results in Google Sheets",
"type": "n8n-nodes-base.googleSheets",
"position": [
2120,
900
],
"parameters": {},
"typeVersion": 4.5
},
{
"id": "bcde088b-7689-42e5-9cdc-7bedd070ccd8",
"name": "Sticky Note8",
"type": "n8n-nodes-base.stickyNote",
"position": [
2000,
720
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "4190f1dc-88f2-4b97-bc2d-3cbb94e687c4",
"name": "Sticky Note9",
"type": "n8n-nodes-base.stickyNote",
"position": [
2360,
720
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "0e84b074-633a-4b45-8150-c8e734adcdf6",
"name": "Notify TA for Approval via Email",
"type": "n8n-nodes-base.emailSend",
"position": [
2480,
900
],
"parameters": {},
"typeVersion": 2.1
},
{
"id": "73b71de6-ea39-456b-8c39-c4debef14f5f",
"name": "Approval Check - IF Condition",
"type": "n8n-nodes-base.if",
"position": [
2840,
900
],
"parameters": {},
"typeVersion": 2.2
},
{
"id": "aa7c8080-62a9-47e8-90e1-35594164ac7d",
"name": "Sticky Note10",
"type": "n8n-nodes-base.stickyNote",
"position": [
2720,
720
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "2c6d927f-d7e2-4a61-aef1-6f0eb0273792",
"name": "Sticky Note11",
"type": "n8n-nodes-base.stickyNote",
"position": [
3520,
320
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "2abddb6e-c726-4610-9cb4-3acf1f6e2b18",
"name": "Send Shortlist Email to Candidate",
"type": "n8n-nodes-base.emailSend",
"position": [
3620,
500
],
"parameters": {},
"typeVersion": 2.1
},
{
"id": "0adc3251-c510-4ec8-8cb3-38200ac9cfa8",
"name": "Send Rejection Email to Candidate",
"type": "n8n-nodes-base.emailSend",
"position": [
3620,
920
],
"parameters": {},
"typeVersion": 2.1
},
{
"id": "0eb1fa6a-f927-4dcf-90b6-82a5c75d09e5",
"name": "Sticky Note12",
"type": "n8n-nodes-base.stickyNote",
"position": [
3520,
740
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "f0f37e05-5b00-42bb-aa9d-80a1855791a6",
"name": "Sticky Note14",
"type": "n8n-nodes-base.stickyNote",
"position": [
3120,
300
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "72ba03a4-5dd8-4d42-b2f4-3adee73df626",
"name": "Update Applicant's Status as REJECTED",
"type": "n8n-nodes-base.googleSheets",
"position": [
3240,
920
],
"parameters": {},
"typeVersion": 4.5
},
{
"id": "81b96523-426f-4d78-bf48-ded4df362faa",
"name": "Sticky Note15",
"type": "n8n-nodes-base.stickyNote",
"position": [
3120,
740
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "cc11a04b-543d-44a7-9f24-31fe71307e2c",
"name": "Run Daily at 09:00 AM",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
100,
920
],
"parameters": {},
"typeVersion": 1.2
},
{
"id": "bd500d66-fb06-405e-b278-dc570d7f5da5",
"name": "Fetch Records with Status \"Resume Selected\"",
"type": "n8n-nodes-base.googleSheets",
"position": [
320,
920
],
"parameters": {},
"typeVersion": 4.5
},
{
"id": "c1c21c4b-03bc-49a9-a1a3-5bcf9d20931b",
"name": "Loop to Send Assessment Link to Each Candidate",
"type": "n8n-nodes-base.splitInBatches",
"position": [
580,
920
],
"parameters": {},
"typeVersion": 3
},
{
"id": "7037b68b-4b0b-447f-b51f-be8039995ed7",
"name": "Get Assessment Form URL",
"type": "n8n-nodes-base.googleSheets",
"position": [
880,
940
],
"parameters": {},
"typeVersion": 4.5
},
{
"id": "3e155bf1-b5eb-4c86-aa9b-5b7773be15eb",
"name": "Send Assessment Submission Email",
"type": "n8n-nodes-base.emailSend",
"position": [
1160,
940
],
"parameters": {},
"typeVersion": 2.1
},
{
"id": "585c6022-b645-480f-a2d9-99a114609fbc",
"name": "Update Status to Assessment Sent",
"type": "n8n-nodes-base.googleSheets",
"position": [
1440,
940
],
"parameters": {},
"typeVersion": 4.5
},
{
"id": "9930d8fd-a3fa-43a1-9a8c-1bef8876cb61",
"name": "Sticky Note17",
"type": "n8n-nodes-base.stickyNote",
"position": [
0,
720
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "7e40f8fa-df27-418e-9dc6-3cc73202feea",
"name": "Technical Support Engineer Assessment Trigger",
"type": "n8n-nodes-base.typeformTrigger",
"position": [
140,
1580
],
"parameters": {},
"typeVersion": 1.1
},
{
"id": "675b08ff-2a53-45fc-ba61-c21657b0d123",
"name": "Technical Project Manager Assessment Trigger",
"type": "n8n-nodes-base.typeformTrigger",
"position": [
140,
1360
],
"parameters": {},
"typeVersion": 1.1
},
{
"id": "c35f75d4-eac8-42b6-8a18-7e7643c4c51e",
"name": "Update Applicant Status to Assessment Submitted",
"type": "n8n-nodes-base.googleSheets",
"position": [
420,
1460
],
"parameters": {},
"typeVersion": 4.5
},
{
"id": "f32d787a-36b6-4cbf-aee1-1e7bc261092a",
"name": "Notify TA via Email for Assessment Submission",
"type": "n8n-nodes-base.emailSend",
"position": [
740,
1360
],
"parameters": {},
"typeVersion": 2.1
},
{
"id": "1dbd8726-60ad-4367-aa61-3dbdd1868cbf",
"name": "Notify TA via Slack for Assessment Submission",
"type": "n8n-nodes-base.slack",
"disabled": true,
"position": [
740,
1580
],
"parameters": {},
"typeVersion": 2.3
},
{
"id": "2ce49266-9987-4e2d-91ed-a8b570f44af2",
"name": "Trigger when Interview booked by applicant in calendly",
"type": "n8n-nodes-base.calendlyTrigger",
"position": [
560,
1880
],
"parameters": {},
"typeVersion": 1
},
{
"id": "1d27e489-0d47-4cb7-a4c6-6cc75f410302",
"name": "Update Status to Interview Booked",
"type": "n8n-nodes-base.googleSheets",
"position": [
780,
1880
],
"parameters": {},
"typeVersion": 4.6
},
{
"id": "cfe93e15-863b-447d-826c-3f319fec28ba",
"name": "Get Triggered when Applicant Status Update in Google Sheet",
"type": "n8n-nodes-base.googleSheetsTrigger",
"position": [
1240,
1720
],
"parameters": {},
"typeVersion": 1
},
{
"id": "5ff66e2e-c71d-48cc-bf66-df4d4c616569",
"name": "Route actions based on Status",
"type": "n8n-nodes-base.switch",
"position": [
1480,
1640
],
"parameters": {},
"typeVersion": 3.2
},
{
"id": "de0fac71-bf7f-4196-8126-d612805df08f",
"name": "Send Interview Invite Email",
"type": "n8n-nodes-base.emailSend",
"position": [
1860,
1360
],
"parameters": {},
"typeVersion": 2.1
},
{
"id": "74f4cffe-d362-4aa6-984a-67dca1479186",
"name": "Send Assessment Failed Email",
"type": "n8n-nodes-base.emailSend",
"position": [
2080,
1440
],
"parameters": {},
"typeVersion": 2.1
},
{
"id": "97383a17-8065-453c-8399-e8481a6608ac",
"name": "Send Interview Cancelled Email",
"type": "n8n-nodes-base.emailSend",
"position": [
2260,
1600
],
"parameters": {},
"typeVersion": 2.1
},
{
"id": "b2735319-d17a-4eed-9385-412a1df5725c",
"name": "Interview Reschedule Invite Email",
"type": "n8n-nodes-base.emailSend",
"position": [
2120,
1740
],
"parameters": {},
"typeVersion": 2.1
},
{
"id": "c343af76-bf0c-436d-9d07-06a2049b99fe",
"name": "Send Interview Passed/Shortlisted Email",
"type": "n8n-nodes-base.emailSend",
"position": [
1980,
1860
],
"parameters": {},
"typeVersion": 2.1
},
{
"id": "9fac2c36-bcec-4a40-a68e-0d359fa1ebf8",
"name": "Send Interview Failed Email",
"type": "n8n-nodes-base.emailSend",
"position": [
1800,
1960
],
"parameters": {},
"typeVersion": 2.1
},
{
"id": "5fb01de0-215b-4d6f-ab4a-b7414c5ad24c",
"name": "No Operation, do nothing",
"type": "n8n-nodes-base.noOp",
"position": [
880,
780
],
"parameters": {},
"typeVersion": 1
},
{
"id": "1e5241e3-cc08-487d-a82d-b8005fb73091",
"name": "Sticky Note16",
"type": "n8n-nodes-base.stickyNote",
"position": [
0,
1200
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "6ed12099-5d4d-41d5-884d-c1e3723e877c",
"name": "Sticky Note18",
"type": "n8n-nodes-base.stickyNote",
"position": [
140,
1840
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "636939ce-caef-4a1c-918b-5dffd681b941",
"name": "Sticky Note19",
"type": "n8n-nodes-base.stickyNote",
"position": [
1060,
1200
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "e6227def-3091-4b16-a573-dbe12a02d68a",
"name": "Sticky Note20",
"type": "n8n-nodes-base.stickyNote",
"position": [
-560,
140
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "fc0eabbb-0cfe-49fd-9fef-ff6d6afd4681",
"name": "Update Applicant's Status as RESUME SELECTED",
"type": "n8n-nodes-base.googleSheets",
"position": [
3240,
500
],
"parameters": {},
"typeVersion": 4.5
}
],
"connections": {
"OpenAI": {
"ai_languageModel": [
[
{
"node": "Applicant's Details",
"type": "ai_languageModel",
"index": 0
},
{
"node": "Summarize Applicant's Profile",
"type": "ai_languageModel",
"index": 0
},
{
"node": "Semantic Fit & Evaluation by HR Expert",
"type": "ai_languageModel",
"index": 0
},
{
"node": "Summarize Job Role Description",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Extract from File": {
"main": [
[
{
"node": "Add Applicant's Details in Google Sheet",
"type": "main",
"index": 0
}
]
]
},
"On form submission": {
"main": [
[
{
"node": "Upload CV",
"type": "main",
"index": 0
},
{
"node": "Extract from File",
"type": "main",
"index": 0
}
]
]
},
"Applicant's Details": {
"main": [
[
{
"node": "Summarize Applicant's Profile",
"type": "main",
"index": 0
}
]
]
},
"Run Daily at 09:00 AM": {
"main": [
[
{
"node": "Fetch Records with Status \"Resume Selected\"",
"type": "main",
"index": 0
}
]
]
},
"Get Assessment Form URL": {
"main": [
[
{
"node": "Send Assessment Submission Email",
"type": "main",
"index": 0
}
]
]
},
"Structured Output Parser": {
"ai_outputParser": [
[
{
"node": "Semantic Fit & Evaluation by HR Expert",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"Approval Check - IF Condition": {
"main": [
[
{
"node": "Update Applicant's Status as RESUME SELECTED",
"type": "main",
"index": 0
}
],
[
{
"node": "Update Applicant's Status as REJECTED",
"type": "main",
"index": 0
}
]
]
},
"Route actions based on Status": {
"main": [
[
{
"node": "Send Interview Invite Email",
"type": "main",
"index": 0
}
],
[
{
"node": "Send Assessment Failed Email",
"type": "main",
"index": 0
}
],
[],
[
{
"node": "Send Interview Cancelled Email",
"type": "main",
"index": 0
}
],
[
{
"node": "Interview Reschedule Invite Email",
"type": "main",
"index": 0
}
],
[
{
"node": "Send Interview Passed/Shortlisted Email",
"type": "main",
"index": 0
}
],
[
{
"node": "Send Interview Failed Email",
"type": "main",
"index": 0
}
]
]
},
"Summarize Applicant's Profile": {
"main": [
[
{
"node": "Get Job Description from Google Sheets",
"type": "main",
"index": 0
}
]
]
},
"Summarize Job Role Description": {
"main": [
[
{
"node": "Semantic Fit & Evaluation by HR Expert",
"type": "main",
"index": 0
}
]
]
},
"Notify TA for Approval via Email": {
"main": [
[
{
"node": "Approval Check - IF Condition",
"type": "main",
"index": 0
}
]
]
},
"Send Assessment Submission Email": {
"main": [
[
{
"node": "Update Status to Assessment Sent",
"type": "main",
"index": 0
}
]
]
},
"Update Status to Assessment Sent": {
"main": [
[
{
"node": "Loop to Send Assessment Link to Each Candidate",
"type": "main",
"index": 0
}
]
]
},
"Update Applicant's Status as REJECTED": {
"main": [
[
{
"node": "Send Rejection Email to Candidate",
"type": "main",
"index": 0
}
]
]
},
"Get Job Description from Google Sheets": {
"main": [
[
{
"node": "Summarize Job Role Description",
"type": "main",
"index": 0
}
]
]
},
"Semantic Fit & Evaluation by HR Expert": {
"main": [
[
{
"node": "Update Evaluation Results in Google Sheets",
"type": "main",
"index": 0
}
]
]
},
"Add Applicant's Details in Google Sheet": {
"main": [
[
{
"node": "Applicant's Details",
"type": "main",
"index": 0
}
]
]
},
"Update Evaluation Results in Google Sheets": {
"main": [
[
{
"node": "Notify TA for Approval via Email",
"type": "main",
"index": 0
}
]
]
},
"Fetch Records with Status \"Resume Selected\"": {
"main": [
[
{
"node": "Loop to Send Assessment Link to Each Candidate",
"type": "main",
"index": 0
}
]
]
},
"Technical Project Manager Assessment Trigger": {
"main": [
[
{
"node": "Update Applicant Status to Assessment Submitted",
"type": "main",
"index": 0
}
]
]
},
"Update Applicant's Status as RESUME SELECTED": {
"main": [
[
{
"node": "Send Shortlist Email to Candidate",
"type": "main",
"index": 0
}
]
]
},
"Technical Support Engineer Assessment Trigger": {
"main": [
[
{
"node": "Update Applicant Status to Assessment Submitted",
"type": "main",
"index": 0
}
]
]
},
"Loop to Send Assessment Link to Each Candidate": {
"main": [
[
{
"node": "No Operation, do nothing",
"type": "main",
"index": 0
}
],
[
{
"node": "Get Assessment Form URL",
"type": "main",
"index": 0
}
]
]
},
"Update Applicant Status to Assessment Submitted": {
"main": [
[
{
"node": "Notify TA via Email for Assessment Submission",
"type": "main",
"index": 0
},
{
"node": "Notify TA via Slack for Assessment Submission",
"type": "main",
"index": 0
}
]
]
},
"Trigger when Interview booked by applicant in calendly": {
"main": [
[
{
"node": "Update Status to Interview Booked",
"type": "main",
"index": 0
}
]
]
},
"Get Triggered when Applicant Status Update in Google Sheet": {
"main": [
[
{
"node": "Route actions based on Status",
"type": "main",
"index": 0
}
]
]
}
}
}
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
This end-to-end AI-powered recruitment automation workflow helps HR and talent acquisition teams automate the complete hiring pipeline—from resume intake and parsing to GPT-4-based evaluation, TA approvals, assessment delivery, and interview scheduling.
Source: https://n8n.io/workflows/4813/ — 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.
This workflow is perfect for graphic designers, creative agencies, marketing teams, or freelancers who regularly use AI-generated images in their projects. It's specifically beneficial for teams that
Streamline your recruitment process with AI-powered resume analysis that goes beyond keyword matching.
[](https://www.youtube.com/watch?v=MD1krFvVKdU) Automatically extract, evaluate, and shortlist multiple resumes against a selected job description using GPT-4. This smart, scalable n8n workflow helps
This template is ideal for HR teams, recruiters, staffing agencies, and tech-enabled hiring managers looking to automate the intake, analysis, and shortlisting of job applicants directly from CV submi