Workflow

Cold Email Search Personalization Workflow

Automated workflow that enriches cold email prospect lists with live Google and Reddit search signals for high-conversion personalization.

Overview

Enrich every prospect in a cold email list with fresh search signals before sending. Google surfaces recent news, funding, and product launches. Reddit surfaces community pain points. Output personalization variables for your email platform.

Trigger

New prospect list uploaded or CRM export

Schedule

On new prospect list (event-driven)

Workflow Steps

1

Load prospect list

Import CSV or receive webhook with prospect records: name, company, domain, and email. Deduplicate by domain.

2

Google news search

For each prospect company, search Google for recent news, funding rounds, and product announcements. Extract the freshest, most relevant signal.

3

Reddit pain point search

Search Reddit for the company name to find community discussions, complaints, and feature requests that reveal pain points.

4

Select best personalization angle

Rank signals by recency and relevance. Pick the single strongest personalization hook: a funding round beats a generic mention.

5

Export enriched list

Output the original prospect data plus a personalization_snippet field ready for mail merge. Send to Instantly, Smartlead, or Outreach.

Python Implementation

Python
import requests, os, json

H = {'x-api-key': os.environ['SCAVIO_API_KEY']}
SIGNAL_KW = ['funding', 'raised', 'launched', 'announced', 'hired', 'acquired', 'series']

def enrich_for_email(company, domain):
    # Google for recent news
    g = requests.post('https://api.scavio.dev/api/v1/search', headers=H,
        json={'platform': 'google', 'query': f'{company} news 2026'}, timeout=10).json()
    # Reddit for community signals
    r = requests.post('https://api.scavio.dev/api/v1/search', headers=H,
        json={'platform': 'reddit', 'query': company}, timeout=10).json()

    google_results = g.get('organic', [])[:5]
    reddit_results = r.get('organic', [])[:3]

    # Find strongest signal
    best_signal = ''
    for o in google_results:
        snippet = o.get('snippet', '')
        if any(kw in snippet.lower() for kw in SIGNAL_KW):
            best_signal = snippet[:120]
            break
    if not best_signal and google_results:
        best_signal = google_results[0].get('snippet', '')[:120]

    reddit_angle = reddit_results[0].get('title', '')[:100] if reddit_results else ''
    return {
        'company': company, 'domain': domain,
        'personalization_snippet': best_signal,
        'reddit_angle': reddit_angle,
        'signal_type': 'strong' if any(kw in best_signal.lower() for kw in SIGNAL_KW) else 'general',
    }

prospects = [
    ('Vercel', 'vercel.com'),
    ('Linear', 'linear.app'),
    ('Resend', 'resend.com'),
]
for company, domain in prospects:
    data = enrich_for_email(company, domain)
    print(f"[{data['signal_type'].upper()}] {company}: {data['personalization_snippet']}")
    if data['reddit_angle']:
        print(f"  Reddit: {data['reddit_angle']}")

JavaScript Implementation

JavaScript
const H = {"x-api-key": process.env.SCAVIO_API_KEY, "Content-Type": "application/json"};
const SIGNAL_KW = ["funding", "raised", "launched", "announced", "hired", "acquired", "series"];

async function enrichForEmail(company, domain) {
  const [g, r] = await Promise.all([
    fetch("https://api.scavio.dev/api/v1/search", {
      method: "POST", headers: H,
      body: JSON.stringify({platform: "google", query: `${company} news 2026`})
    }).then(r => r.json()),
    fetch("https://api.scavio.dev/api/v1/search", {
      method: "POST", headers: H,
      body: JSON.stringify({platform: "reddit", query: company})
    }).then(r => r.json()),
  ]);
  const googleResults = (g.organic || []).slice(0, 5);
  const redditResults = (r.organic || []).slice(0, 3);
  const strong = googleResults.find(o =>
    SIGNAL_KW.some(kw => (o.snippet || "").toLowerCase().includes(kw)));
  const bestSignal = (strong?.snippet || googleResults[0]?.snippet || "").slice(0, 120);
  const redditAngle = (redditResults[0]?.title || "").slice(0, 100);
  return {
    company, domain, personalizationSnippet: bestSignal, redditAngle,
    signalType: SIGNAL_KW.some(kw => bestSignal.toLowerCase().includes(kw)) ? "strong" : "general",
  };
}

(async () => {
  const prospects = [["Vercel", "vercel.com"], ["Linear", "linear.app"], ["Resend", "resend.com"]];
  for (const [company, domain] of prospects) {
    const data = await enrichForEmail(company, domain);
    console.log(`[${data.signalType.toUpperCase()}] ${company}: ${data.personalizationSnippet}`);
    if (data.redditAngle) console.log(`  Reddit: ${data.redditAngle}`);
  }
})();

Platforms Used

Google

Web search with knowledge graph, PAA, and AI overviews

Reddit

Community, posts & threaded comments from any subreddit

Frequently Asked Questions

Enrich every prospect in a cold email list with fresh search signals before sending. Google surfaces recent news, funding, and product launches. Reddit surfaces community pain points. Output personalization variables for your email platform.

This workflow uses a new prospect list uploaded or crm export. On new prospect list (event-driven).

This workflow uses the following Scavio platforms: google, reddit. 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.

Cold Email Search Personalization Workflow

Automated workflow that enriches cold email prospect lists with live Google and Reddit search signals for high-conversion personalization.