Resumen
Este flujo de trabajo scans 10 objetivo subreddits cada Friday to extraer puntos de dolor, herramienta menciones, y emerging mercado senales de community discussions. For cada subreddit, it searches for relevante topics y classifies publicaciones by tipo: punto de dolor, herramienta recommendation, comparacion solicitud, o general discussion. Producto teams usar el salida to priorizar caracteristicas, y marketing teams usar it to refine messaging basado on real usuario idioma.
Desencadenador
Cron programar (cada Friday at 8:00 AM UTC)
Programación
Ejecuta cada Friday at 8:00 AM UTC
Pasos del flujo de trabajo
Cargar subreddit watchlist
Leer el lista of 10 objetivo subreddits y associated consultas de busqueda de configuracion.
Search cada subreddit for relevante discussions
Consulta Scavio Reddit search for cada subreddit con topic-specific consultas to encontrar reciente discussions.
Clasificar publicacion types
Categorizar cada publicacion as punto de dolor, herramienta mencion, comparacion solicitud, o general discussion basado on titulo palabras clave.
Extraer herramienta menciones
Analizar publicacion titles y fragmentos for especifico herramienta y producto names to construir un mencion frecuencia tabla.
Generar semanal mercado informe
Compile findings en un structured informe con punto de dolor tendencias, herramienta mencion posicionamientos, y notable discussions.
Implementacion en 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()Implementacion en 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})`);Plataformas utilizadas
Comunidad, publicaciones y comentarios en hilos de cualquier subreddit