Workflow

Competitor Pricing Weekly Refresh

Weekly automated refresh of competitor pricing data from live search results. Keep comparison pages and sales collateral current.

Overview

This workflow refreshes competitor pricing data every week by searching Google for each competitor's pricing page and extracting current plan details from search snippets and AI Overviews. The output updates comparison pages, sales collateral, and internal pricing sheets. Each update includes a 'last verified' timestamp for credibility. Flags are raised when pricing appears to have changed significantly.

Trigger

Cron schedule (every Monday at 7:00 AM UTC)

Schedule

Runs every Monday at 7:00 AM UTC

Workflow Steps

1

Load competitor pricing targets

Read the list of competitors and their associated pricing search queries.

2

Search for current pricing

Query Scavio Google for each competitor's pricing page to get current plan and price information.

3

Extract pricing signals

Parse search snippets and AI Overviews for pricing figures, plan names, and feature mentions.

4

Compare against stored pricing

Check extracted pricing against previously stored values and flag significant changes.

5

Update pricing data store

Write updated pricing data with 'last verified' timestamps and change flags.

Python Implementation

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

API_KEY = "your_scavio_api_key"

COMPETITORS = [
    {"name": "SerpAPI", "query": "SerpAPI pricing plans 2026"},
    {"name": "Tavily", "query": "Tavily API pricing 2026"},
    {"name": "Brave Search API", "query": "Brave Search API pricing 2026"},
    {"name": "Exa", "query": "Exa search API pricing 2026"},
    {"name": "DataForSEO", "query": "DataForSEO pricing 2026"},
]

def fetch_pricing(competitor: dict) -> dict:
    res = requests.post(
        "https://api.scavio.dev/api/v1/search",
        headers={"x-api-key": API_KEY},
        json={"platform": "google", "query": competitor["query"], "ai_overview": True},
        timeout=15,
    )
    res.raise_for_status()
    data = res.json()
    snippets = [r.get("snippet", "") for r in data.get("organic", [])[:5]]
    return {
        "competitor": competitor["name"],
        "query": competitor["query"],
        "ai_overview": data.get("ai_overview", {}).get("text", "")[:500],
        "pricing_snippets": snippets,
        "verified_at": datetime.utcnow().isoformat(),
    }

def run():
    date = datetime.utcnow().strftime("%Y-%m-%d")
    results = []
    for comp in COMPETITORS:
        pricing = fetch_pricing(comp)
        results.append(pricing)
        print(f"  {pricing['competitor']}: {len(pricing['pricing_snippets'])} snippets found")

    output = {"date": date, "competitors_checked": len(COMPETITORS), "results": results}
    Path(f"pricing_refresh_{date}.json").write_text(json.dumps(output, indent=2))
    print(f"Pricing refresh {date}: {len(COMPETITORS)} competitors updated")

if __name__ == "__main__":
    run()

JavaScript Implementation

JavaScript
const API_KEY = "your_scavio_api_key";

const COMPETITORS = [
  { name: "SerpAPI", query: "SerpAPI pricing 2026" },
  { name: "Tavily", query: "Tavily API pricing 2026" },
  { name: "DataForSEO", query: "DataForSEO pricing 2026" },
];

async function fetchPricing(comp) {
  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: comp.query, ai_overview: true }),
  });
  const data = await res.json();
  return {
    competitor: comp.name,
    snippets: (data.organic ?? []).slice(0, 5).map((r) => r.snippet ?? ""),
    aiOverview: (data.ai_overview?.text ?? "").slice(0, 500),
  };
}

for (const comp of COMPETITORS) {
  const r = await fetchPricing(comp);
  console.log(`${r.competitor}: ${r.snippets.length} pricing snippets`);
}

Platforms Used

Google

Web search with knowledge graph, PAA, and AI overviews

Frequently Asked Questions

This workflow refreshes competitor pricing data every week by searching Google for each competitor's pricing page and extracting current plan details from search snippets and AI Overviews. The output updates comparison pages, sales collateral, and internal pricing sheets. Each update includes a 'last verified' timestamp for credibility. Flags are raised when pricing appears to have changed significantly.

This workflow uses a cron schedule (every monday at 7:00 am utc). Runs every Monday at 7:00 AM 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.

Competitor Pricing Weekly Refresh

Weekly automated refresh of competitor pricing data from live search results. Keep comparison pages and sales collateral current.