Workflow

Lead Scoring via Search Enrichment Workflow

Score inbound leads by enriching with search data: company size signals, tech stack, funding, and hiring patterns. Replace expensive enrichment tools.

Overview

Inbound leads arrive with just a name and email. Sales teams waste time calling unqualified leads because there is no enrichment data to score them. This workflow searches for the lead's company, extracts signals (hiring, funding, tech stack), and assigns a score. Cost: $0.015 per lead (3 searches) vs $0.50-2.00 per lead from enrichment vendors.

Trigger

Real-time via webhook when new lead is created, or batch daily at 6 AM UTC.

Schedule

Real-time webhook or daily batch at 6 AM UTC

Workflow Steps

1

Receive New Lead Data

Capture lead data from form submission or CRM webhook. Extract company name from email domain.

2

Search for Company Information

Run 3 searches: company name, company + hiring, company + funding/news. Extract Knowledge Graph data, organic snippets, and PAA.

3

Extract Scoring Signals

Parse search results for signals: company size (from KG), hiring activity (job posting snippets), funding (news snippets), tech stack (from website descriptions).

4

Calculate Lead Score

Assign points based on signals: hiring = +20, recent funding = +30, tech match = +25, company size match = +15. Tier as hot/warm/cold.

5

Update CRM and Notify Sales

Write the enrichment data and score back to the CRM. Notify the sales team about hot leads via Slack.

Python Implementation

Python
import requests, os

API_KEY = os.environ["SCAVIO_API_KEY"]

def score_lead(company: str) -> dict:
    """Score a lead via search enrichment. Cost: $0.015 (3 searches)."""
    queries = [company, f"{company} hiring 2026", f"{company} funding news 2026"]
    signals = {"company": company, "hiring": False, "funding": False, "tech_match": False, "score": 0}
    for i, q in enumerate(queries):
        resp = requests.post(
            "https://api.scavio.dev/api/v1/search",
            headers={"x-api-key": API_KEY, "Content-Type": "application/json"},
            json={"query": q, "country_code": "us"},
            timeout=10,
        )
        data = resp.json()
        snippets = " ".join(r.get("snippet", "") for r in data.get("organic_results", [])[:5]).lower()
        if i == 0 and data.get("knowledge_graph"):
            signals["description"] = data["knowledge_graph"].get("description", "")
            signals["score"] += 15
        if i == 1 and any(w in snippets for w in ["hiring", "job opening", "we're growing"]):
            signals["hiring"] = True
            signals["score"] += 20
        if i == 2 and any(w in snippets for w in ["raised", "funding", "series"]):
            signals["funding"] = True
            signals["score"] += 30
    signals["tier"] = "hot" if signals["score"] >= 45 else "warm" if signals["score"] >= 20 else "cold"
    return signals

lead = score_lead("Vercel")
print(f"{lead['company']}: {lead['tier']} (score: {lead['score']}) hiring={lead['hiring']} funding={lead['funding']}")

JavaScript Implementation

JavaScript
const H = {'x-api-key': process.env.SCAVIO_API_KEY, 'Content-Type': 'application/json'};
async function scoreLead(company) {
  const queries = [company, company+' hiring 2026', company+' funding news 2026'];
  const signals = {company, hiring:false, funding:false, score:0};
  for (let i=0; i<queries.length; i++) {
    const r = await fetch('https://api.scavio.dev/api/v1/search', {method:'POST', headers:H, body:JSON.stringify({query:queries[i], country_code:'us'})});
    const d = await r.json();
    const snippets = (d.organic_results||[]).slice(0,5).map(r=>r.snippet||'').join(' ').toLowerCase();
    if (i===0 && d.knowledge_graph) { signals.description = d.knowledge_graph.description||''; signals.score += 15; }
    if (i===1 && /hiring|job opening/.test(snippets)) { signals.hiring = true; signals.score += 20; }
    if (i===2 && /raised|funding|series/.test(snippets)) { signals.funding = true; signals.score += 30; }
  }
  signals.tier = signals.score >= 45 ? 'hot' : signals.score >= 20 ? 'warm' : 'cold';
  return signals;
}
const lead = await scoreLead('Vercel');
console.log(lead.company+': '+lead.tier+' ('+lead.score+') hiring='+lead.hiring+' funding='+lead.funding);

Platforms Used

Google

Web search with knowledge graph, PAA, and AI overviews

Frequently Asked Questions

Inbound leads arrive with just a name and email. Sales teams waste time calling unqualified leads because there is no enrichment data to score them. This workflow searches for the lead's company, extracts signals (hiring, funding, tech stack), and assigns a score. Cost: $0.015 per lead (3 searches) vs $0.50-2.00 per lead from enrichment vendors.

This workflow uses a real-time via webhook when new lead is created, or batch daily at 6 am utc.. Real-time webhook or daily batch at 6 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.

Lead Scoring via Search Enrichment Workflow

Score inbound leads by enriching with search data: company size signals, tech stack, funding, and hiring patterns. Replace expensive enrichment tools.