The Problem
An r/dataengineering post documented months trying to solve company-name-to-website resolution. Existing solutions failed on rebrands, acquisitions, parent-subsidiary, and name collisions; vendors charge enterprise prices and still miss edge cases.
The Scavio Solution
Scavio Google SERP per company name → top organic + knowledge_graph alias data → Scavio /extract on the candidate domain → name-match verification → confidence score. Cached LLM judgment for ambiguous edge cases only.
Before
Naive 'search company-name + official site' fails on >5% of records. Manual disambiguation kills throughput at scale.
After
Per-record cost ~$0.001-0.005 in Scavio credits at Project pricing. 92-96% accuracy on clean names; 4-8% honest edge cases route to human review.
Who It Is For
B2B data teams, sales-ops, RevOps, anyone enriching a CRM dump where the cost of being wrong on a name is real.
Key Benefits
- Typed Google SERP + knowledge graph in one call
- Verification step using /extract beats blind acceptance of top-1 result
- Knowledge graph alias data handles many rebrand cases
- Predictable per-record cost
- Honest about the 4-8% that needs human review
Python Example
import requests, os
H = {'x-api-key': os.environ['SCAVIO_API_KEY']}
def resolve(name):
s = requests.post('https://api.scavio.dev/api/v1/search', headers=H, json={'query': f'"{name}" official site'}).json()
kg = s.get('knowledge_graph', {})
candidate = kg.get('website') or (s.get('organic_results') or [{}])[0].get('link')
if not candidate:
return {'match': False, 'reason': 'no_candidate'}
page = requests.post('https://api.scavio.dev/api/v1/extract', headers=H, json={'url': candidate}).json()
text = (page.get('text') or '').lower()
return {'match': name.lower() in text, 'website': candidate, 'kg_aliases': kg.get('aliases')}JavaScript Example
// Same shape in TS / Node — POST /api/v1/search then POST /api/v1/extract.Platforms Used
Web search with knowledge graph, PAA, and AI overviews