Reddit Opportunity Finder avatar

Reddit Opportunity Finder

Under maintenance

Pricing

from $0.30 / report generated

Go to Apify Store
Reddit Opportunity Finder

Reddit Opportunity Finder

Under maintenance

Find Reddit-backed opportunities from up to 30 posts and 150 comments by default, with evidence URLs, transparent research plans, and optional BYOK AI.

Pricing

from $0.30 / report generated

Rating

0.0

(0)

Developer

SignalFlow Studio

SignalFlow Studio

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

10 days ago

Last modified

Share

Reddit Opportunity Finder turns public Reddit discussions into product opportunity, competitor complaint, and buying-intent reports. It is not a generic Reddit scraper: it is an evidence-backed research Actor for founders, product teams, agencies, growth marketers, and AI agents.

The Actor fetches bounded public Reddit posts and comments, extracts pain signals, scores buying intent, identifies mentioned tools and competitors, and returns actionable opportunities with Reddit evidence URLs.

Run Size and Cost Controls

The default public run is intentionally bounded so users can understand the amount of Reddit data being processed before they click Run:

  • Fetches up to 30 public Reddit posts.
  • Analyzes up to 8 public comments per post.
  • Analyzes up to 150 comments total.
  • Produces up to 10 ranked opportunities.
  • Includes Markdown, JSON, CSV, citations, evidence URLs, alerts, and monitoring fields in the same report.

The report is a structured research output, not a raw Reddit scrape. Users can lower Apify platform usage by reducing posts/comments or turning comments off, and can increase coverage within the hard caps when they need deeper research.

Optional AI enhancement is separate from the baseline rules-based report. BYOK model usage is billed by the selected AI provider to the API key owner.

What You Get

  • Direct answer for your analysis goal.
  • Scored product opportunities with suggested product angles.
  • Buying-intent score for each opportunity and evidence signal.
  • Competitor and tool mentions from Reddit discussions.
  • Evidence URLs back to public Reddit posts/comments.
  • Recommended validation actions.
  • Alerts for high-scoring opportunities and competitor mention spikes.
  • Monitoring comparison against a previous report.
  • Markdown, JSON, and CSV outputs.
  • Optional BYOK AI clustering and report polish.

Typical Use Cases

  • Find Shopify app ideas from Reddit pain points.
  • Monitor competitor complaints in an AI SaaS category.
  • Validate whether a niche has enough buying-intent signals.
  • Find content angles from repeated Reddit questions.
  • Run a scheduled Reddit market monitor and alert only on new/high-score signals.
  • Use the Actor from an AI agent through Apify MCP with predictable structured outputs.

Quick Start

npm install
npm run smoke
npm run validate:smoke

Real-data smoke input:

{
"mode": "reddit_discovery",
"analysisGoal": "Find Reddit-backed micro SaaS opportunities from pricing pain, manual workflows, and alternative requests.",
"market": "micro SaaS and ecommerce operations",
"subreddits": ["SaaS", "indiehackers", "shopify"],
"keywords": ["expensive", "alternative", "looking for", "manual"],
"timeRange": "month",
"maxPosts": 30,
"maxCommentsPerPost": 8,
"maxTotalComments": 150,
"maxOpportunities": 10,
"outputFormat": "markdown"
}

Local outputs:

  • outputs/smoke/output.json
  • outputs/smoke/report.md
  • outputs/smoke/report.csv

Presets

Use preset to start faster. You can still override subreddits, keywords, competitors, and scoring options.

  • custom
  • shopify_app_opportunities
  • ai_saas_competitor_complaints
  • creator_tools
  • local_business_software
  • b2b_sales_tools

Example:

{
"mode": "reddit_discovery",
"preset": "shopify_app_opportunities",
"analysisGoal": "What Shopify app opportunities show strong Reddit pain and buying intent?",
"maxPosts": 25,
"maxOpportunities": 8
}

Main Inputs

The Apify input form is grouped into:

  • Start here: analysis goal, preset, market, Reddit sources, and main limits.

  • Reddit source: known competitors, time range, and sorting.

  • AI / BYOK: model provider, user API key, and AI limits.

  • Monitoring: previous report, alert threshold, and scheduled-run controls.

  • Advanced controls: quality filters, comments, output options, proxy, and debug mode.

  • analysisGoal: agent-friendly research goal. It guides keyword hints and report framing; explicit subreddits and keywords remain the source-of-truth for Reddit collection.

  • market: market or niche context.

  • decisionGoal: find_product_opportunities, monitor_competitors, validate_market, find_content_angles, or detect_alerts.

  • subreddits: public subreddits without r/.

  • keywords: search and analysis terms.

  • knownCompetitors: tools or competitors to track.

  • timeRange: day, week, month, year, or all.

  • sort: relevance, new, top, or comments.

  • maxPosts, maxCommentsPerPost, maxTotalComments: bounded fetch controls.

  • minScore, minBuyingIntent, dedupeStrength: quality controls.

  • trendMode, previousReport, monitoringOnly, alertThreshold: monitoring controls.

BYOK AI

AI is optional. The rules-based analyzer always runs first and does not require a key.

Supported providers:

  • deepseek
  • openai
  • openrouter
  • anthropic
  • gemini
  • custom_openai_compatible

Inputs:

  • aiProvider: provider name.
  • aiMode: off, polish, cluster, or full.
  • aiApiKey: user-provided secret key. When this is set, model API costs are billed by the selected AI provider to the key owner.
  • Public BYOK runs use only the user-provided aiApiKey. Users must provide their own key for AI features.
  • aiModel: model name for the selected provider.
  • aiBaseUrl: optional override. Leave empty for provider default.
  • maxAiInputChars, maxAiOutputTokens: call-size limits. They reduce risk but are not exact billing caps.

AI safety behavior:

  • The Actor sends compact extracted signals, not unbounded raw Reddit dumps.
  • AI must return signalId references for evidence.
  • The program validates evidence IDs and backfills Reddit URLs from extracted signals.
  • If AI fails or no key is available, the rules-based report still returns and records the reason in summary.ai.

Cost Model

There are three separate cost layers:

  • Actor pay-per-event fees: paid by the run owner only after the Actor owner configures PPE events in Apify Console.
  • Apify platform usage: for the normal PPE mode, this is included in the event price and is deducted from the Actor owner's revenue/profit calculation. If the Actor owner enables "Pay per event + usage", the run owner pays platform usage separately.
  • AI provider usage: paid by the owner of the API key used for aiApiKey. Public users cannot trigger owner-paid AI fallback from the visible input schema.

Current public setup: platform usage is not passed through separately, so users see simple PPE event pricing. Higher post/comment limits can increase platform usage and reduce the Actor owner's margin, but hard caps and the internal fetch budget keep runs bounded. If monthly PPE revenue does not cover platform costs for this Actor, Apify reports that Actor's profit as zero rather than subtracting the loss from other Actors.

Pricing risk controls:

  • Current primary event: report_generated at $0.30; owner gross revenue after Apify margin is $0.24 before platform costs.
  • Observed cloud platform cost after the fetch-budget fix was $0.0253 for a real Reddit run with 8 discussions and 5 opportunities. A previous manually started long run cost about $0.078, which is still below the current primary-event owner gross revenue but showed why fixed pricing needs hard caps.
  • Public default run size is bounded at 30 posts and 150 comments; hard caps are 50 posts and 500 comments.
  • Internal Reddit fetch budget is 120 seconds so source fetching should not consume the full Apify run timeout.
  • Public users cannot trigger owner-paid AI fallback. BYOK model costs are paid by the user's own model provider account.

Recommended public setup:

  • Standard report PPE: one successful report_generated event per completed report.
  • Optional AI enhancement PPE: one ai_cluster_generated add-on event when BYOK AI enhancement succeeds.
  • Default data volume included in the report: up to 30 public Reddit posts, up to 8 comments per post, and up to 150 comments total.
  • Hard caps: 50 posts, 20 comments per post, and 500 comments total.
  • Keep aiProvider: "none" and aiMode: "off" by default.
  • Recommend BYOK for AI features.
  • Configure PPE events before relying on Actor revenue.

Agent-Ready Output

The first Dataset item includes:

  • answer: direct answer to analysisGoal.
  • confidence: low, medium, or high.
  • topOpportunities[]: compact ranked opportunities for agents.
  • recommendedActions[]: next actions tied to evidence.
  • citations[]: evidence URLs and quotes.
  • alerts[]: high-score opportunities or competitor mention spikes.
  • monetization: PPE charge attempts and charged counts.
  • opportunities[]: full opportunity objects.
  • summary: counts, AI status, top themes, top entities.
  • themeMap: signal counts by theme.
  • evidenceTable: compact evidence rows.
  • monitoringSummary: new/recurring/rising comparison when enabled.
  • markdownReport: full human-readable report.
  • csvReport: opportunity export.

Each opportunity includes title, score, buyingIntentScore, targetUser, painSummary, suggestedProduct, entities, evidence[], risks, and nextValidationStep.

The Actor also defines .actor/output_schema.json, so Apify Console and AI agents can discover where to read Dataset, JSON, Markdown, and CSV outputs.

Monitoring Mode

For scheduled runs:

  1. Run the Actor once and save outputs/smoke/output.json or the Dataset item.
  2. Pass that JSON into previousReport.
  3. Enable trendMode.
  4. Optionally enable monitoringOnly and set alertThreshold.

The output will include new opportunities, recurring opportunities, rising themes, new competitor mentions, and alerts.

Local Commands

npm run sample
npm run validate:sample
npm run sample:ai
npm run validate:sample-ai
npm run preset
npm run validate:preset
npm run smoke
npm run validate:smoke
npm test

Run a custom input:

$node src/main.js --input path/to/input.json --output-dir outputs/custom

Apify Deployment

Actor files:

  • .actor/actor.json
  • .actor/input_schema.json
  • .actor/output_schema.json
  • Dockerfile
  • src/main.js

Deploy:

$npx apify-cli@1.6.1 push

Cloud Actor:

  • Actor ID: BXI7bc4uZD7wvgoA4
  • Console page: https://console.apify.com/actors/BXI7bc4uZD7wvgoA4
  • Store URL after publishing: https://apify.com/signalflow_studio/reddit-opportunity-finder
  • Default cloud run options: latest build, 1024 MB memory, 600 second timeout.
  • Internal Reddit fetch budget: 120 seconds, then the Actor continues with partial real data so slow Reddit/proxy requests do not consume the full run timeout.

Recent verification runs:

  • Cloud latest pricing/runtime smoke: K3fHgnaK5pjf8fgAZ, build 0.1.26, status SUCCEEDED, 20 real Reddit discussions, 5 opportunities, REPORT.md generated, report_generated charged once in OUTPUT.json, platform usage cost $0.0353, default timeout 600 seconds.
  • Cloud pricing/runtime run: 4ldfGBBJggc7YhRv9, build 0.1.22, status SUCCEEDED, 8 real Reddit discussions, 5 opportunities, REPORT.md generated, report_generated charged once in OUTPUT.json, platform usage cost $0.0253.
  • Cloud timeout regression run: Ziy1xxJP91u9iOqHR, build 0.1.21, status TIMED-OUT; fixed by reducing the internal Reddit fetch budget to 120 seconds in build 0.1.22.
  • Cloud sample AI run: 28wtwpTcDoJzyRT1q, status SUCCEEDED, 9 opportunities, output schema links present, DeepSeek cluster and polish enabled.
  • Cloud real-data smoke run: peTXxbSqLk78gM7Ds, status SUCCEEDED, 8 posts, 7 comments, 9 signals, 5 opportunities, answer/citations/alerts present.
  • Cloud latest-build sample run: In6i9rqckFyHj6PJ6, build 0.1.15, status SUCCEEDED, 6 opportunities, output schema links present.
  • Cloud missing-user-key AI run: cSiyZD7I06SipymTa, build 0.1.15, status SUCCEEDED, AI disabled because no user aiApiKey was provided.

Cloud Reddit note: direct Reddit JSON requests from Apify datacenter IPs can return HTTP 403. proxyType: "auto" uses direct requests locally and Apify RESIDENTIAL proxy in cloud. Keep runs bounded and expect occasional source-level fetch errors.

Compliance

  • Only bounded public Reddit posts/comments are fetched.
  • The Actor does not log in, post, comment, vote, profile users, bypass access controls, train models on Reddit data, or resell raw Reddit data.
  • Users are responsible for ensuring their use complies with Reddit terms, Apify terms, and applicable laws.
  • Use it for product research, opportunity discovery, and market intelligence, not harassment, spam, surveillance, or platform manipulation.

Monetization Notes

The Actor is designed for Pay-per-event monetization. The code attempts these Apify PPE charges and records the result in summary.monetization:

  • report_generated
  • ai_cluster_generated

Recommended first-stage event setup:

  • report_generated: primary event, one time per successful report.
  • ai_cluster_generated: optional event when BYOK AI enhancement succeeds.

Alerts are included in the report and are not charged as a separate default event.

Recommended public defaults:

  • aiProvider: "none" and aiMode: "off" by default.
  • Users who enable AI should set aiApiKey; those model costs are billed to their own AI provider account.
  • Public AI usage is BYOK only. The Actor does not read owner environment AI keys for public runs.

If PPE is not configured in Apify Console or through the Actor API, runs still complete and the events are recorded with chargedCount: 0.