AutomationFlowsAI & RAG › Discover Real Market Problems From Reddit Posts with Openai

Discover Real Market Problems From Reddit Posts with Openai

ByCristian Tala Sánchez @cristiantala on n8n.io

This workflow is perfect for entrepreneurs, startup founders, product managers, researchers, and market analysts who want to automatically discover and analyze real market problems from online discussions. While this example focuses on identifying issues in the future of work…

Cron / scheduled trigger★★★★☆ complexityAI-powered13 nodesRedditOpenAIGoogle Sheets
AI & RAG Trigger: Cron / scheduled Nodes: 13 Complexity: ★★★★☆ AI nodes: yes Added:

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

This workflow follows the Google Sheets → OpenAI 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": "T0ReMcLxo5tdiqE3",
  "name": "Discover Real Market Problems from Reddit Posts with OpenAI",
  "tags": [],
  "nodes": [
    {
      "id": "973a9cd8-ed88-4325-8ea7-368e251238f5",
      "name": "Sticky: Workflow Overview (Yellow)",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -280,
        -40
      ],
      "parameters": {
        "color": "yellow",
        "width": 540,
        "height": 400,
        "content": "## Discover Real Market Problems from Reddit Posts with OpenAI\n\nThis workflow fetches fresh Reddit posts from **Teachers**, **Education**, and **RemoteWork**, filters for relevance, analyzes them with **OpenAI GPT-4.1**, and appends structured insights to **Google Sheets**.\n\n**What it detects:** real problem \u2192 underlying pain \u2192 proposed solution \u2192 impact, confidence, ease \u2192 ICE score.\n\n**Configure before running:**\n- Credentials: Reddit OAuth2, OpenAI API, Google Sheets OAuth2.\n- Google Sheet: set your **Spreadsheet ID** and **Sheet/Tab name** in the Google Sheets node.\n- Optional: Adjust the upvote threshold in the **+5 UPS** filter."
      },
      "typeVersion": 1
    },
    {
      "id": "ab7940ff-bbeb-4b46-8cb3-d5e9b7edc003",
      "name": "Sticky: Variables to Configure (White)",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -280,
        420
      ],
      "parameters": {
        "color": "white",
        "width": 540,
        "height": 300,
        "content": "## Variables & Credentials to Configure\n- **Reddit OAuth2**: connect your Reddit account in all Reddit nodes.\n- **OpenAI API**: set your OpenAI credential in the *Message a model* node.\n- **Google Sheets OAuth2**: connect to your Google account in the Sheets node.\n- **Spreadsheet ID**: replace the current ID in the Sheets node with your own.\n- **Sheet/Tab Name**: set to your target tab (e.g., `Sheet1`).\n- **Upvote threshold**: change `> 5` in the filter node if you want stricter/looser selection.\n- **Subreddits**: replace `Teachers`, `Education`, `remotework` to target other domains."
      },
      "typeVersion": 1
    },
    {
      "id": "b2d729c8-6626-43ab-aca6-30be2c92e7a2",
      "name": "Sticky: Google Sheets Fields (White)",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1740,
        -100
      ],
      "parameters": {
        "color": "white",
        "width": 480,
        "height": 400,
        "content": "## Google Sheets Fields (Schema & Meaning)\n- **SubRedit** *(string)*: Source subreddit name (e.g., `r/Teachers`).\n- **URL** *(string)*: Link to the original Reddit post.\n- **Title** *(string)*: Reddit post title.\n- **Content** *(string)*: Reddit post body (`selftext`).\n- **Short Description** *(string)*: Problem in <200 chars.\n- **Detected Pain** *(string)*: The explicit/implicit pain point.\n- **Possible Solution** *(string)*: Concrete, tech/AI-enabled solution idea.\n- **Impact** *(1\u201310)*: Size of affected population (10 = millions).\n- **Confidence** *(0.0\u20131.0)*: Confidence the problem is real.\n- **Ease** *(1\u201310)*: Ease to prototype/MVP (10 = hours, 5 = ~24h, 1 = weeks).\n- **ICE Score** *(number)*: `Impact * Confidence * Ease` (auto-calculated in the node)."
      },
      "typeVersion": 1
    },
    {
      "id": "35ae34aa-28a9-450c-aa8e-b1f237c4257d",
      "name": "Sticky: Prompts (White)",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1100,
        580
      ],
      "parameters": {
        "color": "white",
        "width": 700,
        "height": 620,
        "content": "## Prompts (English, Neutral)\n**User Prompt**\nAnalyze the following Reddit post to determine if it describes a real problem related to the future of work or education. If it does, identify the underlying pain point, briefly describe the problem, and propose a viable solution, preferably using AI or technology. Also evaluate its impact, your confidence level that it is a real problem, and how easy it would be to prototype a solution. Return ONLY a structured JSON.\n\nPost Title: `{{ $json.title }}`\nPost Content: `{{ $json.selftext }}`\n\n**System Prompt**\nYou are an expert analyst in detecting signals of real market problems, especially those related to the future of work and education. Your task is to analyze Reddit posts as potential symptoms of broader issues that could be solved with innovative, technological, and/or AI-based solutions.\n\nYour goal is: assess relevance (work/education), identify pain, propose feasible tech/AI solution, and score **impact**, **confidence**, and **ease**.\n\nJSON schema:\n```\n{\n  \"is_related\": true | false,\n  \"short_description\": \"<200 chars>\",\n  \"detected_pain\": \"string\",\n  \"possible_solution\": \"string\",\n  \"impact\": 1-10,\n  \"confidence\": 0.0-1.0,\n  \"ease\": 1-10\n}\n```"
      },
      "typeVersion": 1
    },
    {
      "id": "117fc69e-460a-467c-b062-3fd3e84a645a",
      "name": "Get many posts Teachers",
      "type": "n8n-nodes-base.reddit",
      "position": [
        620,
        140
      ],
      "parameters": {
        "limit": 50,
        "filters": {
          "category": "new"
        },
        "operation": "getAll",
        "subreddit": "Teachers"
      },
      "credentials": {
        "redditOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "5c09961a-49e7-46dc-95ec-72ea107727b9",
      "name": "Get many posts Education",
      "type": "n8n-nodes-base.reddit",
      "position": [
        620,
        360
      ],
      "parameters": {
        "limit": 50,
        "filters": {
          "category": "new"
        },
        "operation": "getAll",
        "subreddit": "Education"
      },
      "credentials": {
        "redditOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "c96e68b4-a51f-4f1b-8e99-c95c65be7ce8",
      "name": "Get many posts RemoteWork",
      "type": "n8n-nodes-base.reddit",
      "position": [
        620,
        540
      ],
      "parameters": {
        "limit": 50,
        "filters": {
          "category": "new"
        },
        "operation": "getAll",
        "subreddit": "remotework"
      },
      "credentials": {
        "redditOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "e5b186d7-71b3-4262-9589-164c09cf6b9e",
      "name": "Message a model",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "position": [
        1280,
        360
      ],
      "parameters": {
        "modelId": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4.1",
          "cachedResultName": "GPT-4.1"
        },
        "options": {},
        "messages": {
          "values": [
            {
              "content": "=Analyze the following Reddit post to determine if it describes a real problem related to the future of work or education. If it does, identify the underlying pain point, briefly describe the problem, and propose a viable solution, preferably using AI or technology. Also evaluate its impact, your confidence level that it is a real problem, and how easy it would be to prototype a solution. Return ONLY a structured JSON.\n\nPost Title: {{ $json.title }}\nPost Content: {{ $json.selftext }}"
            },
            {
              "role": "system",
              "content": "=You are an expert analyst in detecting signals of real market problems, especially those related to the future of work and education. Your task is to analyze Reddit posts as potential symptoms of broader issues that could be solved with innovative, technological, and/or AI-based solutions.\n\nYour goal is:\n\nAssess whether the content describes a real problem related to the future of education or employment.\n\nUnderstand the underlying pain point or unmet need.\n\nPropose a feasible solution using technological or AI tools, prioritizing actionable solutions with a quick MVP if possible.\n\nEvaluate the potential impact, confidence level regarding the validity of the problem, and the ease of prototyping a solution.\n\nYou must return only a valid JSON in the following format:\n\n{\n  \"is_related\": true | false,\n  \"short_description\": \"Briefly explain in under 200 characters the identified problem\",\n  \"detected_pain\": \"Describe the main pain point or explicit/implicit need in the post\",\n  \"possible_solution\": \"Propose a concrete and detailed solution to the problem, using technology and AI tools if applicable\",\n  \"impact\": 1-10, // How many people could the solution help? (10 = millions, 1 = a few)\n  \"confidence\": 0.0-1.0, // How certain are you that this is a real problem? Use decimal percentages\n  \"ease\": 1-10 // How easy is it to build an MVP or proof of concept? (10 = landing page in hours, 5 = POC in 24h, 1 = takes weeks)\n}"
            }
          ]
        },
        "jsonOutput": true
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.8
    },
    {
      "id": "c3de3cb6-feb1-4131-96c1-b22854dd23a2",
      "name": "Schedule Trigger",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        400,
        360
      ],
      "parameters": {
        "rule": {
          "interval": [
            {}
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "948c9ca8-2fe0-4798-acfa-81ca063145bd",
      "name": "Merger",
      "type": "n8n-nodes-base.merge",
      "position": [
        860,
        360
      ],
      "parameters": {
        "numberInputs": 3
      },
      "typeVersion": 3.2
    },
    {
      "id": "a54491c6-e71a-493d-9a46-27d36e7e7782",
      "name": "+5 UPS",
      "type": "n8n-nodes-base.filter",
      "position": [
        1060,
        360
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "66a1151e-872b-47dd-9358-4a158d66f5e3",
              "operator": {
                "type": "number",
                "operation": "gt"
              },
              "leftValue": "={{ $json.ups }}",
              "rightValue": 5
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "a31da91e-089b-4372-b259-76f3bec462d1",
      "name": "is_related",
      "type": "n8n-nodes-base.filter",
      "position": [
        1660,
        360
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "86cfccd5-3cd3-483e-818f-9f78c78df5b1",
              "operator": {
                "type": "boolean",
                "operation": "true",
                "singleValue": true
              },
              "leftValue": "={{ $json.message.content.is_related }}",
              "rightValue": ""
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "2e9c09f3-0b41-464f-9b83-8b066cca4cc8",
      "name": "Add to Market Pains List",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1920,
        360
      ],
      "parameters": {
        "columns": {
          "value": {
            "URL": "={{ $('Merger').item.json.url }}",
            "Ease": "={{ $json.message.content.ease }}",
            "Title": "={{ $('Merger').item.json.title }}",
            "Impact": "={{ $json.message.content.impact }}",
            "Content": "={{ $('Merger').item.json.selftext }}",
            "SubRedit": "={{ $('Merger').item.json.subreddit_name_prefixed }}",
            "ICE Score": "={{ $json.message.content.impact *$json.message.content.confidence*$json.message.content.ease}}",
            "Confidence": "={{ $json.message.content.confidence }}",
            "Detected Pain": "={{ $json.message.content.detected_pain }}",
            "Possible Solution": "={{ $json.message.content.possible_solution }}",
            "Short Description": "={{ $json.message.content.short_description }}"
          },
          "schema": [
            {
              "id": "SubRedit",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "SubRedit",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "URL",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "URL",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Title",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Title",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Content",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Content",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Short Description",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Short Description",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Detected Pain",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Detected Pain",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Possible Solution",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Possible Solution",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Impact",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Impact",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Confidence",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Confidence",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Ease",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Ease",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "ICE Score",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "ICE Score",
              "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/14nxsrM7DidPS936uIXBGAErMVmOZqdEZE25c6yu436E/edit#gid=0",
          "cachedResultName": "Hoja 1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "14nxsrM7DidPS936uIXBGAErMVmOZqdEZE25c6yu436E",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/14nxsrM7DidPS936uIXBGAErMVmOZqdEZE25c6yu436E/edit?usp=drivesdk",
          "cachedResultName": "Market Oportunities"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.6
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "53cc42d4-86e4-4d26-b095-8a2d7d4baeb6",
  "connections": {
    "+5 UPS": {
      "main": [
        [
          {
            "node": "Message a model",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Merger": {
      "main": [
        [
          {
            "node": "+5 UPS",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "is_related": {
      "main": [
        [
          {
            "node": "Add to Market Pains List",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Message a model": {
      "main": [
        [
          {
            "node": "is_related",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Schedule Trigger": {
      "main": [
        [
          {
            "node": "Get many posts Teachers",
            "type": "main",
            "index": 0
          },
          {
            "node": "Get many posts Education",
            "type": "main",
            "index": 0
          },
          {
            "node": "Get many posts RemoteWork",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get many posts Teachers": {
      "main": [
        [
          {
            "node": "Merger",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get many posts Education": {
      "main": [
        [
          {
            "node": "Merger",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Get many posts RemoteWork": {
      "main": [
        [
          {
            "node": "Merger",
            "type": "main",
            "index": 2
          }
        ]
      ]
    }
  }
}

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 perfect for entrepreneurs, startup founders, product managers, researchers, and market analysts who want to automatically discover and analyze real market problems from online discussions. While this example focuses on identifying issues in the future of work…

Source: https://n8n.io/workflows/6248/ — 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 automates intelligent Reddit marketing by monitoring brand mentions, analyzing sentiment with AI, and engaging authentically with communities. Every 24 hours, the system searches Reddit

Reddit, OpenAI, Google Sheets +1
AI & RAG

AI Institutional Stock Valuation Engine with Risk Scoring & Scenario Targets

Google Sheets, XML, HTTP Request +3
AI & RAG

Overview This is a production-grade, fully automated stock analysis system built entirely in n8n. It combines institutional-level financial analysis, dual AI model consensus, and a self-improving back

Google Sheets, XML, HTTP Request +3
AI & RAG

This workflow enables the automatic and regular tracking of competitors' Instagram Reels, providing rich insights for each video (summary, topic, hook, angles, tags, etc) through ChatGPT, and storing

Google Sheets, Telegram, @Apify/N8N Nodes Apify +1
AI & RAG

Personalized Outreach & Follow-Up - Phase 2. Uses googleSheets, openAi, gmail, gmailTrigger. Scheduled trigger; 59 nodes.

Google Sheets, OpenAI, Gmail +2