This workflow corresponds to n8n.io template #4106 β we link there as the canonical source.
This workflow follows the Chainllm β 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 β
{
"id": "GtN4XdkLIPMBIqSU",
"name": "Resume-Information-Extractor",
"tags": [],
"nodes": [
{
"id": "76cdbf85-39be-4617-8215-10d728f281eb",
"name": "Gmail Trigger",
"type": "n8n-nodes-base.gmailTrigger",
"position": [
80,
80
],
"parameters": {
"simple": false,
"filters": {},
"options": {
"downloadAttachments": true
},
"pollTimes": {
"item": [
{
"mode": "everyMinute"
}
]
}
},
"typeVersion": 1.2
},
{
"id": "cd0204d2-07b5-4ca7-821a-4a69289f5af1",
"name": "Extract from File",
"type": "n8n-nodes-base.extractFromFile",
"position": [
560,
80
],
"parameters": {
"options": {},
"operation": "pdf",
"binaryPropertyName": "attachment_0"
},
"typeVersion": 1
},
{
"id": "4814f698-4598-4f07-8493-3ffa5d256847",
"name": "Edit Fields",
"type": "n8n-nodes-base.set",
"position": [
780,
80
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "b5b82b5d-ae4e-43d9-835b-13c9f86555e7",
"name": "text",
"type": "string",
"value": "={{ $json.text }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "7e5b3608-b081-4c1a-b349-9ab4fc2d0a1c",
"name": "Basic LLM Chain",
"type": "@n8n/n8n-nodes-langchain.chainLlm",
"position": [
1000,
80
],
"parameters": {
"text": "=You are an HR expert, you are given a detailed CV text \nextract \nName \nEmail \nTelephone \nExperience \nSkills \nEducation \nThis is the CV text: {{ $json.text }}",
"promptType": "define",
"hasOutputParser": true
},
"typeVersion": 1.6
},
{
"id": "04745a86-bf30-46e1-a8e0-b81bd88cf4fe",
"name": "OpenRouter Chat Model",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
"position": [
1000,
300
],
"parameters": {
"model": "meta-llama/llama-4-scout:free",
"options": {}
},
"typeVersion": 1
},
{
"id": "9410f9c8-5df8-4c57-9c50-8f54e14eb14e",
"name": "Structured Output Parser",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
1180,
300
],
"parameters": {
"jsonSchemaExample": "{ \n\"Name\": \"Firstname Lastname\", \n\"Telephone\": \"01788798797\", \n\"Email\": \"user@example.com\", \n\"Education\": [\"University 1\", \"University 2\"], \n\"Skill\": [\"Skill 1\", \"Skill 2\", \"Skill 3\"], \n\"Experience\": [\"Job 1\", \"job 2\", \"job 3\"] \n}"
},
"typeVersion": 1.2
},
{
"id": "4aeae52b-8d83-4b01-9731-931d49916afa",
"name": "HTTP Request",
"type": "n8n-nodes-base.httpRequest",
"position": [
1360,
80
],
"parameters": {
"url": "[supabase URL]",
"method": "POST",
"options": {},
"sendBody": true,
"sendHeaders": true,
"bodyParameters": {
"parameters": [
{
"name": "name",
"value": "={{ $json.output.Name }}"
},
{
"name": "telephone",
"value": "={{ $json.output.Telephone }}"
},
{
"name": "email",
"value": "={{ $json.output.Email }}"
}
]
},
"headerParameters": {
"parameters": [
{
"name": "apikey",
"value": "[key]"
},
{
"name": "Authorization",
"value": "Bearer [key]"
},
{
"name": "Prefer",
"value": "return=representation"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "b0df6998-5b82-44df-8cee-81db46b5cf00",
"name": "Supabase",
"type": "n8n-nodes-base.supabase",
"position": [
2000,
80
],
"parameters": {
"tableId": "experiences",
"fieldsUi": {
"fieldValues": [
{
"fieldId": "cv_id",
"fieldValue": "={{ $('HTTP Request').item.json.id }}"
},
{
"fieldId": "text",
"fieldValue": "={{ $json.Expr }}"
}
]
}
},
"typeVersion": 1
},
{
"id": "5f08115f-da1c-49e3-b9ee-799a0a051c1d",
"name": "Edit Fields1",
"type": "n8n-nodes-base.set",
"position": [
1580,
80
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "2bd4d4e4-2d0c-4310-b9f9-a7236ac58f74",
"name": "Expr",
"type": "array",
"value": "={{ $('Basic LLM Chain').item.json.output.Experience }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "cffc687f-5dbc-45b6-b5b6-328c567eb2d6",
"name": "Split Out",
"type": "n8n-nodes-base.splitOut",
"position": [
1800,
80
],
"parameters": {
"options": {},
"fieldToSplitOut": "Expr"
},
"typeVersion": 1
},
{
"id": "3e676d37-1f0c-4833-8108-62abc882bc1e",
"name": "Supabase1",
"type": "n8n-nodes-base.supabase",
"position": [
2000,
280
],
"parameters": {
"tableId": "skills",
"fieldsUi": {
"fieldValues": [
{
"fieldId": "cv_id",
"fieldValue": "={{ $('HTTP Request').item.json.id }}"
},
{
"fieldId": "text",
"fieldValue": "={{ $json.skill }}"
}
]
}
},
"typeVersion": 1
},
{
"id": "a6d6b1eb-26b5-4e0d-aee3-1f82c4aeb264",
"name": "Edit Fields2",
"type": "n8n-nodes-base.set",
"position": [
1580,
280
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "2bd4d4e4-2d0c-4310-b9f9-a7236ac58f74",
"name": "skill",
"type": "array",
"value": "={{ $('Basic LLM Chain').item.json.output.Skill }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "f93e92e1-5c0e-47dd-9b90-9482df23f4b3",
"name": "Split Out1",
"type": "n8n-nodes-base.splitOut",
"position": [
1800,
280
],
"parameters": {
"options": {},
"fieldToSplitOut": "skill"
},
"typeVersion": 1
},
{
"id": "e5f33b95-0b10-4fbf-96c4-9054d9c2f36f",
"name": "Supabase2",
"type": "n8n-nodes-base.supabase",
"position": [
2000,
500
],
"parameters": {
"tableId": "education",
"fieldsUi": {
"fieldValues": [
{
"fieldId": "cv_id",
"fieldValue": "={{ $('HTTP Request').item.json.id }}"
},
{
"fieldId": "text",
"fieldValue": "={{ $json.Educ }}"
}
]
}
},
"typeVersion": 1
},
{
"id": "fe182a17-f251-419a-a3e7-6601c1bda065",
"name": "Edit Fields3",
"type": "n8n-nodes-base.set",
"position": [
1580,
500
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "2bd4d4e4-2d0c-4310-b9f9-a7236ac58f74",
"name": "Educ",
"type": "array",
"value": "={{ $('Basic LLM Chain').item.json.output.Education }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "e947dd88-027c-4bfc-9c8b-289efe514679",
"name": "Split Out2",
"type": "n8n-nodes-base.splitOut",
"position": [
1800,
500
],
"parameters": {
"options": {},
"fieldToSplitOut": "Educ"
},
"typeVersion": 1
},
{
"id": "d90fd5f8-8b29-4c75-874c-cb2c783a924e",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
0,
0
],
"parameters": {
"height": 280,
"content": "## Email Trigger\n"
},
"typeVersion": 1
},
{
"id": "7465aa08-4604-4d0d-b36c-17aabba2dbe0",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
520,
0
],
"parameters": {
"color": 4,
"width": 400,
"height": 280,
"content": "## Prepare Data \n"
},
"typeVersion": 1
},
{
"id": "2a751d1c-1c1f-40dc-93e4-45195dc397dc",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
960,
0
],
"parameters": {
"color": 3,
"width": 360,
"height": 440,
"content": "## Extract Information \n"
},
"typeVersion": 1
},
{
"id": "0ff39e87-a016-4bb9-8c00-53178b2ad4bf",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
1340,
0
],
"parameters": {
"color": 6,
"width": 900,
"height": 680,
"content": "## Save Information\n"
},
"typeVersion": 1
},
{
"id": "6e367ac0-8191-4530-94b7-a6ab7582fbac",
"name": "If",
"type": "n8n-nodes-base.if",
"position": [
320,
80
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "0047fdcf-2c7b-4286-a54e-7018028dea1c",
"operator": {
"type": "string",
"operation": "exists",
"singleValue": true
},
"leftValue": "attachment_0",
"rightValue": ""
}
]
}
},
"typeVersion": 2.2
},
{
"id": "b7e60ceb-d556-4140-a5fb-6d86a798097f",
"name": "Sticky Note4",
"type": "n8n-nodes-base.stickyNote",
"position": [
260,
0
],
"parameters": {
"color": 5,
"height": 280,
"content": "## check if Attachment exists"
},
"typeVersion": 1
}
],
"active": false,
"settings": {
"executionOrder": "v1"
},
"versionId": "6c3db08e-b96b-4273-8e26-cceec49844a0",
"connections": {
"If": {
"main": [
[
{
"node": "Extract from File",
"type": "main",
"index": 0
}
]
]
},
"Split Out": {
"main": [
[
{
"node": "Supabase",
"type": "main",
"index": 0
}
]
]
},
"Split Out1": {
"main": [
[
{
"node": "Supabase1",
"type": "main",
"index": 0
}
]
]
},
"Split Out2": {
"main": [
[
{
"node": "Supabase2",
"type": "main",
"index": 0
}
]
]
},
"Edit Fields": {
"main": [
[
{
"node": "Basic LLM Chain",
"type": "main",
"index": 0
}
]
]
},
"Edit Fields1": {
"main": [
[
{
"node": "Split Out",
"type": "main",
"index": 0
}
]
]
},
"Edit Fields2": {
"main": [
[
{
"node": "Split Out1",
"type": "main",
"index": 0
}
]
]
},
"Edit Fields3": {
"main": [
[
{
"node": "Split Out2",
"type": "main",
"index": 0
}
]
]
},
"HTTP Request": {
"main": [
[
{
"node": "Edit Fields1",
"type": "main",
"index": 0
},
{
"node": "Edit Fields2",
"type": "main",
"index": 0
},
{
"node": "Edit Fields3",
"type": "main",
"index": 0
}
]
]
},
"Gmail Trigger": {
"main": [
[
{
"node": "If",
"type": "main",
"index": 0
}
]
]
},
"Basic LLM Chain": {
"main": [
[
{
"node": "HTTP Request",
"type": "main",
"index": 0
}
]
]
},
"Extract from File": {
"main": [
[
{
"node": "Edit Fields",
"type": "main",
"index": 0
}
]
]
},
"OpenRouter Chat Model": {
"ai_languageModel": [
[
{
"node": "Basic LLM Chain",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Structured Output Parser": {
"ai_outputParser": [
[
{
"node": "Basic LLM Chain",
"type": "ai_outputParser",
"index": 0
}
]
]
}
}
}
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
What Problem Does This Solve? π οΈ
Source: https://n8n.io/workflows/4106/ β 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.
Deep Research new (fr). Uses outputParserStructured, formTrigger, chainLlm, form. Event-driven trigger; 82 nodes.
My workflow 53. Uses formTrigger, httpRequest, lmChatOpenAi, form. Event-driven trigger; 74 nodes.
Episode 23: UGC with nanobanana. Uses lmChatOpenAi, lmChatOllama, lmChatDeepSeek, lmChatOpenRouter. Event-driven trigger; 74 nodes.
leads. Uses supabase, gmail, formTrigger, httpRequest. Webhook trigger; 62 nodes.
This intelligent workflow automatically discovers and analyzes recently funded startups by: Monitoring multiple news sources (TechCrunch and VentureBeat) for funding announcements Using AI to extract