Tutorial

How to Resolve Company Name to Domain With Scavio (2026)

Scavio search + knowledge_graph + /extract verification for B2B name-to-domain enrichment. ~92-96% accuracy.

An r/dataengineering post documented months trying to solve company-name-to-website. This walks the Scavio recipe: search + knowledge_graph + /extract verification, with confidence scoring.

Prerequisites

  • Scavio API key
  • Python or Node + HTTP client
  • A list of company names to resolve

Walkthrough

Step 1: Start with one company name

Build the pipeline on one before going to 10K.

Python
name = 'Stripe'

Step 2: POST to Scavio search

Search for the official site signal.

Python
import requests, os
H = {'x-api-key': os.environ['SCAVIO_API_KEY']}
r = requests.post('https://api.scavio.dev/api/v1/search', headers=H, json={'query': f'"{name}" official site'}).json()

Step 3: Pick candidate domain

Prefer knowledge_graph.website; fall back to organic_results[0].link.

Python
kg = r.get('knowledge_graph', {})
candidate = kg.get('website') or (r.get('organic_results') or [{}])[0].get('link')

Step 4: Verify via /extract

Fetch the candidate domain home page; check that the company name appears.

Python
page = requests.post('https://api.scavio.dev/api/v1/extract', headers=H, json={'url': candidate}).json()
text = (page.get('text') or '').lower()
verified = name.lower() in text

Step 5: Compute confidence score

knowledge_graph hit + name-in-text + non-generic-host = high.

Python
confidence = 'high' if kg.get('website') and verified else ('medium' if verified else 'low')

Step 6: Route low-confidence to human review

Honest about the 4-8% edge cases.

Python
if confidence == 'low': enqueue_for_review(name, candidate)

Step 7: Batch the pipeline

Parallelize across CRM rows.

Python
# asyncio.gather(*[resolve(n) for n in names]) — concurrency 10-20

Python Example

Python
# Per-record: ~2 Scavio calls = ~$0.001-0.005 in credits at Project tier.

JavaScript Example

JavaScript
// Same shape in TypeScript with fetch + Promise.all batching.

Expected Output

JSON
Per record: { name, candidate_url, verified: true|false, confidence: 'high'|'medium'|'low' }. ~92-96% accuracy on clean names.

Related Tutorials

Frequently Asked Questions

Most developers complete this tutorial in 15 to 30 minutes. You will need a Scavio API key (free tier works) and a working Python or JavaScript environment.

Scavio API key. Python or Node + HTTP client. A list of company names to resolve. A Scavio API key gives you 500 free credits per month.

Yes. The free tier includes 500 credits per month, which is more than enough to complete this tutorial and prototype a working solution.

Scavio has a native LangChain package (langchain-scavio), an MCP server, and a plain REST API that works with any HTTP client. This tutorial uses the raw REST API, but you can adapt to your framework of choice.

Start Building

Scavio search + knowledge_graph + /extract verification for B2B name-to-domain enrichment. ~92-96% accuracy.