This workflow corresponds to n8n.io template #6076 — we link there as the canonical source.
This workflow follows the Apifyn8N Nodes Apify → Google Sheets 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": "PfHXlbmYsQxVXvIq",
"meta": {
"templateCredsSetupCompleted": true
},
"name": "AHIJSfA",
"tags": [
{
"id": "ja482qGm2qVdCtOo",
"name": "Lead Gen",
"createdAt": "2025-06-27T17:29:51.052Z",
"updatedAt": "2025-06-27T17:29:51.052Z"
}
],
"nodes": [
{
"id": "d55ce612-7462-4329-b6b2-4785eb3401f6",
"name": "Webhook",
"type": "n8n-nodes-base.webhook",
"position": [
-1140,
-380
],
"parameters": {
"path": "8b86cbbd-8f0f-424d-86b8-5f2cdb3b28a6",
"options": {},
"httpMethod": "POST"
},
"typeVersion": 2
},
{
"id": "ad3bbe0a-b708-41d7-b115-23415c9e525f",
"name": "Job Filter",
"type": "@n8n/n8n-nodes-langchain.openAi",
"notes": "Filter needs tuning",
"position": [
-340,
-120
],
"parameters": {
"modelId": {
"__rl": true,
"mode": "list",
"value": "gpt-4.1-mini",
"cachedResultName": "GPT-4.1-MINI"
},
"options": {},
"messages": {
"values": [
{
"role": "system",
"content": "=You are an helpful, intelligent job filter assistant working for an AI Automation Agency. Your task is to analyze job listings (from platforms like Indeed, LinkedIn, etc.) and **determine whether a job is a good fit for AI automation**.\n\nFocus on identifying **low-complexity roles** with tasks that can be automated, especially if the company is hiring urgently, high-volume or in bulk.\n\nOnly allow and tag the following/similar job types as **\"Relevant\"**:\n\n1. Virtual Assistant / Admin Assistant\n2. Appointment Setter / Sales Development Rep (SDR)\n3. Data Entry Clerk / Order Entry\n4. E-Commerce Customer Support / Order Processing\n5. Logistics Coordinator / Delivery Dispatcher\n6. Cleaning Services Coordinator / Scheduler\n7. **Remote** Customer Service Representative or Support Roles\n\nExclude roles that:\n* Are in **heavily regulated industries** (e.g., healthcare)\n* Require **certifications or technical degrees**\n### Bonus Filters to check:\n\n* Keywords: *\"hiring urgently\"*, *\"immediate start\"*, *\"remote admin\"*, *\"booking coordinator\"*, etc.\n* Look for industries like: ecom, trades, real estate, service-based businesses, construction, or local logistics.\n\n### Rules: ###\n- Allow jobs for lead generation, remote customer service and ones approved based on filter.\n- Disallow large directorial positions, \"head of\" positions, etc."
},
{
"content": "=Your task is to take as input a job post from Indeed or LinkedIn containing the title, part of the description, and determine whether or not it is relevant to us.\n\nReturn your answer in JSON using this format:\n{\"verdict\":\"true or false\"\n\"jobUrl\":\"\"}\n\n"
},
{
"content": "={\"jobUrl: \"{{ $json.jobUrl }}\",\n\"jobPost\":\"{{ $json.descriptionText.replaceAll('\\n', ' ').substring(0,1500) }}}"
}
]
},
"simplify": false,
"jsonOutput": true
},
"credentials": {
"openAiApi": {
"name": "<your credential>"
}
},
"notesInFlow": true,
"typeVersion": 1.8
},
{
"id": "26b4bff3-7743-4987-aa0e-859ae1706ff2",
"name": "Get row(s) in sheet",
"type": "n8n-nodes-base.googleSheets",
"notes": "here",
"position": [
-780,
-100
],
"parameters": {
"options": {},
"filtersUI": {
"values": [
{
"lookupValue": "={{ $json.companyName}}",
"lookupColumn": "companyName"
}
]
},
"sheetName": {
"__rl": true,
"mode": "id",
"value": 1282464007
},
"documentId": {
"__rl": true,
"mode": "id",
"value": "1pQVwVFZ99hCjktMy-YDF3nYmZLL4yheF10OR5-7Apbw"
},
"combineFilters": "OR"
},
"credentials": {
"googleSheetsOAuth2Api": {
"name": "<your credential>"
}
},
"executeOnce": false,
"notesInFlow": true,
"typeVersion": 4.6,
"alwaysOutputData": false
},
{
"id": "3991abf7-87cd-4909-8ee3-5609a14cd751",
"name": "Edit Fields",
"type": "n8n-nodes-base.set",
"position": [
20,
-120
],
"parameters": {
"options": {
"ignoreConversionErrors": true
},
"assignments": {
"assignments": [
{
"id": "10458cd0-e255-4ed3-a386-91b63cbb3ea2",
"name": "verdict",
"type": "array",
"value": "={{ $json.choices[0].message.content.verdict }}"
},
{
"id": "ca66add5-bc6d-4130-8c7a-9f3167f76ff0",
"name": "jobUrl",
"type": "string",
"value": "={{ $json.choices[0].message.content.jobUrl }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "b4f55707-292c-4cb1-888c-e1dcd46a2361",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-820,
-440
],
"parameters": {
"width": 1020,
"height": 260,
"content": "## Filter oncoming data "
},
"typeVersion": 1
},
{
"id": "183c27ef-a321-4773-afee-c5108995136c",
"name": "Filter Outlet",
"type": "n8n-nodes-base.merge",
"notes": "What do we not have in our DB?",
"position": [
-540,
-120
],
"parameters": {
"mode": "combine",
"options": {},
"joinMode": "keepNonMatches",
"outputDataFrom": "input1",
"fieldsToMatchString": "companyName"
},
"notesInFlow": true,
"typeVersion": 3.2
},
{
"id": "293562a2-3585-473a-8a99-df7aa90df9b8",
"name": "Remove Duplicates",
"type": "n8n-nodes-base.removeDuplicates",
"position": [
40,
-360
],
"parameters": {
"compare": "selectedFields",
"options": {},
"fieldsToCompare": "companyName"
},
"typeVersion": 2
},
{
"id": "3f489587-9149-416d-8e1c-c3b788403478",
"name": "True Jobs",
"type": "n8n-nodes-base.merge",
"position": [
-540,
120
],
"parameters": {
"mode": "combine",
"options": {},
"fieldsToMatchString": "jobUrl"
},
"typeVersion": 3.2,
"alwaysOutputData": true
},
{
"id": "5f87e904-42ba-4585-983f-d31150a1c6da",
"name": "Append row in sheet",
"type": "n8n-nodes-base.googleSheets",
"onError": "continueRegularOutput",
"position": [
0,
200
],
"parameters": {
"columns": {
"value": {
"email": "={{ $('True Jobs').item.json.emails }}",
"title": "={{ $('True Jobs').item.json.title }}",
"jobUrl": "={{ $('True Jobs').item.json.jobUrl }}",
"isRemote": "={{ $('True Jobs').item.json.isRemote }}",
"jobType/0": "={{ $('True Jobs').item.json.jobType[0] }}",
"scrapedCeo": "={{ $('True Jobs').item.json.companyCeo.name }}",
"companyName": "={{ $('True Jobs').item.json.companyName }}",
"companyCeo/name": "={{ $json.answer.split(\":\").last().replaceAll(\"}\", \"\") }}",
"descriptionText": "={{ $('True Jobs').item.json.descriptionText }}",
"location/country": "={{ $('True Jobs').item.json.location.formattedAddressShort }} in {{ $('True Jobs').item.json.location.country }}",
"salary/salaryText": "={{ $('True Jobs').item.json.salary.salaryText }} {{ $('True Jobs').item.json.salary.salaryCurrency }}",
"companyDescription": "={{ $('True Jobs').item.json.companyDescription }}",
"companyNumEmployees": "={{ $('True Jobs').item.json.companyNumEmployees }}",
"hiringDemand/isUrgentHire": "={{ $('True Jobs').item.json.hiringDemand.isUrgentHire }}",
"companyLinks/corporateWebsite": "={{ $('True Jobs').item.json.companyLinks.corporateWebsite }}",
"hiringDemand/isHighVolumeHiring": "={{ $('True Jobs').item.json.hiringDemand.isHighVolumeHiring }}"
},
"schema": [
{
"id": "jobUrl",
"type": "string",
"display": true,
"required": false,
"displayName": "jobUrl",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "title",
"type": "string",
"display": true,
"required": false,
"displayName": "title",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "descriptionText",
"type": "string",
"display": true,
"required": false,
"displayName": "descriptionText",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "hiringDemand/isHighVolumeHiring",
"type": "string",
"display": true,
"required": false,
"displayName": "hiringDemand/isHighVolumeHiring",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "hiringDemand/isUrgentHire",
"type": "string",
"display": true,
"required": false,
"displayName": "hiringDemand/isUrgentHire",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "isRemote",
"type": "string",
"display": true,
"required": false,
"displayName": "isRemote",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "jobType/0",
"type": "string",
"display": true,
"required": false,
"displayName": "jobType/0",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "companyCeo/name",
"type": "string",
"display": true,
"required": false,
"displayName": "companyCeo/name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "scrapedCeo",
"type": "string",
"display": true,
"required": false,
"displayName": "scrapedCeo",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "email",
"type": "string",
"display": true,
"required": false,
"displayName": "email",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "companyName",
"type": "string",
"display": true,
"required": false,
"displayName": "companyName",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "companyDescription",
"type": "string",
"display": true,
"required": false,
"displayName": "companyDescription",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "companyLinks/corporateWebsite",
"type": "string",
"display": true,
"required": false,
"displayName": "companyLinks/corporateWebsite",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "companyNumEmployees",
"type": "string",
"display": true,
"required": false,
"displayName": "companyNumEmployees",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "location/country",
"type": "string",
"display": true,
"required": false,
"displayName": "location/country",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "salary/salaryText",
"type": "string",
"display": true,
"required": false,
"displayName": "salary/salaryText",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {
"useAppend": true,
"cellFormat": "USER_ENTERED"
},
"operation": "append",
"sheetName": {
"__rl": true,
"mode": "id",
"value": 1282464007
},
"documentId": {
"__rl": true,
"mode": "id",
"value": "1pQVwVFZ99hCjktMy-YDF3nYmZLL4yheF10OR5-7Apbw"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 4.6
},
{
"id": "27d36445-adb8-474a-93ca-2d91b5d69926",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-820,
-180
],
"parameters": {
"color": 5,
"width": 1020,
"height": 260,
"content": "## Filter job postings"
},
"typeVersion": 1
},
{
"id": "2170a86b-f865-4dac-8187-5a0d9751f9f7",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-580,
60
],
"parameters": {
"color": 4,
"width": 900,
"height": 240,
"content": "## Update DataBase"
},
"typeVersion": 1
},
{
"id": "99083968-06b6-4623-8763-ff0655666132",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"disabled": true,
"position": [
-1140,
-220
],
"parameters": {
"color": 3,
"width": 320,
"height": 380,
"content": "## Notes\n** When the actor runs, webhook gets activated, the dataset run gets queried to use as data to filter and update DB with non-existing, relevant jobs to hit up for AI Automaton.\n\n## To Add\n** For Update Database section, get decision maker, their email and some reseach on them. Use researched data to personalise a icebreaker.\n** Apps: Anymailfinder, Perplexity!!\n**Filter for exsisting job post url before gpt filter to avoid passing gpt a exsisting approved description!!\n"
},
"typeVersion": 1
},
{
"id": "48bee7fe-2e01-440b-a00d-31c34da3caad",
"name": "Find DM",
"type": "@tavily/n8n-nodes-tavily.tavily",
"onError": "continueRegularOutput",
"position": [
-160,
100
],
"parameters": {
"query": "=From the website: {{ $json.companyLinks.corporateWebsite }}, find the company information about the company, including name and a decision maker (CEO/OWNER/PRESIDENT/FOUNDER/etc/) at the company (return 'null' if can't find), use accurate sources.\n\nPlease output the result using the following JSON format:\n\n{\n\"companyName\":\"\",\n\"companyWebsite\":\"\",\n\"decisionMaker\":\"\"\n}",
"options": {
"topic": "general",
"max_results": 9,
"search_depth": "advanced",
"include_answer": "basic",
"exclude_domains": [],
"include_domains": [
"={{ $json.companyLinks.corporateWebsite }}",
"={{ $json.jobUrl }}"
],
"chunks_per_source": 3
}
},
"credentials": {
"tavilyApi": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "1d67acb7-10c2-464f-a856-b90d13995245",
"name": "Loop Over Items1",
"type": "n8n-nodes-base.splitInBatches",
"position": [
-780,
-380
],
"parameters": {
"options": {},
"batchSize": 55
},
"typeVersion": 3
},
{
"id": "3588567e-735d-4173-9c20-554d6b5fac5e",
"name": "Wait",
"type": "n8n-nodes-base.wait",
"position": [
160,
120
],
"parameters": {
"unit": "minutes",
"amount": 1.5
},
"typeVersion": 1.1
},
{
"id": "2949a5d3-337d-466b-b9d9-569caa820a11",
"name": "Get dataset items",
"type": "@apify/n8n-nodes-apify.apify",
"notes": "Incorrect Datasetid (Static)",
"position": [
-940,
-380
],
"parameters": {
"limit": 500,
"resource": "Datasets",
"datasetId": "={{ $json.body.resource.defaultDatasetId }}",
"operation": "Get items"
},
"credentials": {
"apifyApi": {
"name": "<your credential>"
}
},
"notesInFlow": true,
"typeVersion": 1
},
{
"id": "62f24a19-830b-45eb-a771-0417897d16f4",
"name": "Sticky Note4",
"type": "n8n-nodes-base.stickyNote",
"position": [
-820,
60
],
"parameters": {
"color": 5,
"height": 240,
"content": ""
},
"typeVersion": 1
},
{
"id": "18692992-20d3-4d3d-bde8-c3e61058f78d",
"name": "Edit Fields1",
"type": "n8n-nodes-base.set",
"position": [
-460,
-440
],
"parameters": {
"include": "except",
"options": {
"ignoreConversionErrors": true
},
"assignments": {
"assignments": [
{
"id": "56bb2e1c-85b9-4991-b585-cb96e8de055b",
"name": "companyNumEmployees",
"type": "string",
"value": "=50 to 100"
}
]
},
"excludeFields": "descriptionHtml, benefits, occupation, attributes, shiftAndSchedule, applyUrl, requirements",
"includeOtherFields": true
},
"typeVersion": 3.4
},
{
"id": "bffa0a7c-2915-4445-82c6-a870f7655f25",
"name": "Merge",
"type": "n8n-nodes-base.merge",
"position": [
-300,
-300
],
"parameters": {},
"typeVersion": 3.2
},
{
"id": "8d2a1626-f352-4a38-ac95-32d399192bc2",
"name": "Filter 2",
"type": "n8n-nodes-base.filter",
"notes": "Website & Employees < 250?",
"onError": "continueRegularOutput",
"position": [
-140,
-440
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "loose"
},
"combinator": "and",
"conditions": [
{
"id": "f33b1588-35b5-4d2f-ad8b-30e6541e9c07",
"operator": {
"type": "string",
"operation": "exists",
"singleValue": true
},
"leftValue": "={{ $json.companyLinks.corporateWebsite }}",
"rightValue": ""
},
{
"id": "0eead757-d057-4a89-aacd-4506f311615d",
"operator": {
"type": "number",
"operation": "lt"
},
"leftValue": "={{ $json.companyNumEmployees.split(\"to\").last().replaceAll(\"/[,+]\\g\",\"\").toNumber() }}",
"rightValue": 250
}
]
},
"looseTypeValidation": true
},
"notesInFlow": true,
"typeVersion": 2.2
},
{
"id": "cbc1eb75-402e-41f4-b555-be79c7be0513",
"name": "Filter 1",
"type": "n8n-nodes-base.if",
"notes": "#Employees exist?",
"position": [
-620,
-300
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "51a65163-dd31-465a-81a9-878255b4b280",
"operator": {
"type": "string",
"operation": "notExists",
"singleValue": true
},
"leftValue": "={{ $json.companyNumEmployees }}",
"rightValue": ""
}
]
}
},
"notesInFlow": true,
"typeVersion": 2.2
},
{
"id": "f7e49141-f0f4-400f-8611-95418900d9d8",
"name": "Relevant Job posting?",
"type": "n8n-nodes-base.if",
"notes": "Relevant Job posting?",
"position": [
-780,
180
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "d70b210c-1226-4300-9c04-90beb8e1e9f3",
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.verdict }}",
"rightValue": "true"
}
]
}
},
"notesInFlow": false,
"typeVersion": 2.2
},
{
"id": "93054773-eae8-4459-a737-1eae8892fcee",
"name": "Anything to add?",
"type": "n8n-nodes-base.if",
"position": [
-360,
100
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "f82f5b65-bf3a-46f9-830e-23f1a132031f",
"operator": {
"type": "string",
"operation": "exists",
"singleValue": true
},
"leftValue": "={{$json.jobUrl}}",
"rightValue": ""
}
]
}
},
"typeVersion": 2.2
}
],
"active": true,
"settings": {
"executionOrder": "v1"
},
"versionId": "c5d2a838-310b-4a2b-89e2-6cae8d87f4e0",
"connections": {
"Wait": {
"main": [
[
{
"node": "Loop Over Items1",
"type": "main",
"index": 0
}
]
]
},
"Merge": {
"main": [
[
{
"node": "Filter 2",
"type": "main",
"index": 0
}
]
]
},
"Find DM": {
"main": [
[
{
"node": "Append row in sheet",
"type": "main",
"index": 0
}
]
]
},
"Webhook": {
"main": [
[
{
"node": "Get dataset items",
"type": "main",
"index": 0
}
]
]
},
"Filter 1": {
"main": [
[
{
"node": "Edit Fields1",
"type": "main",
"index": 0
}
],
[
{
"node": "Merge",
"type": "main",
"index": 1
}
]
]
},
"Filter 2": {
"main": [
[
{
"node": "Remove Duplicates",
"type": "main",
"index": 0
}
]
]
},
"True Jobs": {
"main": [
[
{
"node": "Anything to add?",
"type": "main",
"index": 0
}
]
]
},
"Job Filter": {
"main": [
[
{
"node": "Edit Fields",
"type": "main",
"index": 0
}
]
]
},
"Edit Fields": {
"main": [
[
{
"node": "Relevant Job posting?",
"type": "main",
"index": 0
}
]
]
},
"Edit Fields1": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 0
}
]
]
},
"Filter Outlet": {
"main": [
[
{
"node": "Job Filter",
"type": "main",
"index": 0
},
{
"node": "True Jobs",
"type": "main",
"index": 0
}
]
]
},
"Anything to add?": {
"main": [
[
{
"node": "Find DM",
"type": "main",
"index": 0
}
],
[
{
"node": "Loop Over Items1",
"type": "main",
"index": 0
}
]
]
},
"Loop Over Items1": {
"main": [
[],
[
{
"node": "Filter 1",
"type": "main",
"index": 0
}
]
]
},
"Get dataset items": {
"main": [
[
{
"node": "Loop Over Items1",
"type": "main",
"index": 0
}
]
]
},
"Remove Duplicates": {
"main": [
[
{
"node": "Get row(s) in sheet",
"type": "main",
"index": 0
},
{
"node": "Filter Outlet",
"type": "main",
"index": 0
}
]
]
},
"Append row in sheet": {
"main": [
[
{
"node": "Wait",
"type": "main",
"index": 0
}
]
]
},
"Get row(s) in sheet": {
"main": [
[
{
"node": "Filter Outlet",
"type": "main",
"index": 1
}
]
]
},
"Relevant Job posting?": {
"main": [
[
{
"node": "True Jobs",
"type": "main",
"index": 1
}
]
]
}
}
}
Credentials you'll need
Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.
apifyApigoogleSheetsOAuth2ApiopenAiApitavilyApi
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
This workflow contains community nodes that are only compatible with the self-hosted version of n8n.
Source: https://n8n.io/workflows/6076/ — 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.
Who this is for
All results are then saved automatically into Google Sheets, ready for lead generation, enrichment, or outreach.
A fully automated content engine that researches, writes, scores, and visualizes LinkedIn posts — built with n8n, OpenAI, Perplexity, and Replicate.
Clone_Viral_TikToks_with_AI_Avatars___Auto_Post_to_9_Platforms_using_Perplexity___Blotato. Uses httpRequest, telegramTrigger, openAi, googleSheets. Event-driven trigger; 42 nodes.
1-Clone_Viral_TikToks_with_AI_Avatars___Auto_Post_to_9_Platforms_using_Perplexity___Blotato. Uses httpRequest, telegramTrigger, openAi, googleSheets. Event-driven trigger; 42 nodes.