Files
udiedrichsen_stock-analysis/docs/HOT_SCANNER.md

5.7 KiB

🔥 Hot Scanner

Find viral stocks & crypto trends in real-time by aggregating multiple data sources.

Overview

The Hot Scanner answers one question: "What's hot right now?"

It aggregates data from:

  • CoinGecko (trending coins, biggest movers)
  • Google News (finance & crypto headlines)
  • Yahoo Finance (gainers, losers, most active)
  • Twitter/X (social sentiment, optional)

Quick Start

# Full scan with all sources
python3 scripts/hot_scanner.py

# Skip social media (faster)
python3 scripts/hot_scanner.py --no-social

# JSON output for automation
python3 scripts/hot_scanner.py --json

Output Format

Console Output

============================================================
🔥 HOT SCANNER v2 - What's Trending Right Now?
📅 2026-02-02 10:45:30 UTC
============================================================

📊 TOP TRENDING (by buzz):
   1. BTC      (6 pts) [CoinGecko, Google News] 📉 bearish (-2.5%)
   2. ETH      (5 pts) [CoinGecko, Twitter] 📉 bearish (-7.2%)
   3. NVDA     (3 pts) [Google News, Yahoo] 📰 Earnings beat...

🪙 CRYPTO HIGHLIGHTS:
   🚀 RIVER    River              +14.0%
   📉 BTC      Bitcoin             -2.5%
   📉 ETH      Ethereum            -7.2%

📈 STOCK MOVERS:
   🟢 NVDA (gainers)
   🔴 TSLA (losers)
   📊 AAPL (most active)

🐦 SOCIAL BUZZ:
   [twitter] Bitcoin to $100k prediction...
   [reddit_wsb] GME yolo update...

📰 BREAKING NEWS:
   [BTC, ETH] Crypto crash: $2.5B liquidated...
   [NVDA] Nvidia beats earnings expectations...

JSON Output

{
  "scan_time": "2026-02-02T10:45:30+00:00",
  "top_trending": [
    {
      "symbol": "BTC",
      "mentions": 6,
      "sources": ["CoinGecko Trending", "Google News"],
      "signals": ["📉 bearish (-2.5%)"]
    }
  ],
  "crypto_highlights": [...],
  "stock_highlights": [...],
  "social_buzz": [...],
  "breaking_news": [...]
}

Data Sources

CoinGecko (No Auth Required)

Endpoint Data
/search/trending Top 15 trending coins
/coins/markets Top 100 by market cap with 24h changes

Scoring: Trending coins get 2 points, movers with >3% change get 1 point.

Google News RSS (No Auth Required)

Feed Content
Business News General finance headlines
Crypto Search Bitcoin, Ethereum, crypto keywords

Ticker Extraction: Uses regex patterns and company name mappings.

Yahoo Finance (No Auth Required)

Page Data
/gainers Top gaining stocks
/losers Top losing stocks
/most-active Highest volume stocks

Note: Requires gzip decompression.

Twitter/X (Auth Required)

Uses bird CLI for Twitter search.

Searches:

  • stock OR $SPY OR $QQQ OR earnings
  • bitcoin OR ethereum OR crypto OR $BTC

Twitter/X Setup

1. Install bird CLI

# macOS
brew install steipete/tap/bird

# npm
npm install -g @steipete/bird

2. Get Auth Tokens

Option A: Browser cookies (macOS)

  1. Login to x.com in Safari/Chrome
  2. Grant Terminal "Full Disk Access" in System Settings
  3. Run bird whoami to verify

Option B: Manual extraction

  1. Open x.com in Chrome
  2. DevTools (F12) → Application → Cookies → x.com
  3. Copy auth_token and ct0 values

3. Configure

Create .env file in the skill directory:

# /path/to/stock-analysis/.env
AUTH_TOKEN=your_auth_token_here
CT0=your_ct0_token_here

Or export as environment variables:

export AUTH_TOKEN="..."
export CT0="..."

4. Verify

bird whoami
# Should show: 🙋 @YourUsername

Scoring System

Each mention from a source adds points:

Source Points
CoinGecko Trending 2
CoinGecko Movers 1
Google News 1
Yahoo Finance 1
Twitter/X 1
Reddit (high score) 2
Reddit (normal) 1

Symbols are ranked by total points across all sources.

Ticker Extraction

Patterns

# Cashtag: $AAPL
r'\$([A-Z]{1,5})\b'

# Parentheses: (AAPL)
r'\(([A-Z]{2,5})\)'

# Stock mentions: AAPL stock, AAPL shares
r'\b([A-Z]{2,5})(?:\'s|:|\s+stock|\s+shares)'

Company Mappings

{
    "Apple": "AAPL",
    "Microsoft": "MSFT",
    "Tesla": "TSLA",
    "Nvidia": "NVDA",
    "Bitcoin": "BTC",
    "Ethereum": "ETH",
    # ... etc
}

Crypto Keywords

{
    "bitcoin": "BTC",
    "ethereum": "ETH",
    "solana": "SOL",
    "dogecoin": "DOGE",
    # ... etc
}

Automation

Cron Job

# Daily at 8 AM
0 8 * * * cd /path/to/stock-analysis && python3 scripts/hot_scanner.py --json > cache/daily_scan.json

OpenClaw Integration

# Cron job config
name: "🔥 Daily Hot Scanner"
schedule:
  kind: cron
  expr: "0 8 * * *"
  tz: "Europe/Berlin"
payload:
  kind: agentTurn
  message: "Run hot scanner and summarize results"
  deliver: true
sessionTarget: isolated

Caching

Results are saved to:

  • cache/hot_scan_latest.json — Most recent scan

Limitations

  • Reddit: Blocked without OAuth (403). Requires API application.
  • Twitter: Requires auth tokens, may expire.
  • Yahoo: Sometimes rate-limited.
  • Google News: RSS URLs may change.

Future Enhancements

  • Reddit API integration (PRAW)
  • StockTwits integration
  • Google Trends
  • Historical trend tracking
  • Alert thresholds (notify when score > X)

Troubleshooting

Twitter not working

# Check auth
bird whoami

# Should see your username
# If not, re-export tokens

Yahoo 403 or gzip errors

The scanner handles gzip automatically. If issues persist, Yahoo may be rate-limiting.

No tickers found

Check that news headlines contain recognizable patterns. The scanner uses conservative extraction to avoid false positives.