Workflow

Google Trends Weekly Snapshot Workflow

Weekly workflow that captures directional trend signals from SERP data as a reliable alternative to pytrends for content planning.

Overview

Weekly automated snapshot of trend signals for target keywords using SERP data. Captures related searches, People Also Ask, and AI Overview trend context as a pytrends alternative that does not break.

Trigger

Weekly cron every Monday at 08:00 UTC

Schedule

Weekly on Monday at 08:00 UTC

Workflow Steps

1

Load keyword watchlist

Read the list of keywords to track trends for. Organized by category: industry terms, competitor brands, product categories, emerging topics.

2

Query SERP for trend signals

Search Google for each keyword appended with 'trend 2026'. Extract related searches, People Also Ask, AI Overview text, and result freshness indicators.

3

Extract directional signals

Parse related searches for rising terms. Check if AI Overview mentions growth, decline, or trend language. Count fresh results (dated within last 7 days).

4

Compare with previous week

Diff the current week's related searches and PAA against last week's snapshot. New terms indicate emerging trends. Missing terms indicate fading interest.

5

Generate weekly trend report

Compile a markdown report with trending up, trending down, and stable keywords. Include new related searches as content ideas. Send to the content team.

Python Implementation

Python
import requests, os, json
from datetime import date

H = {'x-api-key': os.environ['SCAVIO_API_KEY']}

def trend_snapshot(keyword):
    r = requests.post('https://api.scavio.dev/api/v1/search', headers=H,
        json={'platform': 'google', 'query': f'{keyword} trend 2026',
              'ai_overview': True}, timeout=10).json()
    return {
        'keyword': keyword,
        'date': str(date.today()),
        'related_searches': [s.get('query', '') for s in r.get('related_searches', [])[:8]],
        'paa': [q.get('question', '') for q in r.get('people_also_ask', [])[:5]],
        'has_ai_overview': bool(r.get('ai_overview')),
        'ai_summary': ((r.get('ai_overview') or {}).get('text', ''))[:200],
        'top_result_titles': [o.get('title', '') for o in r.get('organic', [])[:3]],
    }

keywords = ['ai agents', 'mcp protocol', 'vibe coding', 'rag pipeline', 'agentic ai']
snapshots = []
for kw in keywords:
    snap = trend_snapshot(kw)
    snapshots.append(snap)
    print(f"\n{kw}:")
    print(f"  Related: {', '.join(snap['related_searches'][:4])}")
    if snap['paa']:
        print(f"  PAA: {snap['paa'][0]}")
    if snap['ai_summary']:
        print(f"  AIO: {snap['ai_summary'][:100]}")

# Save snapshot for weekly comparison
with open(f'trend_snapshot_{date.today()}.json', 'w') as f:
    json.dump(snapshots, f, indent=2)
print(f"\nSaved {len(snapshots)} keyword snapshots")

JavaScript Implementation

JavaScript
const H = {"x-api-key": process.env.SCAVIO_API_KEY, "Content-Type": "application/json"};
const fs = await import("fs");

async function trendSnapshot(keyword) {
  const r = await fetch("https://api.scavio.dev/api/v1/search", {
    method: "POST", headers: H,
    body: JSON.stringify({platform: "google", query: `${keyword} trend 2026`, ai_overview: true})
  }).then(r => r.json());
  return {
    keyword,
    date: new Date().toISOString().split("T")[0],
    relatedSearches: (r.related_searches || []).slice(0, 8).map(s => s.query || ""),
    paa: (r.people_also_ask || []).slice(0, 5).map(q => q.question || ""),
    hasAiOverview: Boolean(r.ai_overview),
    aiSummary: ((r.ai_overview || {}).text || "").slice(0, 200),
    topResultTitles: (r.organic || []).slice(0, 3).map(o => o.title || ""),
  };
}

(async () => {
  const keywords = ["ai agents", "mcp protocol", "vibe coding", "rag pipeline", "agentic ai"];
  const snapshots = [];
  for (const kw of keywords) {
    const snap = await trendSnapshot(kw);
    snapshots.push(snap);
    console.log(`\n${kw}:`);
    console.log(`  Related: ${snap.relatedSearches.slice(0, 4).join(", ")}`);
    if (snap.paa.length) console.log(`  PAA: ${snap.paa[0]}`);
    if (snap.aiSummary) console.log(`  AIO: ${snap.aiSummary.slice(0, 100)}`);
  }
  const today = new Date().toISOString().split("T")[0];
  fs.writeFileSync(`trend_snapshot_${today}.json`, JSON.stringify(snapshots, null, 2));
  console.log(`\nSaved ${snapshots.length} keyword snapshots`);
})();

Platforms Used

Google

Web search with knowledge graph, PAA, and AI overviews

Frequently Asked Questions

Weekly automated snapshot of trend signals for target keywords using SERP data. Captures related searches, People Also Ask, and AI Overview trend context as a pytrends alternative that does not break.

This workflow uses a weekly cron every monday at 08:00 utc. Weekly on Monday at 08:00 UTC.

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

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

Google Trends Weekly Snapshot Workflow

Weekly workflow that captures directional trend signals from SERP data as a reliable alternative to pytrends for content planning.