Automatisierte Jobsuche mit Job Search Global API und Google Sheets
Fortgeschritten
Dies ist ein Content Creation, Multimodal AI-Bereich Automatisierungsworkflow mit 15 Nodes. Hauptsächlich werden If, Set, Code, EmailSend, HttpRequest und andere Nodes verwendet. Automatisierung der StellenSuche mit Job Search Global API und Google Sheets
Voraussetzungen
- •Möglicherweise sind Ziel-API-Anmeldedaten erforderlich
- •Google Sheets API-Anmeldedaten
Verwendete Nodes (15)
Kategorie
Workflow-Vorschau
Visualisierung der Node-Verbindungen, mit Zoom und Pan
Workflow exportieren
Kopieren Sie die folgende JSON-Konfiguration und importieren Sie sie in n8n
{
"meta": {
"instanceId": "60c025075753afcab9f803964b4caaca9402f435deb4efafbb8e3b93b54d8752",
"templateCredsSetupCompleted": true
},
"nodes": [
{
"id": "1f0a7b3a-a6ab-4fb9-b1ef-4f4d5bc48a01",
"name": "Suchbegriff festlegen",
"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": "Stellenangebote abrufen",
"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": "API Antwort prüfen",
"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": "Fehlerbenachrichtigungs-E-Mail senden",
"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": "Zeitplan-Trigger",
"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": "Notiz",
"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": "Notiz1",
"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": "Notiz2",
"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": "Notiz3",
"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": "Notiz4",
"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": "In Google Sheet1 speichern",
"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": "Jobdaten extrahieren",
"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": "Notiz5",
"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": "Notiz6",
"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": "Notiz7",
"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
}
]
]
}
}
}Häufig gestellte Fragen
Wie verwende ich diesen Workflow?
Kopieren Sie den obigen JSON-Code, erstellen Sie einen neuen Workflow in Ihrer n8n-Instanz und wählen Sie "Aus JSON importieren". Fügen Sie die Konfiguration ein und passen Sie die Anmeldedaten nach Bedarf an.
Für welche Szenarien ist dieser Workflow geeignet?
Fortgeschritten - Content-Erstellung, Multimodales KI
Ist es kostenpflichtig?
Dieser Workflow ist völlig kostenlos. Beachten Sie jedoch, dass Drittanbieterdienste (wie OpenAI API), die im Workflow verwendet werden, möglicherweise kostenpflichtig sind.
Verwandte Workflows
Titelklarheit optimieren mit Google Sheets und E-Mail-Benachrichtigungen
Optimierung der Titelklarheit mit Google Sheets und E-Mail-Benachrichtigungen
If
Code
Email Send
+
If
Code
Email Send
14 NodesEvoort Solutions
Content-Erstellung
TikTok-Transkriptionstext
Automatisierung von TikTok-Videotranskriptionen mit RapidAPI und Google Sheets
If
Code
Wait
+
If
Code
Wait
21 NodesEvoort Solutions
Content-Erstellung
Bilder mit Bild-zu-Bild-GPT, Google Sheets und Drive generieren und hochladen
Bilder mit Bild-zu-Bild-GPT, Google Sheets und Drive generieren und hochladen
If
Code
Wait
+
If
Code
Wait
23 NodesEvoort Solutions
Content-Erstellung
KI-gesteuerte Videowerkzeugung und Upload zu Instagram, TikTok und YouTube
AI-gestützte Videoerstellung aus Google Drive und hochladen zu Instagram, TikTok und YouTube
If
Set
Code
+
If
Set
Code
53 NodesDevCode Journey
Content-Erstellung
Blog-Publisher – vollständige Automatisierung der KI-gesteuerten Inhaltserstellung, -optimierung und -veröffentlichung
Automatisierung der Blog-Erstellung und -Veröffentlichung mit Gemini, Ideogram AI und WordPress
If
Set
Code
+
If
Set
Code
35 NodesIncrementors
Content-Erstellung
Automatisierte Veröffentlichung von RSS auf Medium mit Groq, Gemini und Slack-Genehmigungssystem
Automatisierung des Veröffentlichungsprozesses von RSS auf Medium durch Groq, Gemini und Slack-Genehmigungssysteme
If
Set
Code
+
If
Set
Code
41 NodesObisDev
Content-Erstellung
Workflow-Informationen
Schwierigkeitsgrad
Fortgeschritten
Anzahl der Nodes15
Kategorie2
Node-Typen8
Autor
Evoort Solutions
@evoortsolutionsExterne Links
Auf n8n.io ansehen →
Diesen Workflow teilen