Workflow

Reddit Market Weekly Scanner

Scan 10 subreddits weekly for pain points, tool mentions, and market signals. Extract structured insights from Reddit discussions.

Overview

This workflow scans 10 target subreddits every Friday to extract pain points, tool mentions, and emerging market signals from community discussions. For each subreddit, it searches for relevant topics and classifies posts by type: pain point, tool recommendation, comparison request, or general discussion. Product teams use the output to prioritize features, and marketing teams use it to refine messaging based on real user language.

Trigger

Cron schedule (every Friday at 8:00 AM UTC)

Schedule

Runs every Friday at 8:00 AM UTC

Workflow Steps

1

Load subreddit watchlist

Read the list of 10 target subreddits and associated search queries from configuration.

2

Search each subreddit for relevant discussions

Query Scavio Reddit search for each subreddit with topic-specific queries to find recent discussions.

3

Classify post types

Categorize each post as pain point, tool mention, comparison request, or general discussion based on title keywords.

4

Extract tool mentions

Parse post titles and snippets for specific tool and product names to build a mention frequency table.

5

Generate weekly market report

Compile findings into a structured report with pain point trends, tool mention rankings, and notable discussions.

Python Implementation

Python
import requests
import json
from pathlib import Path
from datetime import datetime
from collections import Counter

API_KEY = "your_scavio_api_key"

SUBREDDITS_AND_QUERIES = [
    {"subreddit": "SaaS", "queries": ["frustrated with", "looking for alternative"]},
    {"subreddit": "startups", "queries": ["tool recommendation", "what do you use for"]},
    {"subreddit": "webdev", "queries": ["best API for", "switching from"]},
    {"subreddit": "SEO", "queries": ["rank tracking tool", "SERP API recommendation"]},
    {"subreddit": "artificial", "queries": ["AI agent tools", "search grounding"]},
]

PAIN_WORDS = ["frustrated", "hate", "terrible", "broken", "expensive", "slow", "unreliable"]
TOOL_WORDS = ["recommend", "alternative", "switched to", "using", "tried"]

def search_subreddit(subreddit: str, query: str) -> list[dict]:
    res = requests.post(
        "https://api.scavio.dev/api/v1/search",
        headers={"x-api-key": API_KEY},
        json={"platform": "reddit", "query": f"{query} {subreddit}"},
        timeout=15,
    )
    res.raise_for_status()
    return res.json().get("organic", [])

def classify_post(title: str) -> str:
    lower = title.lower()
    if any(w in lower for w in PAIN_WORDS):
        return "pain_point"
    if any(w in lower for w in TOOL_WORDS):
        return "tool_mention"
    if "vs" in lower or "comparison" in lower or "versus" in lower:
        return "comparison"
    return "general"

def run():
    date = datetime.utcnow().strftime("%Y-%m-%d")
    all_posts = []
    tool_mentions = Counter()
    post_types = Counter()

    for config in SUBREDDITS_AND_QUERIES:
        for query in config["queries"]:
            posts = search_subreddit(config["subreddit"], query)
            for post in posts:
                title = post.get("title", "")
                ptype = classify_post(title)
                post_types[ptype] += 1
                all_posts.append({
                    "subreddit": config["subreddit"],
                    "title": title[:120],
                    "score": post.get("score", 0),
                    "type": ptype,
                    "link": post.get("link", ""),
                })

    report = {
        "date": date,
        "subreddits_scanned": len(SUBREDDITS_AND_QUERIES),
        "total_posts": len(all_posts),
        "post_types": dict(post_types),
        "pain_points": [p for p in all_posts if p["type"] == "pain_point"][:10],
        "tool_mentions": [p for p in all_posts if p["type"] == "tool_mention"][:10],
        "top_posts_by_score": sorted(all_posts, key=lambda x: x["score"], reverse=True)[:10],
    }

    Path(f"reddit_market_{date}.json").write_text(json.dumps(report, indent=2))
    print(f"Reddit Market Scan {date}: {len(all_posts)} posts from {len(SUBREDDITS_AND_QUERIES)} subreddits")
    for ptype, count in post_types.most_common():
        print(f"  {ptype}: {count}")

if __name__ == "__main__":
    run()

JavaScript Implementation

JavaScript
const API_KEY = "your_scavio_api_key";
const TARGETS = [
  { sub: "SaaS", queries: ["frustrated with", "looking for alternative"] },
  { sub: "startups", queries: ["tool recommendation"] },
];

async function searchReddit(query) {
  const res = await fetch("https://api.scavio.dev/api/v1/search", {
    method: "POST",
    headers: { "x-api-key": API_KEY, "content-type": "application/json" },
    body: JSON.stringify({ platform: "reddit", query }),
  });
  if (!res.ok) throw new Error(`scavio ${res.status}`);
  return (await res.json()).organic ?? [];
}

const allPosts = [];
for (const target of TARGETS) {
  for (const q of target.queries) {
    const posts = await searchReddit(`${q} ${target.sub}`);
    allPosts.push(...posts.map((p) => ({ sub: target.sub, title: (p.title ?? "").slice(0, 100), score: p.score ?? 0 })));
  }
}
allPosts.sort((a, b) => b.score - a.score);
console.log(`Scanned ${TARGETS.length} subreddits, found ${allPosts.length} posts`);
for (const p of allPosts.slice(0, 5)) console.log(`  [${p.sub}] ${p.title} (score: ${p.score})`);

Platforms Used

Reddit

Community, posts & threaded comments from any subreddit

Frequently Asked Questions

This workflow scans 10 target subreddits every Friday to extract pain points, tool mentions, and emerging market signals from community discussions. For each subreddit, it searches for relevant topics and classifies posts by type: pain point, tool recommendation, comparison request, or general discussion. Product teams use the output to prioritize features, and marketing teams use it to refine messaging based on real user language.

This workflow uses a cron schedule (every friday at 8:00 am utc). Runs every Friday at 8:00 AM UTC.

This workflow uses the following Scavio platforms: reddit. Each platform is called via the same unified API endpoint.

Yes. Scavio's free tier includes 250 credits per month with no credit card required. That is enough to test and validate this workflow before scaling it.

Reddit Market Weekly Scanner

Scan 10 subreddits weekly for pain points, tool mentions, and market signals. Extract structured insights from Reddit discussions.