{
  "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": []
}