Workflow

Reddit Stock Sentiment Tracker Workflow

Track stock ticker mentions on Reddit, score sentiment with an LLM, plot trends over time. Daily automated pipeline.

Overview

Search Reddit for stock ticker mentions daily, score each thread's sentiment with an LLM, aggregate by ticker, and track sentiment trends over a rolling 30-day window.

Trigger

Daily cron (e.g. 18:00 UTC, after market close)

Schedule

Daily after market close

Workflow Steps

1

Define ticker watchlist

List of tickers to track: AAPL, TSLA, NVDA, etc.

2

Search Scavio Reddit endpoint per ticker

POST /api/v1/search with platform=reddit, query='$TICKER'. Top-20 threads.

3

Score sentiment per thread

Send thread title + top comment to LLM: 'Rate sentiment -1 to +1 for this stock discussion. Return JSON {score, reasoning}.'

4

Aggregate daily score per ticker

Average sentiment scores across all threads for that ticker.

5

Append to rolling 30-day log

Store in SQLite or CSV: date, ticker, avg_sentiment, thread_count.

6

Optional: alert on sentiment spikes

If today's score deviates > 0.5 from 7-day average, send Slack alert.

Python Implementation

Python
import requests, os, json

key = os.environ["SCAVIO_API_KEY"]
tickers = ["AAPL", "TSLA", "NVDA"]

for ticker in tickers:
    resp = requests.post("https://api.scavio.dev/api/v1/search",
        headers={"x-api-key": key},
        json={"query": f"${ticker}", "platform": "reddit", "limit": 20})
    threads = resp.json().get("results", [])
    scores = []
    for t in threads:
        result = call_llm(f"Rate sentiment -1 to +1: {t['title']}. JSON: score, reasoning.")
        scores.append(json.loads(result)["score"])
    avg = sum(scores) / len(scores) if scores else 0
    print(f"{ticker}: avg sentiment {avg:.2f} across {len(threads)} threads")

JavaScript Implementation

JavaScript
const tickers = ["AAPL", "TSLA", "NVDA"];
for (const ticker of tickers) {
  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({ query: `$${ticker}`, platform: "reddit", limit: 20 })
  });
  const threads = (await resp.json()).results;
  const scores = [];
  for (const t of threads) {
    const r = await callLLM(`Rate sentiment -1 to +1: ${t.title}. JSON: {score, reasoning}.`);
    scores.push(JSON.parse(r).score);
  }
  const avg = scores.reduce((a, b) => a + b, 0) / (scores.length || 1);
  console.log(`${ticker}: avg sentiment ${avg.toFixed(2)} across ${threads.length} threads`);
}

Platforms Used

Reddit

Community, posts & threaded comments from any subreddit

Frequently Asked Questions

Search Reddit for stock ticker mentions daily, score each thread's sentiment with an LLM, aggregate by ticker, and track sentiment trends over a rolling 30-day window.

This workflow uses a daily cron (e.g. 18:00 utc, after market close). Daily after market close.

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

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

Reddit Stock Sentiment Tracker Workflow

Track stock ticker mentions on Reddit, score sentiment with an LLM, plot trends over time. Daily automated pipeline.