Workflow

Review Investigation Pipeline for Journalism

Mine Google Reviews at scale for journalism and regulatory investigations using Scavio.

Overview

Automates the data collection phase of review-driven investigations. Feed a list of businesses under investigation (nursing homes, clinics, contractors), collect all public Google Reviews, extract sentiment and keyword patterns, and produce a structured CSV ready for the reporting team.

Trigger

Manual trigger with a CSV of business names

Schedule

On demand, typically per investigation

Workflow Steps

1

Ingest target businesses

Upload CSV of business names, addresses, and tracking case IDs.

2

Scavio Google Reviews pull

For each business, query Scavio google-reviews platform and paginate all reviews.

3

Keyword extraction

Run keyword and named entity extraction on review text to surface recurring allegations.

4

Sentiment scoring

Tag each review positive/negative/neutral with confidence score.

5

Cross-reference dates

Match negative review spikes to known incident timelines from the case file.

6

Export to Airtable

Dump all rows into an investigation Airtable base with provenance links.

Python Implementation

Python
import os, requests, csv
API_KEY = os.environ["SCAVIO_API_KEY"]
H = {"x-api-key": API_KEY}

def reviews(business):
    r = requests.post("https://api.scavio.dev/api/v1/search",
        headers=H, json={"platform": "google-reviews", "query": business})
    return r.json().get("reviews", [])

with open("out.csv", "w") as f:
    w = csv.writer(f)
    w.writerow(["business", "date", "rating", "text"])
    for row in csv.DictReader(open("targets.csv")):
        for rv in reviews(row["name"]):
            w.writerow([row["name"], rv.get("date"), rv.get("rating"), rv.get("text")])

JavaScript Implementation

JavaScript
const API_KEY = process.env.SCAVIO_API_KEY;
const H = { "x-api-key": API_KEY, "content-type": "application/json" };

async function reviews(business) {
  const r = await fetch("https://api.scavio.dev/api/v1/search", {
    method: "POST", headers: H,
    body: JSON.stringify({ platform: "google-reviews", query: business })
  });
  return (await r.json()).reviews || [];
}

const targets = ["Acme Clinic", "Sunset Care Home"];
for (const t of targets) {
  const rs = await reviews(t);
  console.log(t, rs.length);
}

Platforms Used

Google Reviews

Business review extraction with ratings and responses

Google Maps

Local business search with ratings and contact info

Frequently Asked Questions

Automates the data collection phase of review-driven investigations. Feed a list of businesses under investigation (nursing homes, clinics, contractors), collect all public Google Reviews, extract sentiment and keyword patterns, and produce a structured CSV ready for the reporting team.

This workflow uses a manual trigger with a csv of business names. On demand, typically per investigation.

This workflow uses the following Scavio platforms: google-reviews, google-maps. 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.

Review Investigation Pipeline for Journalism

Mine Google Reviews at scale for journalism and regulatory investigations using Scavio.