This workflow follows the Agent → Execute Workflow Trigger 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 →
{
"name": "Business Idea Validator",
"nodes": [
{
"parameters": {
"rule": {
"interval": [
{}
]
}
},
"type": "n8n-nodes-base.scheduleTrigger",
"typeVersion": 1.2,
"position": [
0,
0
],
"id": "d38b96c8-bd70-4e14-8ce5-409ca67aed9a",
"name": "Schedule Trigger"
},
{
"parameters": {
"url": "https://upwork-jobs-api2.p.rapidapi.com/active-freelance-1h",
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"sendQuery": true,
"queryParameters": {
"parameters": [
{
"name": "limit",
"value": "100"
}
]
},
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "x-rapidapi-host",
"value": "upwork-jobs-api2.p.rapidapi.com"
}
]
},
"options": {}
},
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [
224,
0
],
"id": "ecd86c00-6b21-45d6-9544-f930cdf33775",
"name": "HTTP Request",
"credentials": {
"httpHeaderAuth": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"assignments": {
"assignments": [
{
"id": "b56bce4d-5bcc-4085-b1d5-382c0213f965",
"name": "description",
"value": "={{ $json.description_text }}",
"type": "string"
}
]
},
"options": {}
},
"type": "n8n-nodes-base.set",
"typeVersion": 3.4,
"position": [
1152,
0
],
"id": "b50860de-fd41-4898-9f54-cf10447b5157",
"name": "Job Description"
},
{
"parameters": {
"workflowInputs": {
"values": [
{
"name": "job_description"
}
]
}
},
"type": "n8n-nodes-base.executeWorkflowTrigger",
"typeVersion": 1.1,
"position": [
0,
464
],
"id": "0cfce523-c1ca-4d46-89aa-8a5fcd23f7e8",
"name": "When Executed by Another Workflow"
},
{
"parameters": {
"description": "Call this tool to check if the job description has any valuable business model.\nThis tool takes job_description as input. And returns the core business idea.",
"workflowId": {
"__rl": true,
"value": "OFvs6LyLZABBuDvn",
"mode": "list",
"cachedResultName": "Business Idea Validator"
},
"workflowInputs": {
"mappingMode": "defineBelow",
"value": {
"job_description": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('job_description', ``, 'string') }}"
},
"matchingColumns": [
"job_description"
],
"schema": [
{
"id": "job_description",
"displayName": "job_description",
"required": false,
"defaultMatch": false,
"display": true,
"canBeUsedToMatch": true,
"type": "string",
"removed": false
}
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
}
},
"type": "@n8n/n8n-nodes-langchain.toolWorkflow",
"typeVersion": 2.2,
"position": [
1424,
208
],
"id": "2bf8a87d-0084-4140-a02e-cd920e346c44",
"name": "Get Core Business Idea"
},
{
"parameters": {
"promptType": "define",
"text": "=Extract core business idea from the job posting.\n\nJob posting - \n{{ $json.job_description }}",
"options": {
"systemMessage": "=### Introduction\nYou are a expert idea validator and business expert. You can easily understand the core business idea from the job descriptions.\n\n### Instructions\n- You MUST deeply understand what's the job description, what is the problem they are trying to solve.\n- You MUST ignore words not related to business idea, and more are more related to job posting.\n\n### Context\nThe job description is taken out from a job post in Upwork (a platform for freelancers to find a job)"
}
},
"type": "@n8n/n8n-nodes-langchain.agent",
"typeVersion": 2,
"position": [
224,
464
],
"id": "16124464-57b8-4bcf-977f-454ea1d679ea",
"name": "Code Idea Agent"
},
{
"parameters": {
"promptType": "define",
"text": "=## Request\nI found this job on upwork, what can be the code business idea behind this?\n\n## Job Description\n{{ $json.description }}",
"hasOutputParser": true,
"options": {
"systemMessage": "=## Information\nYou are a business marketing expert.\nYou will be provided with a job posting from a business. You need to find out the core business idea.\n\n## Instructions\n- You must call \"Get Core Business Idea\" tool to find out the real business idea behind the job description posted.\n\n## Output\nThis is the exact format needed for output\n\n### Input\nI found this job on upwork, what can be the code business idea behind this?\n\n[business idea here]\n\n### Output\nidea: [core business idea]"
}
},
"type": "@n8n/n8n-nodes-langchain.agent",
"typeVersion": 2,
"position": [
1360,
0
],
"id": "b0f30a1b-8d26-42db-a866-eff12ee08194",
"name": "Validator Agent",
"retryOnFail": true,
"maxTries": 2,
"onError": "continueErrorOutput"
},
{
"parameters": {
"rules": {
"values": [
{
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "strict",
"version": 2
},
"conditions": [
{
"leftValue": "={{ $json.project_budget_total }}",
"rightValue": "",
"operator": {
"type": "number",
"operation": "exists",
"singleValue": true
},
"id": "c3118517-18af-4f11-bbfa-71b2598d4d61"
}
],
"combinator": "and"
},
"renameOutput": true,
"outputKey": "Total Pay"
},
{
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "strict",
"version": 2
},
"conditions": [
{
"id": "1253f1fb-407c-4254-a7b3-b1f3792f16b7",
"leftValue": "={{ $json.project_budget_hourly_max }}",
"rightValue": "",
"operator": {
"type": "number",
"operation": "exists",
"singleValue": true
}
}
],
"combinator": "and"
},
"renameOutput": true,
"outputKey": "Hourly Pay"
}
]
},
"options": {}
},
"type": "n8n-nodes-base.switch",
"typeVersion": 3.2,
"position": [
448,
0
],
"id": "b801dc33-e317-4143-89ef-21025ef6a4e3",
"name": "Switch"
},
{
"parameters": {
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "strict",
"version": 2
},
"conditions": [
{
"id": "b9a31df5-84d1-4ef8-9cfb-0fe7f581e327",
"leftValue": "={{ $json.project_budget_total }}",
"rightValue": 500,
"operator": {
"type": "number",
"operation": "gt"
}
}
],
"combinator": "and"
},
"options": {}
},
"type": "n8n-nodes-base.filter",
"typeVersion": 2.2,
"position": [
672,
-96
],
"id": "4e683cad-b46b-4366-898e-ac5f0df86c41",
"name": "Big Total Projects"
},
{
"parameters": {
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "strict",
"version": 2
},
"conditions": [
{
"id": "2305cd3c-0eab-431a-bb04-13cbf44496fa",
"leftValue": "={{ $json.project_budget_hourly_max }}",
"rightValue": 100,
"operator": {
"type": "number",
"operation": "gt"
}
}
],
"combinator": "and"
},
"options": {}
},
"type": "n8n-nodes-base.filter",
"typeVersion": 2.2,
"position": [
672,
112
],
"id": "e8e6e88a-33cb-4687-a1fd-6a042dc3edfc",
"name": "Big Hourly Projects"
},
{
"parameters": {},
"type": "n8n-nodes-base.merge",
"typeVersion": 3.2,
"position": [
880,
0
],
"id": "058b7d38-06e7-407c-90d8-758082b2293c",
"name": "Merge"
},
{
"parameters": {
"jsonSchemaExample": "{\n\t\"idea\": \"business-code-idea-herre\"\n}"
},
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"typeVersion": 1.2,
"position": [
1632,
208
],
"id": "a8178e95-700f-4284-9294-2c2756142276",
"name": "Structured Output Parser"
},
{
"parameters": {
"operation": "append",
"documentId": {
"__rl": true,
"value": "1QEG9psLspm5NrZesvcdxwTIOObEZT0MJQmXGf9mPBtQ",
"mode": "list",
"cachedResultName": "Business Idea Extractor",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1QEG9psLspm5NrZesvcdxwTIOObEZT0MJQmXGf9mPBtQ/edit?usp=drivesdk"
},
"sheetName": {
"__rl": true,
"value": "gid=0",
"mode": "list",
"cachedResultName": "Sheet1",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1QEG9psLspm5NrZesvcdxwTIOObEZT0MJQmXGf9mPBtQ/edit#gid=0"
},
"columns": {
"mappingMode": "defineBelow",
"value": {
"Upwork ID": "={{ $('Merge').item.json.id }}",
"Business Idea": "={{ $json.output.idea }}",
"Status": "New",
"Original Description": "={{ $('Merge').item.json.description_text }}",
"Upwork URL": "={{ $('Merge').item.json.url }}",
"Hourly Payment": "={{ $('Merge').item.json.project_budget_hourly_min ? `${$('Merge').item.json.project_budget_hourly_min} ${$('Merge').item.json.project_budget_currency} - ${$('Merge').item.json.project_budget_hourly_max} ${$('Merge').item.json.project_budget_currency}` : \"No hourly pay\" }}",
"Lumpsum Payment": "={{ $('Merge').item.json.project_budget_total? `${$('Merge').item.json.project_budget_total} ${$('Merge').item.json.project_budget_currency}`: \"No total pay\" }}"
},
"matchingColumns": [],
"schema": [
{
"id": "Upwork ID",
"displayName": "Upwork ID",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true
},
{
"id": "Business Idea",
"displayName": "Business Idea",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true
},
{
"id": "Status",
"displayName": "Status",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true
},
{
"id": "Original Description",
"displayName": "Original Description",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true
},
{
"id": "Upwork URL",
"displayName": "Upwork URL",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true
},
{
"id": "Hourly Payment",
"displayName": "Hourly Payment",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true
},
{
"id": "Lumpsum Payment",
"displayName": "Lumpsum Payment",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true
}
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {}
},
"type": "n8n-nodes-base.googleSheets",
"typeVersion": 4.6,
"position": [
1920,
0
],
"id": "ab2fa6ee-5816-4567-a5a8-0b4ab82544c5",
"name": "Business Idea Sheet",
"credentials": {
"googleSheetsOAuth2Api": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"model": "openai/gpt-4.1-nano",
"options": {}
},
"type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
"typeVersion": 1,
"position": [
1232,
208
],
"id": "f9506c9b-30d6-47c3-9d37-9a775df5eb54",
"name": "oAI 4.1 - Nano",
"credentials": {
"openRouterApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"model": "openai/gpt-4.1-nano",
"options": {}
},
"type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
"typeVersion": 1,
"position": [
320,
688
],
"id": "3c325f48-a8b4-4cd0-b4f8-3be2379e0493",
"name": "oAI 4.1",
"credentials": {
"openRouterApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"content": "## Find Job Listings\n- Get's upto 100 job postings daily\n- We use HTTP Node to call RapidAPI\n\n### Setup\n- RapidAPI - [Subscribe this](https://rapidapi.com/fantastic-jobs-fantastic-jobs-default/api/upwork-jobs-api2/playground/apiendpoint_d6359180-d93a-4c80-877c-b85d5dfbd5bd)\n- Here's how to setup [RapidAPI](https://x.com/search?q=from%3Aarchitjn%20%22n8n%20Basics%22%20%22RapidAPI%22&src=typed_query&f=top)",
"height": 560,
"width": 440
},
"type": "n8n-nodes-base.stickyNote",
"position": [
-64,
-224
],
"typeVersion": 1,
"id": "312cd974-e33c-42dd-8460-e9b11583ef62",
"name": "Sticky Note"
},
{
"parameters": {
"content": "## Filter high paying jobs only\n- Filters based on the amount offered for the job\n- You can edit to save your own amount ",
"height": 560,
"width": 640,
"color": 3
},
"type": "n8n-nodes-base.stickyNote",
"position": [
400,
-224
],
"typeVersion": 1,
"id": "e167543c-6ed4-40df-8bb4-7cda4a8090d6",
"name": "Sticky Note1"
},
{
"parameters": {
"content": "## Process Job Listing for Idea",
"height": 560,
"width": 720,
"color": 4
},
"type": "n8n-nodes-base.stickyNote",
"position": [
1072,
-224
],
"typeVersion": 1,
"id": "63329ded-cc8b-41f8-bfe6-30b20354ce3d",
"name": "Sticky Note2"
},
{
"parameters": {
"content": "## Save the ideas\n- Here's how to setup [Google Sheets](https://x.com/search?q=from%3Aarchitjn%20%22n8n%20Basics%22%20%22google%20sheets%22&src=typed_query&f=top)\n- Download the sample Sheet provided with the workflow\n- Upload it to Google Sheets, and Link your sheet in this Node",
"height": 560,
"width": 340,
"color": 5
},
"type": "n8n-nodes-base.stickyNote",
"position": [
1808,
-224
],
"typeVersion": 1,
"id": "0c39320a-4f28-4595-9256-4da336f42fa6",
"name": "Sticky Note3"
},
{
"parameters": {
"content": "## Understands and extracts core business idea",
"height": 440,
"width": 660,
"color": 6
},
"type": "n8n-nodes-base.stickyNote",
"position": [
-64,
384
],
"typeVersion": 1,
"id": "ed36d331-a924-4585-8dcb-bef41868e337",
"name": "Sticky Note4"
}
],
"connections": {
"Schedule Trigger": {
"main": [
[
{
"node": "HTTP Request",
"type": "main",
"index": 0
}
]
]
},
"HTTP Request": {
"main": [
[
{
"node": "Switch",
"type": "main",
"index": 0
}
]
]
},
"Job Description": {
"main": [
[
{
"node": "Validator Agent",
"type": "main",
"index": 0
}
]
]
},
"Get Core Business Idea": {
"ai_tool": [
[
{
"node": "Validator Agent",
"type": "ai_tool",
"index": 0
}
]
]
},
"When Executed by Another Workflow": {
"main": [
[
{
"node": "Code Idea Agent",
"type": "main",
"index": 0
}
]
]
},
"Switch": {
"main": [
[
{
"node": "Big Total Projects",
"type": "main",
"index": 0
}
],
[
{
"node": "Big Hourly Projects",
"type": "main",
"index": 0
}
]
]
},
"Big Hourly Projects": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 1
}
]
]
},
"Big Total Projects": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 0
}
]
]
},
"Merge": {
"main": [
[
{
"node": "Job Description",
"type": "main",
"index": 0
}
]
]
},
"Validator Agent": {
"main": [
[
{
"node": "Business Idea Sheet",
"type": "main",
"index": 0
}
]
]
},
"Structured Output Parser": {
"ai_outputParser": [
[
{
"node": "Validator Agent",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"oAI 4.1 - Nano": {
"ai_languageModel": [
[
{
"node": "Validator Agent",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"oAI 4.1": {
"ai_languageModel": [
[
{
"node": "Code Idea Agent",
"type": "ai_languageModel",
"index": 0
}
]
]
}
},
"active": false,
"settings": {
"executionOrder": "v1"
},
"versionId": "259a67c3-0847-4f98-9078-6896e1e353a0",
"meta": {
"templateCredsSetupCompleted": true
},
"id": "OFvs6LyLZABBuDvn",
"tags": []
}
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.
googleSheetsOAuth2ApihttpHeaderAuthopenRouterApi
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
Business Idea Validator. Uses httpRequest, executeWorkflowTrigger, toolWorkflow, agent. Scheduled trigger; 20 nodes.
Source: https://gist.github.com/architjn/b1216a91a4dbee571b309b1af2ed234b — 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.
This n8n workflow turns a script and character/setting description from Google Sheets into a complete stitched UGC-style video ad, fully automated from intake to final delivery.
[](https://youtu.be/sKJAypXDTLA)
How it works Runs at set times to fetch new Upwork job listings. Checks each job’s total or hourly budget and keeps only higher-budget ones. Extracts the job description for those selected jobs. Uses
The AI-Powered Shopify SEO Content Automation is an enterprise-grade workflow that transforms product content creation for e-commerce stores. This sophisticated multi-agent system integrates GPT-4o, C
This comprehensive workflow automates the complete financial document processing pipeline using AI. Upload invoices via chat, drop expense receipts into a folder, or add bank statements - the system a