AutomationFlowsAI & RAG › Scrape & Summarize Product Hunt Feedback with Browseract & Gemini AI

Scrape & Summarize Product Hunt Feedback with Browseract & Gemini AI

ByMadame AI Team | Kai @madame-ai on n8n.io

This workflow is essential for product managers, marketing teams, and founders who need to quickly gather and distill actionable insights from competitor launches to inform their own product strategy and positioning.

Event trigger★★★★☆ complexityAI-powered23 nodesN8N Nodes Browseract WorkflowsAgentOutput Parser StructuredGoogle SheetsGoogle Gemini ChatSlack
AI & RAG Trigger: Event Nodes: 23 Complexity: ★★★★☆ AI nodes: yes Added:

This workflow corresponds to n8n.io template #9894 — we link there as the canonical source.

This workflow follows the Agent → 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 →

Download .json
{
  "id": "ps9FWi8KPM1vbxYU",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "Product Hunt Launch Monitor (producthunt.com)",
  "tags": [],
  "nodes": [
    {
      "id": "01d6695a-a665-4699-8b9d-52bbed741e63",
      "name": "When clicking \u2018Execute workflow\u2019",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        -512,
        -48
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "95abc443-7c72-4ad8-bcbb-6087f294115d",
      "name": "Run a workflow task",
      "type": "n8n-nodes-browseract-workflows.browserAct",
      "position": [
        48,
        -32
      ],
      "parameters": {
        "workflowId": "56972105791704183",
        "inputParameters": {
          "parameters": [
            {
              "name": "ProductName",
              "value": "={{ $json[\"Product name\"] }}"
            },
            {
              "name": "Total_review",
              "value": "30"
            }
          ]
        },
        "additionalFields": {
          "saveBrowserData": true
        }
      },
      "credentials": {
        "browserActApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "5e3296c3-9211-4c57-8067-353241fa2e81",
      "name": "Get details of a workflow task",
      "type": "n8n-nodes-browseract-workflows.browserAct",
      "position": [
        208,
        -32
      ],
      "parameters": {
        "taskId": "={{ $json.id }}",
        "operation": "getTask",
        "maxWaitTime": "=600",
        "waitForFinish": true
      },
      "credentials": {
        "browserActApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "b8ae01a0-1c97-449f-abc0-88a84d3dbe7f",
      "name": "AI Agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        496,
        -32
      ],
      "parameters": {
        "text": "=Analyze the following text, which consists of all scraped comments from a competitor's Product Hunt launch page. Your output must be formatted into two distinct, prioritized lists.\nConstraint 1 (Output Structure): The response must contain only the two headings and their corresponding bullet points.\nConstraint 2 (Insight Quality): The points must be succinct, summarizing the overall sentiment across the entire comment block.\n\nInput Data =  {{ $json.output.string }}\n\nSummarize the feedback into two distinct lists. The points must be succinct, summarizing the overall sentiment across the entire comment block.\n\nadd the summary of the all reviews you analyzied into the \"Summary\"\nadd Summary of positive Comemnts to \"Positive\"\nadd Summary of negative comments , issues , Key Concerns & Questions , Pricing Issues, Missing Features, or Technical Problems)\n to \"Negative\"\nadd Product name to \"Product\"\nbased on teh negative and positive comments creat recomendation for similar product to be succesfull and add it \"Recomendation\"\n\n{\n\"Positive\":\"<String>\",\n\"Negative\":\"<String>\",\n\"Summary\":\"<String>\",\n\"Product\":\"<String>\",\n\"Recommendation\":\"<String>\"\n}",
        "options": {
          "systemMessage": "You are a competitive intelligence analyst specializing in startup product launches. Your sole task is to analyze raw, unfiltered community comments and extract actionable insights. Do not add any introductory or concluding commentary."
        },
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 2.2
    },
    {
      "id": "b069b4cb-aaf8-4f7a-9889-2ecf7a86250d",
      "name": "Structured Output Parser",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        640,
        128
      ],
      "parameters": {
        "jsonSchemaExample": "{\n\"Positive\":\"<String>\",\n\"Negative\":\"<String>\",\n\"Summary\":\"<String>\",\n\"Product\":\"<String>\",\n\"Recommendation\":\"<String>\"\n}"
      },
      "typeVersion": 1.3
    },
    {
      "id": "05ffe276-bdc7-4798-a0bb-f99b0e73590b",
      "name": "Append row in sheet",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        960,
        -32
      ],
      "parameters": {
        "columns": {
          "value": {
            "Product": "={{ $json.output.Product }}",
            "Summary": "={{ $json.output.Summary }}",
            "Negative": "={{ $json.output.Negative }}",
            "Positive": "={{ $json.output.Positive }}",
            "Recomendation": "={{ $json.output.Recommendation }}"
          },
          "schema": [
            {
              "id": "Product",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Product",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Summary",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Summary",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Positive",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Positive",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Negative",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Negative",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Recomendation",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Recomendation",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "append",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1psgSUDUPbndb6QUT6opLXuguwJ7ysqIMdKOHCcZGOPc/edit#gid=0",
          "cachedResultName": "Product Hunt Launch Monitor"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1psgSUDUPbndb6QUT6opLXuguwJ7ysqIMdKOHCcZGOPc",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1psgSUDUPbndb6QUT6opLXuguwJ7ysqIMdKOHCcZGOPc/edit?usp=drivesdk",
          "cachedResultName": "BrowserAct Test 2"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "bf4b285c-0a89-4aab-b272-e72816eaf89e",
      "name": "Sticky Note - Intro",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1008,
        -352
      ],
      "parameters": {
        "width": 464,
        "height": 450,
        "content": "## Try It Out!\n### This template provides automated competitive intelligence by scraping and summarizing Product Hunt launch feedback with a specialized AI analyst.\n\n### How it works\n* The workflow is triggered **manually**. You can replace this with a **Schedule Trigger** to monitor new products automatically.\n* A **BrowserAct** node scrapes all the comments from a specified Product Hunt launch page.\n* An **AI Agent**, powered by **Google Gemini**, acts as a competitive intelligence analyst, reading all the comments.\n* The AI distills the feedback into a concise summary, highlighting key positive and negative points.\n* The structured analysis is then saved as a new row in a **Google Sheet** for easy review and tracking.\n\n### Requirements\n* **BrowserAct** API account for web scraping.\n* **BrowserAct** n8n Community Node -> ([n8n Nodes BrowserAct](https://www.npmjs.com/package/n8n-nodes-browseract-workflows))\n* **Google Gemini** account for the AI Agent.\n* **Google Sheets** credentials for saving the analysis.\n* A BrowserAct template named **\u201cProduct Hunt Launch Monitor\u201d**.\n\n### Need Help?\nJoin the [Discord](https://discord.com/invite/UpnCKd7GaU) or Visit Our [Blog](https://www.browseract.com/blog)!\n"
      },
      "typeVersion": 1
    },
    {
      "id": "95d02038-8f35-4958-a6dd-2ae2a56bcfab",
      "name": "Sticky Note - How to Use",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1008,
        112
      ],
      "parameters": {
        "width": 464,
        "height": 208,
        "content": "## How to use\n\n1.  **Set up Credentials:** Add your credentials for **BrowserAct**, **Google Gemini**, and **Google Sheets**.\n2.  **Set up BrowserAct Template:** Ensure you Use the **\u201cProduct Hunt Launch Monitor\u201d** template in your BrowserAct account.\n3.  **Customize Your Analysis:** In the **Run a workflow task** node, change the `ProductName` and `Total_review` values to target a specific product launch.\n4.  **Activate Workflow:** Manually trigger the workflow by clicking 'Execute Workflow'. For automation, replace the trigger with a `Schedule Trigger` and activate the workflow."
      },
      "typeVersion": 1
    },
    {
      "id": "1c143c62-477c-4853-9202-8e353778398b",
      "name": "Sticky Note - Need Help",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1008,
        336
      ],
      "parameters": {
        "width": 464,
        "height": 152,
        "content": "### Need Help?\n* #### [How to Find Your BrowseAct API Key & Workflow ID](https://www.youtube.com/watch?v=pDjoZWEsZlE)\n* #### [How to Connect n8n to Browseract](https://www.youtube.com/watch?v=RoYMdJaRdcQ)\n* #### [How to Use & Customize BrowserAct Templates](https://www.youtube.com/watch?v=CPZHFUASncY)\n* #### [How to Use the BrowserAct N8N Community Node](https://youtu.be/j0Nlba2pRLU)\n* #### [Steal Your Competitor's Weaknesses (Product Hunt + BrowserAct + n8n)](https://youtu.be/87327LGJYi8)"
      },
      "typeVersion": 1
    },
    {
      "id": "e90230ba-a6dd-47ee-b8f9-26bc20e54066",
      "name": "Sticky Note - Data Collection",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -16,
        -224
      ],
      "parameters": {
        "color": 5,
        "width": 384,
        "height": 164,
        "content": "### \ud83d\udcca 1. Data Collection\n\n* **BrowserAct Nodes:** This pair of nodes is your data engine. The first one starts the task of scraping all the comments from a Product Hunt page based on your inputs.\n\nThe second node waits patiently for the job to complete before sending the raw data to the AI."
      },
      "typeVersion": 1
    },
    {
      "id": "fbdbe782-66fb-4e04-9352-0cb3a1a1dc6e",
      "name": "Sticky Note - AI Analyst",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        384,
        -224
      ],
      "parameters": {
        "color": 4,
        "width": 480,
        "height": 176,
        "content": "### \ud83e\udde0 2. The AI Analyst\n\nThis is the most powerful part of the workflow.\n\n* **AI Agent:** The prompt and system message here are expertly crafted to turn Google Gemini into a specialized competitive intelligence analyst. It doesn't just read the comments; it understands and synthesizes them.\n* **Structured Output:** The agent is forced to provide a clean, structured JSON output, summarizing all feedback into actionable categories: `Positive`, `Negative`, and an overall `Summary`."
      },
      "typeVersion": 1
    },
    {
      "id": "700360f6-be3d-41d0-abdf-45c5e7ef043c",
      "name": "Sticky Note - Reporting",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        880,
        -224
      ],
      "parameters": {
        "color": 3,
        "height": 164,
        "content": "### \ud83d\udcc8 3. Storing the Analysis\n\n* **Google Sheets Node:** This node acts as your final report. It takes the structured insights from the AI analyst and appends them to your sheet. Over time, this creates a valuable, easy-to-read log of competitor launch feedback that you can use to inform your own product strategy."
      },
      "typeVersion": 1
    },
    {
      "id": "a5a04463-1e36-45ff-90bb-b1dccffa97d5",
      "name": "Gemini",
      "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
      "position": [
        496,
        128
      ],
      "parameters": {
        "options": {}
      },
      "credentials": {
        "googlePalmApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "788e5ae3-1cea-4ced-aa46-7b28cb55a9ef",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -16,
        -48
      ],
      "parameters": {
        "color": 5,
        "width": 384,
        "height": 192,
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "a0d0a408-6efc-4663-8fed-4937ac8c5655",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        384,
        -32
      ],
      "parameters": {
        "color": 4,
        "width": 480,
        "height": 272,
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "10a3b803-2196-4872-b125-75bba815918c",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        880,
        -48
      ],
      "parameters": {
        "color": 3,
        "height": 192,
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "f87d4f6e-7d30-47f2-b854-99641f9c51dc",
      "name": "Send a message",
      "type": "n8n-nodes-base.slack",
      "position": [
        32,
        -400
      ],
      "parameters": {
        "text": "The Product Hunt result for has been updated - Positive and negative node analyzed the recommendation added for the product",
        "select": "channel",
        "channelId": {
          "__rl": true,
          "mode": "list",
          "value": "C09LWT82KHN",
          "cachedResultName": "new_product_added"
        },
        "otherOptions": {},
        "authentication": "oAuth2"
      },
      "credentials": {
        "slackOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.3
    },
    {
      "id": "c90a2b9f-3647-4e3f-9540-7f298960f7c1",
      "name": "Loop Over Items",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        -192,
        -48
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 3
    },
    {
      "id": "0629faa1-796a-4593-a12d-1c07244458f5",
      "name": "Get row(s) in sheet",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -352,
        -48
      ],
      "parameters": {
        "options": {},
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": 546839436,
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1psgSUDUPbndb6QUT6opLXuguwJ7ysqIMdKOHCcZGOPc/edit#gid=546839436",
          "cachedResultName": "Product name for Hunt Lunch"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1psgSUDUPbndb6QUT6opLXuguwJ7ysqIMdKOHCcZGOPc",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1psgSUDUPbndb6QUT6opLXuguwJ7ysqIMdKOHCcZGOPc/edit?usp=drivesdk",
          "cachedResultName": "BrowserAct Test 2"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "d29fb7c0-db58-408f-9b23-499bbf689354",
      "name": "Sticky Note - Reporting1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        224,
        -416
      ],
      "parameters": {
        "color": 7,
        "width": 272,
        "height": 148,
        "content": "### \u23f0 4. Storing the Analysis\n\n* **Slack Nodes:**  Send Slack message, providing clear, actionable alerts to your team."
      },
      "typeVersion": 1
    },
    {
      "id": "5cd816bf-195a-4747-9086-8d8f0a15b402",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -16,
        -416
      ],
      "parameters": {
        "color": 7,
        "width": 224,
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "afa68426-7029-47a8-85f4-0bd1e53d6305",
      "name": "Sticky Note - Input & Loop",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -368,
        -224
      ],
      "parameters": {
        "color": 6,
        "width": 288,
        "height": 168,
        "content": "### \ud83d\udccb 1. Input & Loop\n\n* **Schedule Trigger:** Kicks off the entire process automatically.\n* **Google Sheets:** This node fetches your master list of resellers and products to be monitored.\n* **Loop Over Items:** This is essential. It ensures the workflow processes each reseller from your sheet individually, preventing data mix-ups."
      },
      "typeVersion": 1
    },
    {
      "id": "4c9d3cee-94ef-4035-a2eb-631f2c27c999",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -368,
        -48
      ],
      "parameters": {
        "color": 6,
        "width": 288,
        "height": 192,
        "content": ""
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "f29aac0e-6ce4-40ce-a54d-1e45d1dcd708",
  "connections": {
    "Gemini": {
      "ai_languageModel": [
        [
          {
            "node": "AI Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "AI Agent": {
      "main": [
        [
          {
            "node": "Append row in sheet",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Send a message": {
      "main": [
        []
      ]
    },
    "Loop Over Items": {
      "main": [
        [
          {
            "node": "Send a message",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Run a workflow task",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Append row in sheet": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get row(s) in sheet": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Run a workflow task": {
      "main": [
        [
          {
            "node": "Get details of a workflow task",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Structured Output Parser": {
      "ai_outputParser": [
        [
          {
            "node": "AI Agent",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Get details of a workflow task": {
      "main": [
        [
          {
            "node": "AI Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "When clicking \u2018Execute workflow\u2019": {
      "main": [
        [
          {
            "node": "Get row(s) in sheet",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

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.

Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

This workflow is essential for product managers, marketing teams, and founders who need to quickly gather and distill actionable insights from competitor launches to inform their own product strategy and positioning.

Source: https://n8n.io/workflows/9894/ — original creator credit. Request a take-down →

More AI & RAG workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

AI & RAG

This workflow is ideal for venture capitalists, sales teams, or market researchers who need to automatically track and compile lists of recently funded companies.

Agent, Google Sheets, Output Parser Structured +3
AI & RAG

CV → Match → Screen → Decide, all automated

HTTP Request, Information Extractor, Google Sheets +7
AI & RAG

This workflow is essential for e-commerce operators, dropshippers, and inventory managers who need to ensure their product pricing and stock levels are synchronized with multiple third-party suppliers

WooCommerce, N8N Nodes Browseract Workflows, Google Gemini Chat +3
AI & RAG

Never miss a competitor price change again.

@Decodo/N8N Nodes Decodo, Google Gemini Chat, Output Parser Structured +3
AI & RAG

This workflow is ideal for technical recruiters, hiring managers, and team leads who want to build a pipeline of qualified candidates based on specific technical skills and location.

N8N Nodes Browseract Workflows, Agent, Output Parser Structured +3