ScavioScavio
ProductPricingDocs
Sign InGet Started
  1. Home
  2. Workflows
  3. Financial News Daily Digest
Workflow

Financial News Daily Digest

Automated daily digest of financial news across tickers and sectors. Search, score, and summarize market-moving headlines.

Start FreeAPI Docs

Overview

This workflow generates a daily financial news digest by querying Scavio for each tracked ticker and sector keyword, extracting top headlines and AI Overview summaries, scoring news items by potential market impact, and compiling a prioritized digest. The output is a structured JSON feed that can be pushed to Slack, email, or a dashboard. Runs before market open to give traders a morning briefing.

Trigger

Cron schedule (daily at 7:30 AM EST)

Schedule

Runs daily at 7:30 AM EST before market open

Workflow Steps

1

Load ticker and sector watchlist

Read the list of tracked tickers and sector keywords from configuration.

2

Query news for each ticker

Search Scavio Google for each ticker with news-focused queries to get current headlines.

3

Extract AI Overview summaries

Pull AI Overview text for each query to get consensus analyst views and key developments.

4

Score and deduplicate headlines

Remove duplicate stories across tickers and score remaining headlines by impact keywords.

5

Compile and distribute digest

Format the ranked digest and push to Slack channel, email, or save as JSON.

Python Implementation

Python
import requests
import json
from datetime import datetime
from pathlib import Path

API_KEY = "your_scavio_api_key"
IMPACT_WORDS = {"earnings", "beat", "miss", "guidance", "upgrade", "downgrade", "acquisition", "merger", "layoff", "fda", "sec", "investigation", "bankruptcy", "ipo", "split"}

def fetch_ticker_news(ticker: str) -> dict:
    res = requests.post(
        "https://api.scavio.dev/api/v1/search",
        headers={"x-api-key": API_KEY},
        json={"platform": "google", "query": f"{ticker} stock news today 2026", "ai_overview": True},
        timeout=15,
    )
    res.raise_for_status()
    data = res.json()
    headlines = []
    for r in data.get("organic", [])[:5]:
        title = r.get("title", "")
        snippet = r.get("snippet", "")
        impact = len(set(title.lower().split()) & IMPACT_WORDS) + len(set(snippet.lower().split()) & IMPACT_WORDS)
        headlines.append({"title": title, "snippet": snippet, "link": r.get("link", ""), "impact_score": impact})
    return {
        "ticker": ticker,
        "ai_summary": data.get("ai_overview", {}).get("text", ""),
        "headlines": sorted(headlines, key=lambda x: x["impact_score"], reverse=True),
    }

def run():
    date = datetime.utcnow().strftime("%Y-%m-%d")
    tickers = ["NVDA", "AAPL", "TSLA", "MSFT", "GOOG", "META", "AMZN", "AMD"]
    digest = {"date": date, "tickers": []}

    for ticker in tickers:
        news = fetch_ticker_news(ticker)
        digest["tickers"].append(news)

    Path(f"financial_digest_{date}.json").write_text(json.dumps(digest, indent=2))
    print(f"Financial digest {date}: {len(tickers)} tickers scanned")
    for t in digest["tickers"]:
        top = t["headlines"][0]["title"] if t["headlines"] else "no news"
        print(f"  ${t['ticker']}: {top}")

if __name__ == "__main__":
    run()

JavaScript Implementation

JavaScript
const API_KEY = "your_scavio_api_key";
const IMPACT = new Set(["earnings","beat","miss","guidance","upgrade","downgrade","acquisition","merger","layoff"]);

async function fetchNews(ticker) {
  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: "google", query: `${ticker} stock news today 2026`, ai_overview: true }),
  });
  const data = await res.json();
  const headlines = (data.organic ?? []).slice(0, 5).map((r) => {
    const words = new Set(`${r.title ?? ""} ${r.snippet ?? ""}`.toLowerCase().split(/\s+/));
    return { title: r.title ?? "", snippet: r.snippet ?? "", impact: [...IMPACT].filter((w) => words.has(w)).length };
  });
  return { ticker, headlines: headlines.sort((a, b) => b.impact - a.impact), aiSummary: data.ai_overview?.text ?? "" };
}

for (const t of ["NVDA", "AAPL", "TSLA"]) {
  const news = await fetchNews(t);
  console.log(`$${t}: ${news.headlines[0]?.title ?? "no news"}`);
}

Platforms Used

Google

Web search with knowledge graph, PAA, and AI overviews

Frequently Asked Questions

This workflow generates a daily financial news digest by querying Scavio for each tracked ticker and sector keyword, extracting top headlines and AI Overview summaries, scoring news items by potential market impact, and compiling a prioritized digest. The output is a structured JSON feed that can be pushed to Slack, email, or a dashboard. Runs before market open to give traders a morning briefing.

This workflow uses a cron schedule (daily at 7:30 am est). Runs daily at 7:30 AM EST before market open.

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

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

Financial News Daily Digest

Automated daily digest of financial news across tickers and sectors. Search, score, and summarize market-moving headlines.

Get Your API KeyRead the Docs
ScavioScavio

Real-time search API for AI agents. Search every platform, not just Google.

Product

  • Features
  • Pricing
  • Dashboard
  • Affiliates

Developers

  • Documentation
  • API Reference
  • Quickstart
  • MCP Integration
  • Python SDK

Alternatives

  • Tavily Alternative
  • SerpAPI Alternative
  • Firecrawl Alternative
  • Exa Alternative

Tools

  • JSON Formatter
  • cURL to Code
  • Token Counter
  • All Tools

© 2026 Scavio. All rights reserved.

Featured on TAAFT
Terms of ServicePrivacy Policy