Overview
Enrich company records in n8n by searching Google for canonical company data (Knowledge Graph, website, description) and Reddit for community sentiment. Output enriched records to your CRM or database.
Trigger
New row in Google Sheet or CRM webhook
Schedule
On new CRM record (event-driven)
Workflow Steps
Receive company name
Trigger on new row in Google Sheets, HubSpot webhook, or manual CSV upload. Extract company name and optional domain.
Google Knowledge Graph lookup
Search Google for the company name via Scavio. Extract canonical name, website, description, and type from Knowledge Graph data.
Reddit community search
Search Reddit for the company name to find community discussions, pain points, and sentiment signals.
Merge and score
Combine Google and Reddit signals into a single enrichment record. Score based on data completeness: Knowledge Graph found, website confirmed, Reddit presence.
Write to destination
Push enriched record to CRM, database, or Google Sheet with canonical name, website, description, and community signal fields.
Python Implementation
import requests, os, json
H = {'x-api-key': os.environ['SCAVIO_API_KEY']}
def enrich_company(name):
# Google for canonical data
g = requests.post('https://api.scavio.dev/api/v1/search', headers=H,
json={'platform': 'google', 'query': name}, timeout=10).json()
# Reddit for community signals
r = requests.post('https://api.scavio.dev/api/v1/search', headers=H,
json={'platform': 'reddit', 'query': name}, timeout=10).json()
kg = g.get('knowledge_graph', {})
reddit_posts = r.get('organic', [])[:3]
return {
'input_name': name,
'canonical_name': kg.get('title', ''),
'website': kg.get('website', ''),
'description': kg.get('description', ''),
'type': kg.get('type', ''),
'reddit_mentions': len(r.get('organic', [])),
'reddit_topics': [p.get('title', '')[:80] for p in reddit_posts],
'enrichment_score': sum([
bool(kg.get('title')),
bool(kg.get('website')),
bool(kg.get('description')),
len(r.get('organic', [])) > 0,
]),
}
companies = ['Vercel', 'Supabase', 'PlanetScale']
for name in companies:
data = enrich_company(name)
print(f"{name} -> {data['canonical_name']} | {data['website']} | Score: {data['enrichment_score']}/4")
if data['reddit_topics']:
print(f" Reddit: {data['reddit_topics'][0]}")JavaScript Implementation
const H = {"x-api-key": process.env.SCAVIO_API_KEY, "Content-Type": "application/json"};
async function enrichCompany(name) {
const [g, r] = await Promise.all([
fetch("https://api.scavio.dev/api/v1/search", {
method: "POST", headers: H,
body: JSON.stringify({platform: "google", query: name})
}).then(r => r.json()),
fetch("https://api.scavio.dev/api/v1/search", {
method: "POST", headers: H,
body: JSON.stringify({platform: "reddit", query: name})
}).then(r => r.json()),
]);
const kg = g.knowledge_graph || {};
const redditPosts = (r.organic || []).slice(0, 3);
return {
inputName: name,
canonicalName: kg.title || "",
website: kg.website || "",
description: kg.description || "",
type: kg.type || "",
redditMentions: (r.organic || []).length,
redditTopics: redditPosts.map(p => (p.title || "").slice(0, 80)),
enrichmentScore: [kg.title, kg.website, kg.description, (r.organic || []).length > 0]
.filter(Boolean).length,
};
}
(async () => {
const companies = ["Vercel", "Supabase", "PlanetScale"];
for (const name of companies) {
const data = await enrichCompany(name);
console.log(`${name} -> ${data.canonicalName} | ${data.website} | Score: ${data.enrichmentScore}/4`);
if (data.redditTopics.length) console.log(` Reddit: ${data.redditTopics[0]}`);
}
})();Platforms Used
Web search with knowledge graph, PAA, and AI overviews
Community, posts & threaded comments from any subreddit