Resumen
Este flujo de trabajo ejecuta cada Sunday tarde y scans Reddit for demand senales relevante to side project ideas. It searches for threads donde people describe unmet necesita, solicitud herramientas, o complain about existing soluciones. Resultados son ranked by engagement y grouped by problem dominio. El salida es un informe semanal of el top 10 demand senales con engagement puntuaciones y fuente URLs.
Desencadenador
Cron programar (semanal, Sunday at 8 PM UTC)
Programación
Semanal (Sunday at 8 PM UTC)
Pasos del flujo de trabajo
Define consultas de busqueda
Maintain un lista of demand-signal consultas: 'I wish alli fue', 'anyone know un herramienta for', 'construido un herramienta ese', 'looking for alternative to'. Cada captures un diferentes demand patron.
Search Reddit via Scavio
For cada consulta, call Scavio Reddit search con sort by nuevo. Recopilar threads con titles, puntuaciones, comentario counts, y subreddit names.
Filtrar y clasificar
Filtrar to threads de el last 7 dias. Clasificar by engagement puntuacion: upvotes + 2 * comentarios. Group by subreddit to identificar cual communities tienen el strongest demand.
Deduplicate similares threads
Fusionar threads about el same topic (fuzzy titulo coincidencia) en un single demand senal con combined engagement puntuaciones.
Generar informe semanal
Salida el top 10 demand senales as un markdown informe con problem descripcion, engagement puntuacion, top thread URLs, y subreddit distribution.
Implementacion en Python
import requests, os, json
SCAVIO_KEY = os.environ["SCAVIO_API_KEY"]
H = {"x-api-key": SCAVIO_KEY}
DEMAND_QUERIES = [
"I wish there was a tool for",
"anyone know a tool for",
"looking for alternative to",
"need a better way to",
"built a tool that",
]
def search_reddit(query: str) -> list:
resp = requests.post("https://api.scavio.dev/api/v1/search", headers=H,
json={"platform": "reddit", "query": query, "sort": "new"}, timeout=10)
threads = resp.json().get("organic", [])
return [{"title": t["title"], "score": t.get("score", 0),
"comments": t.get("comments", 0),
"engagement": t.get("score", 0) + 2 * t.get("comments", 0),
"url": t.get("link", ""), "query": query}
for t in threads]
all_signals = []
for q in DEMAND_QUERIES:
all_signals.extend(search_reddit(q))
all_signals.sort(key=lambda x: x["engagement"], reverse=True)
print("=== Weekly Demand Report ===")
for i, s in enumerate(all_signals[:10], 1):
print(f"{i}. [{s['engagement']}] {s['title']}")
print(f" Source: {s['url']}")
print(f" Query: {s['query']}\n")Implementacion en JavaScript
const DEMAND_QUERIES = [
"I wish there was a tool for",
"anyone know a tool for",
"looking for alternative to",
"need a better way to",
"built a tool that",
];
async function searchReddit(query) {
const resp = await fetch("https://api.scavio.dev/api/v1/search", {
method: "POST",
headers: { "x-api-key": process.env.SCAVIO_API_KEY, "Content-Type": "application/json" },
body: JSON.stringify({ platform: "reddit", query, sort: "new" })
});
const threads = (await resp.json()).organic || [];
return threads.map(t => ({
title: t.title, score: t.score || 0, comments: t.comments || 0,
engagement: (t.score || 0) + 2 * (t.comments || 0),
url: t.link || "", query
}));
}
const allSignals = [];
for (const q of DEMAND_QUERIES) {
allSignals.push(...await searchReddit(q));
}
allSignals.sort((a, b) => b.engagement - a.engagement);
console.log("=== Weekly Demand Report ===");
allSignals.slice(0, 10).forEach((s, i) => {
console.log(`${i + 1}. [${s.engagement}] ${s.title}`);
console.log(` Source: ${s.url}`);
console.log(` Query: ${s.query}\n`);
});Plataformas utilizadas
Comunidad, publicaciones y comentarios en hilos de cualquier subreddit