The Problem
B2B teams need company and contact data from web directories but building custom scrapers is fragile and time-consuming. Non-technical team members cannot modify or maintain scraper code. Directory sites update their layouts frequently, breaking parsers. The team needs a no-code/low-code pipeline that non-developers can manage.
The Scavio Solution
Build an n8n workflow that uses Scavio's search API as the data source. The workflow: trigger on schedule or webhook -> search Google for directory-style queries -> extract structured results -> enrich with additional searches -> write to Google Sheets or CRM. n8n's visual interface lets non-developers modify queries, add filters, and adjust the pipeline without touching code.
Before
Developer builds a Python scraper for a B2B directory. It breaks when the directory changes its HTML. Non-technical team members file tickets to fix it. Developer spends 4 hours/month maintaining a scraper that runs once a week.
After
n8n workflow calls Scavio API for structured search results. Non-developer adjusts search queries directly in n8n. No HTML parsing, no broken selectors, no developer maintenance. Pipeline runs daily and costs $0.30/run (60 searches).
Who It Is For
B2B sales and marketing teams who need directory data extracted regularly but do not have dedicated engineering resources for scraper maintenance.
Key Benefits
- No-code visual workflow accessible to non-developers
- Structured API data eliminates HTML parsing maintenance
- n8n schedule node automates daily/weekly runs
- Direct integration with Google Sheets, CRM, and Slack
- 60 searches/run at $0.005/credit = $0.30 per pipeline run
Python Example
# n8n HTTP Request node configuration (shown as equivalent Python)
import requests, os
API_KEY = os.environ["SCAVIO_API_KEY"]
H = {"x-api-key": API_KEY, "Content-Type": "application/json"}
DIRECTORY_QUERIES = [
"SaaS companies Series A 2026",
"B2B startups hiring remote 2026",
"AI companies San Francisco funding 2026",
]
all_companies = []
for query in DIRECTORY_QUERIES:
resp = requests.post(
"https://api.scavio.dev/api/v1/search",
headers=H,
json={"query": query, "country_code": "us"},
timeout=10,
)
for r in resp.json().get("organic_results", []):
all_companies.append({
"name": r["title"],
"url": r["link"],
"description": r["snippet"],
"source_query": query,
})
print(f"Found {len(all_companies)} companies from {len(DIRECTORY_QUERIES)} queries")
# In n8n: pipe this to Google Sheets node or CRM webhookJavaScript Example
// n8n HTTP Request node configuration (shown as equivalent JS)
const API_KEY = process.env.SCAVIO_API_KEY;
const H = {"x-api-key": API_KEY, "Content-Type": "application/json"};
const DIRECTORY_QUERIES = [
"SaaS companies Series A 2026",
"B2B startups hiring remote 2026",
"AI companies San Francisco funding 2026",
];
const allCompanies = [];
for (const query of DIRECTORY_QUERIES) {
const res = await fetch("https://api.scavio.dev/api/v1/search", {
method: "POST",
headers: H,
body: JSON.stringify({ query, country_code: "us" }),
});
const data = await res.json();
for (const r of data.organic_results || []) {
allCompanies.push({
name: r.title,
url: r.link,
description: r.snippet,
sourceQuery: query,
});
}
}
console.log(`Found ${allCompanies.length} companies from ${DIRECTORY_QUERIES.length} queries`);
// In n8n: pipe to Google Sheets node or CRM webhookPlatforms Used
Web search with knowledge graph, PAA, and AI overviews
Google Maps
Local business search with ratings and contact info