💥 Flujo de trabajo de RRHH impulsado por IA: Análisis y evaluación de CVs de Gmail a Sheets - Video
Este es unHR, AI Summarizationflujo de automatización del dominio deautomatización que contiene 18 nodos.Utiliza principalmente nodos como Switch, GmailTool, GoogleDrive, GmailTrigger, GoogleSheets. Automatización de cribado de CVs con GPT-4o-mini: Sistema de evaluación de RRHH de Gmail a Google Sheets
- •Cuenta de Google y credenciales de API de Gmail
- •Credenciales de API de Google Drive
- •Credenciales de API de Google Sheets
- •Clave de API de OpenAI
Nodos utilizados (18)
Categoría
{
"id": "z7quMO0WgEu3Kkyv",
"meta": {
"instanceId": "a2b23892dd6989fda7c1209b381f5850373a7d2b85609624d7c2b7a092671d44",
"templateCredsSetupCompleted": true
},
"name": "💥 AI-Powered HR Workflow: CV Analysis and Evaluation from Gmail to Sheets - vide",
"tags": [],
"nodes": [
{
"id": "2ebf8f4d-1000-4c40-8d5f-e31fa0ada941",
"name": "Nota adhesiva",
"type": "n8n-nodes-base.stickyNote",
"position": [
2540,
-240
],
"parameters": {
"width": 920,
"height": 400,
"content": "# 🟡 Step 1 — Detect and Process New CV from Email"
},
"typeVersion": 1
},
{
"id": "175a65ff-d1c4-404e-bab1-7805123a0ce9",
"name": "Nota adhesiva1",
"type": "n8n-nodes-base.stickyNote",
"position": [
2540,
200
],
"parameters": {
"color": 3,
"width": 920,
"height": 500,
"content": "# 🔴 Step 2 — Extract and Store Candidate Data\n"
},
"typeVersion": 1
},
{
"id": "1061bc84-9cb8-4391-a057-04e7d1aac10e",
"name": "Nota adhesiva2",
"type": "n8n-nodes-base.stickyNote",
"position": [
3520,
200
],
"parameters": {
"color": 6,
"width": 920,
"height": 500,
"content": "# 🟣 Step 3 — Evaluate and Qualify the Candidate\n"
},
"typeVersion": 1
},
{
"id": "a6395a4c-3c06-4175-8927-3f80bde21bcc",
"name": "Nota adhesiva3",
"type": "n8n-nodes-base.stickyNote",
"position": [
3520,
-240
],
"parameters": {
"width": 920,
"height": 400,
"content": " ## AI-Powered HR Workflow: CV Analysis and Evaluation from Gmail to Sheets\n\n### 📋 Before you get started, make sure you have:\n\n- ✅ [n8n installed](https://www.hostg.xyz/SHHOJ) *(self-hosted required for Gmail + OpenAI + Google integrations)*\n- ✅ [OpenAI API Key](https://platform.openai.com/api-keys)\n- ✅ [Google Sheets API enabled](https://console.cloud.google.com/apis/api/sheets.googleapis.com/overview) in Google Cloud Console\n- ✅ [Google Drive API enabled](https://console.cloud.google.com/apis/api/drive.googleapis.com/overview) in Google Cloud Console\n- ✅ [OAuth 2.0 Client ID and Secret](https://console.cloud.google.com/apis/credentials) created in Google Cloud (required for Gmail, Drive, and Sheets nodes)\n\n> Make sure you’ve authorized n8n to access these services using the credentials above before running the workflow.\n"
},
"typeVersion": 1
},
{
"id": "3575cc8d-18b8-436d-a026-b022814fbd3d",
"name": "Gmail: Watch for new CV",
"type": "n8n-nodes-base.gmailTrigger",
"position": [
2640,
-140
],
"parameters": {
"simple": false,
"filters": {
"q": "has:attachment",
"labelIds": [
"UNREAD"
],
"readStatus": "unread"
},
"options": {
"downloadAttachments": true
},
"pollTimes": {
"item": [
{
"mode": "everyHour",
"minute": 1
}
]
}
},
"credentials": {
"gmailOAuth2": {
"id": "rKxQHWZ2F5XLJmwF",
"name": "Gmail account"
}
},
"typeVersion": 1.2
},
{
"id": "e1d682f8-9723-4dd6-ad45-e8959a273d32",
"name": "Clasificar tipo de correo",
"type": "@n8n/n8n-nodes-langchain.textClassifier",
"position": [
2860,
-140
],
"parameters": {
"options": {
"systemPromptTemplate": "Classify the user's text into one of the following categories: {categories}.\nFollow the formatting instructions provided below exactly.\nDo not include any explanation — output only the final JSON result."
},
"inputText": "={{ $json.text }}",
"categories": {
"categories": [
{
"category": "Doesn't apply",
"description": "The candidate is not a job application"
},
{
"category": "Apply",
"description": "This is a job application submitted by a candidate applying for a position at our organization, included as an attached file."
}
]
}
},
"typeVersion": 1
},
{
"id": "5f241a19-c30a-4cc4-a2c0-7e9d97711c78",
"name": "OpenAI Model – Email Classifier",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
2860,
20
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4o-mini"
},
"options": {}
},
"credentials": {
"openAiApi": {
"id": "6h3DfVhNPw9I25nO",
"name": "OpenAi account"
}
},
"typeVersion": 1.2
},
{
"id": "848188ac-52fa-43b7-953f-b2cd45c727f1",
"name": "Saltar (si no es una solicitud de empleo)",
"type": "n8n-nodes-base.noOp",
"position": [
3280,
-140
],
"parameters": {},
"typeVersion": 1
},
{
"id": "fe0e8d5c-e3f6-4098-891b-0fb3594b71c8",
"name": "Extraer texto del CV (PDF)",
"type": "n8n-nodes-base.extractFromFile",
"position": [
2900,
520
],
"parameters": {
"options": {},
"operation": "pdf",
"binaryPropertyName": "attachment_0"
},
"typeVersion": 1
},
{
"id": "49107c53-eb76-4082-9d52-88d3fc391153",
"name": "Guardar CV en Google Drive",
"type": "n8n-nodes-base.googleDrive",
"position": [
2900,
300
],
"parameters": {
"name": "={{ $('Gmail: Watch for new CV').item.json.from.value[0].address }}",
"driveId": {
"__rl": true,
"mode": "list",
"value": "My Drive",
"cachedResultUrl": "https://drive.google.com/drive/my-drive",
"cachedResultName": "My Drive"
},
"options": {},
"folderId": {
"__rl": true,
"mode": "list",
"value": "1G0KjVS_NAnqbqzYlV93KpX3498G5J8b1",
"cachedResultUrl": "https://drive.google.com/drive/folders/1G0KjVS_NAnqbqzYlV93KpX3498G5J8b1",
"cachedResultName": "CV - HR"
},
"inputDataFieldName": "=attachment_0"
},
"credentials": {
"googleDriveOAuth2Api": {
"id": "gzeHMd64HAz6HBIe",
"name": "Google Drive account"
}
},
"typeVersion": 3
},
{
"id": "b5d472bf-4acf-4e86-aeb7-5d1604ded5ff",
"name": "Recuperar detalles de la oferta de trabajo (Google Sheets)",
"type": "n8n-nodes-base.googleSheets",
"position": [
3280,
520
],
"parameters": {
"options": {},
"sheetName": {
"__rl": true,
"mode": "id",
"value": "="
},
"documentId": {
"__rl": true,
"mode": "id",
"value": "="
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "51us92xkOlrvArhV",
"name": "Google Sheets account"
}
},
"typeVersion": 4.6,
"alwaysOutputData": true
},
{
"id": "9b09d2ba-7669-4f64-8a77-ee5ff5280d72",
"name": "Agente de IA: Puntuar CV",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
3620,
300
],
"parameters": {
"text": "=Here is the resume:\n{{ $('Extract Resume Text (PDF)').item.json.text }}\n\nAnalyze the current information from the received candidate and score between 0 to 10 the said candidate, 0 meaning not a good fit for the position, 10 being outstanding for the job.\n\nJob Tile : {{ $json['Title offer'] }}\nJob Description: {{ $json.Description }}\n\nReply by Email : \nSend a reply to the candidate to confirm that we have received their application and that we will get back to them as soon as possible.",
"options": {
"systemMessage": "=You are an invaluable assistant. You were given a resume. You have to help me analyze the resume and give it a score based on the details available in the resume. Also, extract the name, email, phone, location and LinkedIn profile from the resume.\n\nReply by Email : \nSend a reply to the candidate to confirm that we have received their application and that we will get back to them as soon as possible."
},
"promptType": "define",
"hasOutputParser": true
},
"typeVersion": 1.8
},
{
"id": "85edf215-bfa3-4b93-8f4f-7cede1132797",
"name": "OpenAI Model – Resume Scoring",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
3580,
540
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "o4-mini",
"cachedResultName": "o4-mini"
},
"options": {}
},
"credentials": {
"openAiApi": {
"id": "6h3DfVhNPw9I25nO",
"name": "OpenAi account"
}
},
"typeVersion": 1.2
},
{
"id": "90da624b-9653-444f-a36b-9bfe6df4922a",
"name": "Enviar correo de confirmación",
"type": "n8n-nodes-base.gmailTool",
"position": [
3760,
540
],
"webhookId": "b56651a5-a82e-4550-ae4e-ffea0304cd52",
"parameters": {
"sendTo": "={{ $('Gmail: Watch for new CV').item.json.from.value[0].address }}",
"message": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Message', ``, 'string') }}",
"options": {},
"subject": "Application Received"
},
"credentials": {
"gmailOAuth2": {
"id": "rKxQHWZ2F5XLJmwF",
"name": "Gmail account"
}
},
"typeVersion": 2.1
},
{
"id": "119808cc-82fb-43d2-931f-351f8e2e3267",
"name": "Analizar resultado de la evaluación del CV",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
3900,
540
],
"parameters": {
"schemaType": "manual",
"inputSchema": "{\n\t\"type\": \"object\",\n\t\"properties\": {\n\t\t\"name\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n \"email\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n \"linkedin\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n \"score\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n \"Phone\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n \"Location\": {\n\t\t\t\"type\": \"string\"\n\t\t}\n\t\t\n\t}\n}"
},
"typeVersion": 1.2
},
{
"id": "e9d2dfb0-0202-422c-a1f1-8d25a19bacc3",
"name": "Guardar puntuación en Google Sheets",
"type": "n8n-nodes-base.googleSheets",
"position": [
4120,
300
],
"parameters": {
"columns": {
"value": {
"Name": "={{ $json.output.name }}",
"Email": "={{ $('Gmail: Watch for new CV').item.json.from.value[0].address }}",
"Phone": "='{{ $json.output.Phone }}",
"Score": "={{ $json.output.score }}",
"LinkedIn": "={{ $json.output.linkedin }}",
"Location": "={{ $json.output.Location }}",
"Resume text": "={{ $('Extract Resume Text (PDF)').item.json.text }}"
},
"schema": [
{
"id": "Name",
"type": "string",
"display": true,
"required": false,
"displayName": "Name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Email",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Email",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "LinkedIn",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "LinkedIn",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Phone",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Phone",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Location",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Location",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Score",
"type": "string",
"display": true,
"required": false,
"displayName": "Score",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Resume text",
"type": "string",
"display": true,
"required": false,
"displayName": "Resume text",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Link CV",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "Link CV",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"Email"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {
"useAppend": true
},
"operation": "appendOrUpdate",
"sheetName": {
"__rl": true,
"mode": "id",
"value": "="
},
"documentId": {
"__rl": true,
"mode": "id",
"value": "="
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "51us92xkOlrvArhV",
"name": "Google Sheets account"
}
},
"typeVersion": 4.5
},
{
"id": "c931b4a0-a1a4-4c59-85b8-9099064a74d0",
"name": "Switch",
"type": "n8n-nodes-base.switch",
"position": [
2640,
400
],
"parameters": {
"rules": {
"values": [
{
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "e9debd3b-3fa3-425a-bd61-6bf23a3a652b",
"operator": {
"type": "string",
"operation": "exists",
"singleValue": true
},
"leftValue": "attachment_0",
"rightValue": ""
}
]
}
},
{
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "f0eabfca-ff5e-4e5d-9b4e-f3f80c7fa5b4",
"operator": {
"type": "string",
"operation": "exists",
"singleValue": true
},
"leftValue": "attachment_0",
"rightValue": ""
}
]
}
}
]
},
"options": {
"allMatchingOutputs": true
}
},
"typeVersion": 3.2
},
{
"id": "260dae6d-9234-4bab-bb79-d15b4923d801",
"name": "Guardar CV en Google Sheets",
"type": "n8n-nodes-base.googleSheets",
"position": [
3280,
300
],
"parameters": {
"columns": {
"value": {
"Email": "={{ $('Gmail: Watch for new CV').item.json.from.value[0].address }}",
"Link CV": "={{ $('Save Resume to Google Drive').item.json.webViewLink }}"
},
"schema": [
{
"id": "Name",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "Name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Email",
"type": "string",
"display": true,
"required": false,
"displayName": "Email",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "LinkedIn",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "LinkedIn",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Phone",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "Phone",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Location",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "Location",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Score",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "Score",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Resume text",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "Resume text",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Link CV",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Link CV",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {
"useAppend": true
},
"operation": "append",
"sheetName": {
"__rl": true,
"mode": "id",
"value": "="
},
"documentId": {
"__rl": true,
"mode": "id",
"value": "="
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "51us92xkOlrvArhV",
"name": "Google Sheets account"
}
},
"typeVersion": 4.5
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "07121905-4a3c-4301-b88e-e1db76c119e3",
"connections": {
"c931b4a0-a1a4-4c59-85b8-9099064a74d0": {
"main": [
[
{
"node": "49107c53-eb76-4082-9d52-88d3fc391153",
"type": "main",
"index": 0
}
],
[
{
"node": "fe0e8d5c-e3f6-4098-891b-0fb3594b71c8",
"type": "main",
"index": 0
}
]
]
},
"e1d682f8-9723-4dd6-ad45-e8959a273d32": {
"main": [
[
{
"node": "848188ac-52fa-43b7-953f-b2cd45c727f1",
"type": "main",
"index": 0
}
],
[
{
"node": "c931b4a0-a1a4-4c59-85b8-9099064a74d0",
"type": "main",
"index": 0
}
]
]
},
"9b09d2ba-7669-4f64-8a77-ee5ff5280d72": {
"main": [
[
{
"node": "e9d2dfb0-0202-422c-a1f1-8d25a19bacc3",
"type": "main",
"index": 0
}
]
]
},
"3575cc8d-18b8-436d-a026-b022814fbd3d": {
"main": [
[
{
"node": "e1d682f8-9723-4dd6-ad45-e8959a273d32",
"type": "main",
"index": 0
}
]
]
},
"90da624b-9653-444f-a36b-9bfe6df4922a": {
"ai_tool": [
[
{
"node": "9b09d2ba-7669-4f64-8a77-ee5ff5280d72",
"type": "ai_tool",
"index": 0
}
]
]
},
"260dae6d-9234-4bab-bb79-d15b4923d801": {
"main": [
[]
]
},
"fe0e8d5c-e3f6-4098-891b-0fb3594b71c8": {
"main": [
[
{
"node": "b5d472bf-4acf-4e86-aeb7-5d1604ded5ff",
"type": "main",
"index": 0
}
]
]
},
"49107c53-eb76-4082-9d52-88d3fc391153": {
"main": [
[
{
"node": "260dae6d-9234-4bab-bb79-d15b4923d801",
"type": "main",
"index": 0
}
]
]
},
"119808cc-82fb-43d2-931f-351f8e2e3267": {
"ai_outputParser": [
[
{
"node": "9b09d2ba-7669-4f64-8a77-ee5ff5280d72",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"85edf215-bfa3-4b93-8f4f-7cede1132797": {
"ai_languageModel": [
[
{
"node": "9b09d2ba-7669-4f64-8a77-ee5ff5280d72",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"5f241a19-c30a-4cc4-a2c0-7e9d97711c78": {
"ai_languageModel": [
[
{
"node": "e1d682f8-9723-4dd6-ad45-e8959a273d32",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"b5d472bf-4acf-4e86-aeb7-5d1604ded5ff": {
"main": [
[
{
"node": "9b09d2ba-7669-4f64-8a77-ee5ff5280d72",
"type": "main",
"index": 0
}
]
]
}
}
}¿Cómo usar este flujo de trabajo?
Copie el código de configuración JSON de arriba, cree un nuevo flujo de trabajo en su instancia de n8n y seleccione "Importar desde JSON", pegue la configuración y luego modifique la configuración de credenciales según sea necesario.
¿En qué escenarios es adecuado este flujo de trabajo?
Avanzado - Recursos Humanos, Resumen de IA
¿Es de pago?
Este flujo de trabajo es completamente gratuito, puede importarlo y usarlo directamente. Sin embargo, tenga en cuenta que los servicios de terceros utilizados en el flujo de trabajo (como la API de OpenAI) pueden requerir un pago por su cuenta.
Flujos de trabajo relacionados recomendados
Dr. Firas
@drfirasAutomation expert and certified trainer. I create hands-on courses to master automation with n8n. Contact me to access my exclusive training and start building powerful workflows today. 🚀
Compartir este flujo de trabajo