07 - Automatisierter Job-Filter-Engine
Dies ist ein HR-Bereich Automatisierungsworkflow mit 10 Nodes. Hauptsächlich werden Code, Filter, HttpRequest, GoogleSheets, ScheduleTrigger und andere Nodes verwendet. Automatisierung der StellenSuche und -Filterung mit JSearch API und Google Sheets
- •Möglicherweise sind Ziel-API-Anmeldedaten erforderlich
- •Google Sheets API-Anmeldedaten
Verwendete Nodes (10)
Kategorie
{
"id": "49jPs7OkPU0PqODZ",
"meta": {
"instanceId": "c91c5b6efe2709e07c37996245857ac5d863d575d07e0072127351337c204c40",
"templateCredsSetupCompleted": true
},
"name": "07 - Automated Job Curation Engine",
"tags": [],
"nodes": [
{
"id": "c4d4a93c-2aca-4090-88b7-3b8e75ed7984",
"name": "⏰ Zeitplanung: Täglicher Trigger",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
-340,
440
],
"parameters": {
"rule": {
"interval": [
{
"triggerAtHour": 9
}
]
}
},
"typeVersion": 1.1
},
{
"id": "32968ac3-397b-419c-a3f4-fd8192030515",
"name": "📄 Ausstehende Jobrolle aus Sheet lesen",
"type": "n8n-nodes-base.googleSheets",
"position": [
-120,
440
],
"parameters": {
"options": {
"returnFirstMatch": true
},
"filtersUI": {
"values": [
{
"lookupValue": "Pending",
"lookupColumn": "Status"
}
]
},
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/{{Your_Sheet_ID}}/edit#gid=0",
"cachedResultName": "Your_Sheet_No"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/{{Your_Sheet_ID}}/edit?usp=drivesdk",
"cachedResultName": "Job Scraper"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "LJQH5glroAM1SiFe",
"name": "Google Sheets account - (DEV)"
}
},
"typeVersion": 4.6
},
{
"id": "f5f29814-a6b2-4178-a84b-9646130340d8",
"name": "🌐 Jobs über JSearch API suchen",
"type": "n8n-nodes-base.httpRequest",
"position": [
100,
440
],
"parameters": {
"url": "https://jsearch.p.rapidapi.com/search",
"options": {},
"sendQuery": true,
"sendHeaders": true,
"queryParameters": {
"parameters": [
{
"name": "query",
"value": "={{ $json.Position + ' in ' + $json.Location }}"
},
{
"name": "page",
"value": "1"
},
{
"name": "num_pages",
"value": "1"
}
]
},
"headerParameters": {
"parameters": [
{
"name": "X-RapidAPI-Key",
"value": "YOUR_RAPIDAPI_KEY"
},
{
"name": "X-RapidAPI-Host",
"value": "jsearch.p.rapidapi.com"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "cfd205db-f9b1-4906-8b42-3529a7d7bffe",
"name": "🧠 Jobdaten aus API-Antwort extrahieren",
"type": "n8n-nodes-base.code",
"position": [
320,
440
],
"parameters": {
"jsCode": "const allItems = [];\n\nfor (const item of items) {\n const jobs = item.json.data || [];\n for (const job of jobs) {\n allItems.push({\n json: {\n title: job.job_title,\n company: job.employer_name,\n location: `${job.job_city}, ${job.job_country}`,\n apply_link: job.job_apply_link,\n is_remote: job.job_is_remote,\n posted_date: job.job_posted_at_datetime_utc,\n }\n });\n }\n}\n\nreturn allItems;"
},
"typeVersion": 2
},
{
"id": "a54cfdfd-b0f9-4027-9309-3aae34ff3564",
"name": "🔍 Gültige Jobangebote filtern",
"type": "n8n-nodes-base.filter",
"position": [
540,
440
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "579057db-1ec8-4a3b-8dca-7169d9699521",
"operator": {
"type": "string",
"operation": "exists",
"singleValue": true
},
"leftValue": "={{ $json.title }}",
"rightValue": "="
}
]
}
},
"typeVersion": 2.2
},
{
"id": "bdd89987-6256-408b-8bd5-0cd0154dd300",
"name": "📊 Jobs in Ausgabesheet schreiben",
"type": "n8n-nodes-base.googleSheets",
"position": [
760,
440
],
"parameters": {
"columns": {
"value": {
"Title": "={{ $json.title }}",
"Company": "={{ $json.company }}",
"Location": "={{ $json.location }}",
"Is Remote": "={{ $json.is_remote }}",
"Posted On": "={{ $json.posted_date }}",
"Apply Link": "={{ $json.apply_link }}"
},
"schema": [
{
"id": "Title",
"type": "string",
"display": true,
"required": false,
"displayName": "Title",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Company",
"type": "string",
"display": true,
"required": false,
"displayName": "Company",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Location",
"type": "string",
"display": true,
"required": false,
"displayName": "Location",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Apply Link",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Apply Link",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Is Remote",
"type": "string",
"display": true,
"required": false,
"displayName": "Is Remote",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Posted On",
"type": "string",
"display": true,
"required": false,
"displayName": "Posted On",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"Apply Link"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "appendOrUpdate",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/{{Your_Sheet_ID}}/edit#gid=0",
"cachedResultName": "Your_Sheet_No"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "Your_Sheet_ID",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/{{Your_Sheet_ID}}/edit?usp=drivesdk",
"cachedResultName": "Job Listing"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "LJQH5glroAM1SiFe",
"name": "Google Sheets account - (DEV)"
}
},
"typeVersion": 4.6
},
{
"id": "b834f983-9319-4c96-bf9f-7adbee871647",
"name": "✅ Job als gescraped im Quellsheet markieren",
"type": "n8n-nodes-base.googleSheets",
"position": [
980,
440
],
"parameters": {
"columns": {
"value": {
"Status": "Scraped",
"row_number": "={{ $('📄 Read Pending Job Role from Sheet').item.json.row_number }}"
},
"schema": [
{
"id": "Position",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Position",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Location",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Location",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Status",
"type": "string",
"display": true,
"required": false,
"displayName": "Status",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "row_number",
"type": "string",
"display": true,
"removed": false,
"readOnly": true,
"required": false,
"displayName": "row_number",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"row_number"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "update",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/{{Your_Sheet_ID}}/edit#gid=0",
"cachedResultName": "Your_Sheet_No"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/{{Your_Sheet_ID}}/edit?usp=drivesdk",
"cachedResultName": "Job Scraper"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "LJQH5glroAM1SiFe",
"name": "Google Sheets account - (DEV)"
}
},
"executeOnce": true,
"typeVersion": 4.6
},
{
"id": "b9c7a999-6c09-48e5-aea8-b5a14e30ed51",
"name": "Haftnotiz",
"type": "n8n-nodes-base.stickyNote",
"position": [
-380,
200
],
"parameters": {
"width": 420,
"height": 520,
"content": "## Trigger & Input\n\n• Triggers the workflow on a defined hourly interval.\n• Fetches a single row from the \"Job Scraper\" sheet where Status = \"Pending\".\n• This row includes 'Position' and 'Location' values for the job search.\n"
},
"typeVersion": 1
},
{
"id": "c987a1d7-03a7-40b1-99d3-57d9049b3c32",
"name": "Haftnotiz1",
"type": "n8n-nodes-base.stickyNote",
"position": [
80,
200
],
"parameters": {
"color": 3,
"width": 620,
"height": 520,
"content": "## Job Search & Processing\n\n• Sends query (Position + Location) to the JSearch API.\n• Parses the API response and extracts individual job listings.\n• Filters out empty or invalid results to ensure clean output.\n"
},
"typeVersion": 1
},
{
"id": "8c5c5acc-6b1b-4ece-b4c2-af47bda1ecd2",
"name": "Haftnotiz2",
"type": "n8n-nodes-base.stickyNote",
"position": [
720,
200
],
"parameters": {
"color": 4,
"width": 460,
"height": 520,
"content": "## Output & Status Update\n\n• Writes valid jobs to the \"Job Listing\" sheet with fields like title, location, company, etc.\n• Marks the original row in the source sheet as \"Scraped\" using the row number for tracking.\n"
},
"typeVersion": 1
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "5e71e30c-da84-4500-bea9-ce72b5596424",
"connections": {
"a54cfdfd-b0f9-4027-9309-3aae34ff3564": {
"main": [
[
{
"node": "bdd89987-6256-408b-8bd5-0cd0154dd300",
"type": "main",
"index": 0
}
]
]
},
"c4d4a93c-2aca-4090-88b7-3b8e75ed7984": {
"main": [
[
{
"node": "32968ac3-397b-419c-a3f4-fd8192030515",
"type": "main",
"index": 0
}
]
]
},
"bdd89987-6256-408b-8bd5-0cd0154dd300": {
"main": [
[
{
"node": "b834f983-9319-4c96-bf9f-7adbee871647",
"type": "main",
"index": 0
}
]
]
},
"f5f29814-a6b2-4178-a84b-9646130340d8": {
"main": [
[
{
"node": "cfd205db-f9b1-4906-8b42-3529a7d7bffe",
"type": "main",
"index": 0
}
]
]
},
"32968ac3-397b-419c-a3f4-fd8192030515": {
"main": [
[
{
"node": "f5f29814-a6b2-4178-a84b-9646130340d8",
"type": "main",
"index": 0
}
]
]
},
"cfd205db-f9b1-4906-8b42-3529a7d7bffe": {
"main": [
[
{
"node": "a54cfdfd-b0f9-4027-9309-3aae34ff3564",
"type": "main",
"index": 0
}
]
]
}
}
}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 - Personalwesen
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
Avkash Kakdiya
@itechnotion🚀 Founder of iTechNotion — we build custom AI-powered automation workflows for startups, agencies, and founders. 💡 Specializing in agentic AI systems, content automation, sales funnels, and digital workers. 🔧 14+ years in tech | Building scalable no-code/low-code solutions using n8n, OpenAI, and other API-first tools. 📬 Let’s automate what slows you down.
Diesen Workflow teilen