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
Ingest target businesses
Upload CSV of business names, addresses, and tracking case IDs.
Scavio Google Reviews pull
For each business, query Scavio google-reviews platform and paginate all reviews.
Keyword extraction
Run keyword and named entity extraction on review text to surface recurring allegations.
Sentiment scoring
Tag each review positive/negative/neutral with confidence score.
Cross-reference dates
Match negative review spikes to known incident timelines from the case file.
Export to Airtable
Dump all rows into an investigation Airtable base with provenance links.
Python Implementation
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
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