Resumen
Producto managers y e-commerce teams learn about declining interest demasiado late -- despues de sales tienen ya dropped. Este flujo de trabajo monitorea volumen de busqueda proxies a traves de Google, Amazon, y Reddit diario for your productos y competidores. Cuando el numero of resultados organicos, resultado freshness, o Reddit discussion volume declines week-over-week, it fires un alerta antes de el sales descenso muestra up in your panel de control.
Desencadenador
Cron programar (diario at 6 AM UTC)
Programación
Diario at 6 AM UTC
Pasos del flujo de trabajo
Cargar producto watchlist
Leer your productos y competidor productos con their consultas de busqueda for cada plataforma.
Consulta actual senales
Search Google, Amazon, y Reddit for cada producto. Record resultado conteo, promedio resultado age, y discussion volume.
Cargar historico linea base
Retrieve el 7-dia promedio movil de storage for cada producto y senal.
Calcular decay puntuacion
Comparar today's senales contra el 7-dia promedio. Marcar productos con >15% descenso in cualquier senal.
Generar decay informe
Format flagged productos con especifico declining senales y porcentaje cambio.
Alert y actualizacion history
Enviar el informe to Slack o correo electronico. Actualizar el promedio movil con today's datos.
Implementacion en Python
import requests, os, json
from pathlib import Path
from datetime import date
H = {"x-api-key": os.environ["SCAVIO_API_KEY"]}
PRODUCTS = [
{"name": "wireless earbuds", "platforms": ["google", "amazon", "reddit"]},
{"name": "standing desk converter", "platforms": ["google", "amazon"]}
]
def measure_signals(product_name, platform):
r = requests.post("https://api.scavio.dev/api/v1/search", headers=H,
json={"platform": platform, "query": product_name}, timeout=10).json()
organic = r.get("organic", [])
return {
"result_count": len(organic),
"has_recent": any("2026" in o.get("snippet", "") for o in organic[:5]),
"top_titles": [o.get("title", "")[:60] for o in organic[:3]]
}
def run_decay_check():
today_data = {}
for product in PRODUCTS:
signals = {}
for platform in product["platforms"]:
signals[platform] = measure_signals(product["name"], platform)
today_data[product["name"]] = signals
history_path = Path("trend_history.json")
if history_path.exists():
history = json.loads(history_path.read_text())
for name, signals in today_data.items():
prev = history.get(name, {})
for platform, data in signals.items():
prev_count = prev.get(platform, {}).get("result_count", data["result_count"])
if prev_count > 0:
change = (data["result_count"] - prev_count) / prev_count
if change < -0.15:
print(f"DECAY ALERT: {name} on {platform} - results dropped {change:.0%}")
history_path.write_text(json.dumps(today_data, indent=2))
run_decay_check()Implementacion en JavaScript
const H = {"x-api-key": process.env.SCAVIO_API_KEY, "Content-Type": "application/json"};
async function measureSignals(productName, platform) {
const r = await fetch("https://api.scavio.dev/api/v1/search", {
method: "POST", headers: H,
body: JSON.stringify({platform, query: productName})
}).then(r => r.json());
const organic = r.organic || [];
return {
resultCount: organic.length,
hasRecent: organic.slice(0, 5).some(o => (o.snippet || "").includes("2026")),
topTitles: organic.slice(0, 3).map(o => (o.title || "").slice(0, 60))
};
}Plataformas utilizadas
Búsqueda web con grafo de conocimiento, PAA y resúmenes de IA
Amazon
Búsqueda de productos con precios, calificaciones y reseñas
Comunidad, publicaciones y comentarios en hilos de cualquier subreddit