Automatización de búsqueda de empleos con Job Search Global API y Google Sheets
Este es unContent Creation, Multimodal AIflujo de automatización del dominio deautomatización que contiene 15 nodos.Utiliza principalmente nodos como If, Set, Code, EmailSend, HttpRequest. Automatización de búsqueda de empleos con Job Search Global API y Google Sheets
- •Pueden requerirse credenciales de autenticación para la API de destino
- •Credenciales de API de Google Sheets
Nodos utilizados (15)
Categoría
{
"meta": {
"instanceId": "60c025075753afcab9f803964b4caaca9402f435deb4efafbb8e3b93b54d8752",
"templateCredsSetupCompleted": true
},
"nodes": [
{
"id": "1f0a7b3a-a6ab-4fb9-b1ef-4f4d5bc48a01",
"name": "Establecer Término de Búsqueda",
"type": "n8n-nodes-base.set",
"position": [
272,
0
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "bb36d63f-a074-40b1-9d83-dd573566f6af",
"name": "Search Term",
"type": "string",
"value": "Web Developer"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "0a66e398-1de3-4dd3-8b5f-6fd8c6b6358c",
"name": "Obtener Listados de Empleo",
"type": "n8n-nodes-base.httpRequest",
"position": [
496,
0
],
"parameters": {
"url": "https://job-search-global.p.rapidapi.com/search.php",
"method": "POST",
"options": {},
"sendBody": true,
"contentType": "multipart-form-data",
"sendHeaders": true,
"bodyParameters": {
"parameters": [
{
"name": "pageNumber",
"value": "1"
},
{
"name": "pageSize",
"value": "10"
},
{
"name": "searchQuery",
"value": "={{ $json[\"Search Term\"] }}"
}
]
},
"headerParameters": {
"parameters": [
{
"name": "x-rapidapi-host",
"value": "job-search-global.p.rapidapi.com"
},
{
"name": "x-rapidapi-key",
"value": "your key"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "16e842c1-fd91-4082-b015-387632eff19f",
"name": "Verificar Respuesta de API",
"type": "n8n-nodes-base.if",
"position": [
784,
0
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "ef7b71fa-c726-4e08-8fdb-55c215227bb0",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.status }}",
"rightValue": "={{ $json.status }}"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "ec64192d-9865-45f0-b4be-e3ee18ebbe5c",
"name": "Enviar Correo de Notificación de Fallo",
"type": "n8n-nodes-base.emailSend",
"position": [
1072,
224
],
"webhookId": "f1359f08-e267-44d2-9fca-505f66b5feb6",
"parameters": {
"html": "Hello,\n\nThe job search automation workflow encountered a failure while attempting to fetch job listings from the API.\n\nPlease review the API request and ensure the following:\n- API key and host are valid and not expired.\n- The request payload is correctly formatted.\n- The API endpoint is available.\n\nYou may also want to inspect the response for further debugging.\n\nRegards, \nn8n Workflow Bot\n",
"options": {},
"subject": "🚨 Job Search API Failure Notification",
"toEmail": "dev@gmail.com",
"fromEmail": "itadmin@gmail.com"
},
"credentials": {
"smtp": {
"id": "nPwKPPgVavimTJX4",
"name": "SMTP account"
}
},
"typeVersion": 2.1
},
{
"id": "96a773ee-a81b-4aca-8ad1-9d982bd0a2cd",
"name": "Activador Programado",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
0,
0
],
"parameters": {
"rule": {
"interval": [
{
"field": "hours",
"hoursInterval": 6
}
]
}
},
"typeVersion": 1.2
},
{
"id": "294c8010-0792-4396-89ec-03ae8c60fe30",
"name": "Nota Adhesiva",
"type": "n8n-nodes-base.stickyNote",
"position": [
-64,
-112
],
"parameters": {
"height": 240,
"content": "Triggers the workflow automatically every 6 hours.\nEnsures regular job search updates without manual execution."
},
"typeVersion": 1
},
{
"id": "9765dd80-dc0b-407f-a8b9-1746aaf44161",
"name": "Nota Adhesiva1",
"type": "n8n-nodes-base.stickyNote",
"position": [
192,
-112
],
"parameters": {
"height": 240,
"content": "Defines the job search keyword (e.g., “Web Developer”).\nThis value is dynamically inserted into the API request body."
},
"typeVersion": 1
},
{
"id": "b1607d91-4603-4df8-b35d-7b7bb12ded61",
"name": "Nota Adhesiva2",
"type": "n8n-nodes-base.stickyNote",
"position": [
448,
-112
],
"parameters": {
"height": 240,
"content": "Sends a POST request to the Job Search Global API.\nFetches job data based on the search term, limited to 10 results per request."
},
"typeVersion": 1
},
{
"id": "5ca49f7d-2598-4403-ba55-7311e4208d6e",
"name": "Nota Adhesiva3",
"type": "n8n-nodes-base.stickyNote",
"position": [
704,
-112
],
"parameters": {
"height": 240,
"content": "Evaluates whether the API returned a successful response.\nBranches the workflow into success (data processing) or failure (email alert)."
},
"typeVersion": 1
},
{
"id": "c70bdcd3-313b-4f95-8dc0-4287982f41ae",
"name": "Nota Adhesiva4",
"type": "n8n-nodes-base.stickyNote",
"position": [
1056,
-256
],
"parameters": {
"height": 256,
"content": "Extracts the job listings array from the API response.\nTransforms it into individual records for Google Sheets."
},
"typeVersion": 1
},
{
"id": "785dd467-f560-4430-af77-3c935a5c6ccb",
"name": "Guardar en Google Hoja1",
"type": "n8n-nodes-base.googleSheets",
"position": [
1392,
-128
],
"parameters": {
"columns": {
"value": {},
"schema": [
{
"id": "title",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "title",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "url",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "url",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "company",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "company",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "postDate",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "postDate",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "jobSource",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "jobSource",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "slug",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "slug",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "sentiment",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "sentiment",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "dateAdded",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "dateAdded",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "tags",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "tags",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "viewCount",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "viewCount",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "autoMapInputData",
"matchingColumns": [
"title"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "appendOrUpdate",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "",
"cachedResultName": "Sheet1"
},
"documentId": {
"__rl": true,
"mode": "url",
"value": ""
},
"authentication": "serviceAccount"
},
"credentials": {
"googleApi": {
"id": "Rt0RWApx8PL9t0RF",
"name": "Google Docs account"
}
},
"typeVersion": 4.7
},
{
"id": "e8456e00-4912-4d6c-a962-717cecf5ef38",
"name": "Extraer Datos de Empleo",
"type": "n8n-nodes-base.code",
"position": [
1120,
-144
],
"parameters": {
"jsCode": "return $input.first().json.data.data;"
},
"typeVersion": 2
},
{
"id": "58681808-71b7-4041-b88a-70149c74fbf4",
"name": "Nota Adhesiva5",
"type": "n8n-nodes-base.stickyNote",
"position": [
1312,
-256
],
"parameters": {
"height": 256,
"content": "Appends or updates job listings in a specific Google Sheet.\nUses \"title\" as the matching column to prevent duplicates."
},
"typeVersion": 1
},
{
"id": "4bad0177-fc01-4169-a022-882c1c313d92",
"name": "Nota Adhesiva6",
"type": "n8n-nodes-base.stickyNote",
"position": [
1024,
112
],
"parameters": {
"height": 288,
"content": "Sends an email to notify of API failure or bad response.\nHelps in quickly identifying issues with the API call or authentication."
},
"typeVersion": 1
},
{
"id": "b0de1b25-f4b1-47dd-8a1b-1c8e47faba4d",
"name": "Nota Adhesiva7",
"type": "n8n-nodes-base.stickyNote",
"position": [
-896,
-368
],
"parameters": {
"width": 576,
"height": 880,
"content": "# Job Search Automation Workflow \n\n**Description:** \nThis workflow automates job searches by querying the Job Search Global API every 6 hours for the keyword \"Web Developer\". It processes the API response, extracts job listings, and appends or updates the results in a Google Sheet. If the API response indicates failure, it sends an email notification alerting the admin.\n\n\n### Workflow Steps:\n\n1. **Schedule Trigger** \n Runs the workflow automatically every 6 hours.\n\n2. **Set Search Term** \n Defines the job search keyword dynamically used in the API request (`\"Web Developer\"`).\n\n3. **Fetch Job Listings** \n Sends a POST request to the Job Search Global API with pagination parameters.\n\n4. **Check API Response** \n Validates if the API response status is successful.\n\n5. **Extract Job Data** \n Parses the job listings array from the API response for further processing.\n\n6. **Save to Google Sheet1** \n Appends or updates the extracted job listings in a specified Google Sheet, using the job title to avoid duplicates.\n\n7. **Send Failure Notification Email** (Conditional) \n Sends an alert email if the API response fails or returns an error.\n\n---\n\n### Notes: \n- Uses environment variables for API keys and authentication. \n- Prevents duplicate job entries by matching on the job title. \n- Includes helpful sticky notes explaining each node's purpose.\n"
},
"typeVersion": 1
}
],
"pinData": {},
"connections": {
"1f0a7b3a-a6ab-4fb9-b1ef-4f4d5bc48a01": {
"main": [
[
{
"node": "0a66e398-1de3-4dd3-8b5f-6fd8c6b6358c",
"type": "main",
"index": 0
}
]
]
},
"e8456e00-4912-4d6c-a962-717cecf5ef38": {
"main": [
[
{
"node": "785dd467-f560-4430-af77-3c935a5c6ccb",
"type": "main",
"index": 0
}
]
]
},
"96a773ee-a81b-4aca-8ad1-9d982bd0a2cd": {
"main": [
[
{
"node": "1f0a7b3a-a6ab-4fb9-b1ef-4f4d5bc48a01",
"type": "main",
"index": 0
}
]
]
},
"16e842c1-fd91-4082-b015-387632eff19f": {
"main": [
[
{
"node": "e8456e00-4912-4d6c-a962-717cecf5ef38",
"type": "main",
"index": 0
}
],
[
{
"node": "ec64192d-9865-45f0-b4be-e3ee18ebbe5c",
"type": "main",
"index": 0
}
]
]
},
"0a66e398-1de3-4dd3-8b5f-6fd8c6b6358c": {
"main": [
[
{
"node": "16e842c1-fd91-4082-b015-387632eff19f",
"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?
Intermedio - Creación de contenido, IA Multimodal
¿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
Evoort Solutions
@evoortsolutionsCompartir este flujo de trabajo