{
  "name": "Recipe recommendation engine with Bright Data MCP & OpenAI 4o mini",
  "nodes": [
    {
      "id": "e1aeff42-0129-48df-b69b-927ef3e89f21",
      "name": "When clicking ‘Test workflow’",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        -600,
        145
      ]
    },
    {
      "id": "50ddc2f7-89d1-4fb8-a47a-6b77ddb309da",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -200,
        60
      ],
      "parameters": {
        "width": 440,
        "height": 320,
        "content": "## Recipe Data Scraper"
      }
    },
    {
      "id": "da4a520e-0960-4262-af8e-82fb365546cb",
      "name": "List all tools for Bright Data",
      "type": "n8n-nodes-mcp.mcpClient",
      "position": [
        -380,
        145
      ]
    },
    {
      "id": "67dead27-adee-458e-9040-25aabf69c845",
      "name": "Set the Recipe Extract URL",
      "type": "n8n-nodes-base.set",
      "position": [
        -160,
        145
      ]
    },
    {
      "id": "e5d42bd3-2c23-42e6-be3b-c6e505cd585b",
      "name": "Paginated Data Extract",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "position": [
        280,
        145
      ]
    },
    {
      "id": "136c1487-4164-4b7e-b2ed-f9d29017f539",
      "name": "Loop Over Items",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        876,
        145
      ]
    },
    {
      "id": "a10d507e-cd18-474f-998a-64f435b9d230",
      "name": "Code to output the array of paginated info",
      "type": "n8n-nodes-base.code",
      "position": [
        656,
        145
      ]
    },
    {
      "id": "2047cdb3-ce19-4254-8d52-f99ec5101e18",
      "name": "Structured Output Parser for Paginated Data",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        500,
        380
      ]
    },
    {
      "id": "4e912c2c-12a1-45ee-a821-9e1fd873120c",
      "name": "Bright Data MCP Client For Recipe Extract",
      "type": "n8n-nodes-mcp.mcpClient",
      "position": [
        60,
        145
      ]
    },
    {
      "id": "b14070b3-da81-4356-bef5-e70399893ce7",
      "name": "Bright Data MCP Client For Recipe Extract Within The Loop",
      "type": "n8n-nodes-mcp.mcpClient",
      "position": [
        1480,
        160
      ]
    },
    {
      "id": "0577e0ca-162f-40bc-b96f-fbe5f9690826",
      "name": "Structured Output Parser for Recipe Data Extract",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        1900,
        360
      ]
    },
    {
      "id": "dc24bede-a05a-45be-bea8-abd4efec5679",
      "name": "Create a binary data",
      "type": "n8n-nodes-base.function",
      "position": [
        2200,
        160
      ]
    },
    {
      "id": "82630ed0-d321-42bd-ae68-e790228a61c7",
      "name": "Webhook Notification for Data Extract Within the Loop",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        2120,
        340
      ]
    },
    {
      "id": "c2b53242-8c0d-49a4-8cdb-27da64377d50",
      "name": "Write the structured content to disk",
      "type": "n8n-nodes-base.readWriteFile",
      "position": [
        2500,
        160
      ]
    },
    {
      "id": "f4eef0b9-8a1d-4eb2-92fc-7f4ee9d48898",
      "name": "Structured Recipe Data Extract",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "position": [
        1740,
        160
      ]
    },
    {
      "id": "bd64603d-230b-4318-b365-b186826454f0",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        820,
        -160
      ],
      "parameters": {
        "width": 440,
        "height": 120,
        "content": "## Disclaimer\nThis template is only available on n8n self-hosted as it's making use of the community node for MCP Client."
      }
    },
    {
      "id": "3715be91-c809-495c-8a4e-ca58cf9de999",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        820,
        0
      ],
      "parameters": {
        "width": 1860,
        "height": 540,
        "content": "## Structured Data Extract\n\nUsing MCP and LLMs for handling the Structured Data Extraction. Loop through the paginated dataset and handling the data extract.\n"
      }
    },
    {
      "id": "c5d846da-581a-4182-a52d-0e29b302150e",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -680,
        -340
      ],
      "parameters": {
        "width": 400,
        "height": 320,
        "content": "## Note\n\nDeals with the Recipe data extraction by utilizing the Bright Data MCP and OpenAI GPT 4o LLM.\n\n**Please make sure to set the input fields node with the Recipe URL\n\nPlease make sure to update "
      }
    },
    {
      "id": "3af431fa-63fd-4140-8e86-8443a6ae013f",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -200,
        -240
      ],
      "parameters": {
        "width": 440,
        "height": 220,
        "content": "## LLM Usages\n\nOpenAI 4o mini LLM is being utilized for the structured data extraction handling."
      }
    },
    {
      "id": "367bed09-cc77-4955-ada5-d71111bdfef1",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -680,
        -780
      ],
      "parameters": {
        "width": 400,
        "height": 400,
        "content": "## Logo\n\n\n![logo](https://images.seeklogo.com/logo-png/43/1/brightdata-logo-png_seeklogo-439974.png)\n"
      }
    },
    {
      "id": "cbe55c76-4a62-4c15-af34-b49e037d779b",
      "name": "OpenAI Chat Model for Paginated Data Extract",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        280,
        380
      ]
    },
    {
      "id": "566f7f77-8eed-4ea2-9402-ccb46a13bf52",
      "name": "OpenAI Chat Model for Structured Data Extract",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        1700,
        360
      ]
    },
    {
      "id": "fca8b6ce-a17c-416f-acc2-6a7a8bbf5b7b",
      "name": "Wait",
      "type": "n8n-nodes-base.wait",
      "position": [
        1180,
        160
      ]
    }
  ],
  "connections": {
    "Wait": {
      "main": [
        [
          {
            "node": "Bright Data MCP Client For Recipe Extract Within The Loop",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Loop Over Items": {
      "main": [
        [],
        [
          {
            "node": "Wait",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create a binary data": {
      "main": [
        [
          {
            "node": "Write the structured content to disk",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Paginated Data Extract": {
      "main": [
        [
          {
            "node": "Code to output the array of paginated info",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set the Recipe Extract URL": {
      "main": [
        [
          {
            "node": "Bright Data MCP Client For Recipe Extract",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "List all tools for Bright Data": {
      "main": [
        [
          {
            "node": "Set the Recipe Extract URL",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Structured Recipe Data Extract": {
      "main": [
        [
          {
            "node": "Create a binary data",
            "type": "main",
            "index": 0
          },
          {
            "node": "Webhook Notification for Data Extract Within the Loop",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "When clicking ‘Test workflow’": {
      "main": [
        [
          {
            "node": "List all tools for Bright Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Write the structured content to disk": {
      "main": [
        []
      ]
    },
    "Bright Data MCP Client For Recipe Extract": {
      "main": [
        [
          {
            "node": "Paginated Data Extract",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Code to output the array of paginated info": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Structured Output Parser for Paginated Data": {
      "ai_outputParser": [
        [
          {
            "node": "Paginated Data Extract",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model for Paginated Data Extract": {
      "ai_languageModel": [
        [
          {
            "node": "Paginated Data Extract",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model for Structured Data Extract": {
      "ai_languageModel": [
        [
          {
            "node": "Structured Recipe Data Extract",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Structured Output Parser for Recipe Data Extract": {
      "ai_outputParser": [
        [
          {
            "node": "Structured Recipe Data Extract",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Webhook Notification for Data Extract Within the Loop": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Bright Data MCP Client For Recipe Extract Within The Loop": {
      "main": [
        [
          {
            "node": "Structured Recipe Data Extract",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}