ScavioScavio
ProductPricingDocs
Sign InGet Started
  1. Home
  2. Workflows
  3. Qualify Leads with SERP Data Before Cold Outreach
Workflow

Qualify Leads with SERP Data Before Cold Outreach

Score every lead against live Google results before you enroll it in a sequence. Drop the dead and duplicate businesses. Runnable pipeline.

Start FreeAPI Docs

Overview

Score each candidate business against live Google results before it enters your email sequence, so you only spend deliverability and reply-rate on leads that are real and active. A common cold-email build enrolls every scraped row and then wonders why bounce rates climb; adding a qualification gate up front fixes the input instead of the output. To be clear about scope: this qualifies leads (is the business real, active, findable). It does not handle deliverability. SPF, DKIM, DMARC, and warm-up are a separate layer and still mandatory. Each Google lookup is 1-2 credits on Scavio ($0.005/credit).

Trigger

A new batch of candidate businesses (names plus city, or raw domains) lands in your list.

Schedule

On each new lead batch (or nightly against a rolling import).

Workflow Steps

1

Search each business on Google

Query the business name plus city on the Google endpoint. A real, active business surfaces its own site, a map presence, and recent mentions; a dead or fake one returns thin or mismatched results.

2

Score the signals

Award points for an owned domain in the results, a knowledge-graph or map presence, recent-looking mentions, and reviews. Subtract for directory-only results or a name that resolves to a different company.

3

Drop or deprioritize the low scores

Set a threshold (for example, keep only leads scoring 3 of 5). Route the rest to a hold list instead of the sequence; do not pay send reputation for leads that will bounce or ignore you.

4

Enroll only the qualified leads

Pass the survivors to your sending tool with the enriched fields (verified domain, category, a personalization hook from the SERP). Now the sequence runs on leads worth emailing.

Python Implementation

Python
import os, requests

H = {"Authorization": f"Bearer {os.environ['SCAVIO_API_KEY']}", "Content-Type": "application/json"}
DIRECTORY_DOMAINS = {"yelp.com", "yellowpages.com", "facebook.com", "linkedin.com"}

def qualify(name, city):
    q = f"{name} {city}"
    data = requests.post("https://api.scavio.dev/api/v1/google", headers=H,
                         json={"query": q, "light_request": False}).json()
    organic = data.get("organic_results", [])
    score = 0
    owned = next((o for o in organic[:5]
                  if not any(d in o["link"] for d in DIRECTORY_DOMAINS)), None)
    if owned: score += 2                              # has its own site
    if data.get("knowledge_graph"): score += 2        # map / brand presence
    if len(organic) >= 5: score += 1                  # findable at all
    hook = owned["title"] if owned else None
    return {"name": name, "score": score, "domain": owned["link"] if owned else None, "hook": hook}

batch = [("Cedar Park Dental", "Austin TX"), ("No Such Cafe", "Nowhere")]
qualified = [r for r in (qualify(n, c) for n, c in batch) if r["score"] >= 3]
print(qualified)

JavaScript Implementation

JavaScript
const H = { Authorization: `Bearer ${process.env.SCAVIO_API_KEY}`, "Content-Type": "application/json" };
const DIRECTORY = ["yelp.com", "yellowpages.com", "facebook.com", "linkedin.com"];

async function qualify(name, city) {
  const r = await fetch("https://api.scavio.dev/api/v1/google", {
    method: "POST", headers: H,
    body: JSON.stringify({ query: `${name} ${city}`, light_request: false }),
  });
  const data = await r.json();
  const organic = data.organic_results ?? [];
  const owned = organic.slice(0, 5).find((o) => !DIRECTORY.some((d) => o.link.includes(d)));
  let score = 0;
  if (owned) score += 2;
  if (data.knowledge_graph) score += 2;
  if (organic.length >= 5) score += 1;
  return { name, score, domain: owned?.link ?? null };
}

Platforms Used

Google

Web search with knowledge graph, PAA, and AI overviews

Reddit

Community, posts & threaded comments from any subreddit

Frequently Asked Questions

Score each candidate business against live Google results before it enters your email sequence, so you only spend deliverability and reply-rate on leads that are real and active. A common cold-email build enrolls every scraped row and then wonders why bounce rates climb; adding a qualification gate up front fixes the input instead of the output. To be clear about scope: this qualifies leads (is the business real, active, findable). It does not handle deliverability. SPF, DKIM, DMARC, and warm-up are a separate layer and still mandatory. Each Google lookup is 1-2 credits on Scavio ($0.005/credit).

This workflow uses a a new batch of candidate businesses (names plus city, or raw domains) lands in your list.. On each new lead batch (or nightly against a rolling import)..

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

Qualify Leads with SERP Data Before Cold Outreach

Score every lead against live Google results before you enroll it in a sequence. Drop the dead and duplicate businesses. Runnable pipeline.

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