outreachapollointent

Apollo List Decay and Intent Signals

Apollo contact lists decay 30-40% per year. Reddit users report everyone hits the same leads. Intent-based outreach via Reddit and SERP signals finds fresh prospects.

8 min

Static contact lists from Apollo are "burnt" -- every SDR team pulls the same contacts from the same filters, and those contacts are drowning in outreach. The alternative is finding people actively discussing problems you solve on Reddit, Twitter, and forums right now. Intent signals from live search beat static lists because you reach people when they are actively looking, not when your CRM says it is their turn.

Why Apollo lists decay

Apollo's database is shared. When you filter for "VP of Engineering at Series B SaaS companies in the US," you get the same 2,000 contacts that every other sales team targeting that segment already has. Those contacts receive 50+ cold emails per week. Response rates on cold lists have dropped below 1% for most B2B segments in 2026. The data is not wrong -- the timing is.

Intent signals vs. contact lists

Python
# Static list approach (Apollo-style)
static_approach = {
    "source": "Apollo contact database",
    "signal": "Job title + company size + industry",
    "timing": "Unknown - could be irrelevant right now",
    "competition": "Every SDR with the same filters",
    "response_rate": "< 1% typical",
}

# Intent signal approach (search-based)
intent_approach = {
    "source": "Reddit, Twitter, forums via search API",
    "signal": "Person actively asking about the problem you solve",
    "timing": "Right now - they posted today/this week",
    "competition": "Almost nobody monitors these signals",
    "response_rate": "5-15% when reply is genuinely helpful",
}

Building a Reddit intent monitor

Python
import requests, os, json
from datetime import datetime

def find_intent_signals(keywords: list, platform: str = "reddit") -> list:
    """Find people actively discussing problems you solve."""
    signals = []

    for keyword in keywords:
        resp = requests.post(
            "https://api.scavio.dev/api/v1/search",
            headers={"x-api-key": os.environ["SCAVIO_API_KEY"]},
            json={
                "query": keyword,
                "platform": platform,
                "country_code": "us",
            },
            timeout=10,
        )
        results = resp.json().get("organic_results", [])

        for r in results:
            signals.append({
                "keyword": keyword,
                "title": r.get("title", ""),
                "url": r.get("link", ""),
                "snippet": r.get("snippet", ""),
                "platform": platform,
                "found_at": datetime.utcnow().isoformat(),
            })

    return signals

# Monitor for people asking about problems your product solves
keywords = [
    "looking for alternative to semrush",
    "best serp api for agents",
    "how to track keyword rankings cheap",
    "n8n seo automation workflow",
    "need help with rank tracking api",
]

signals = find_intent_signals(keywords)
# 5 queries = 5 credits = $0.025

Filtering for actionable signals

Python
def score_intent_signal(signal: dict) -> dict:
    """Score how actionable an intent signal is."""
    score = 0
    snippet = signal.get("snippet", "").lower()
    title = signal.get("title", "").lower()

    # Direct need indicators
    need_phrases = ["looking for", "need help", "recommend", "alternative to",
                    "best tool", "how to", "anyone using", "what do you use"]
    for phrase in need_phrases:
        if phrase in snippet or phrase in title:
            score += 2

    # Budget/buying signals
    buy_phrases = ["pricing", "cost", "budget", "willing to pay", "free trial"]
    for phrase in buy_phrases:
        if phrase in snippet or phrase in title:
            score += 3

    # Frustration signals (highest intent)
    frustration = ["frustrated", "broken", "doesn't work", "too expensive",
                   "switching from", "cancelling", "terrible"]
    for phrase in frustration:
        if phrase in snippet or phrase in title:
            score += 4

    signal["intent_score"] = score
    signal["actionable"] = score >= 4
    return signal

# Filter to only actionable signals
scored = [score_intent_signal(s) for s in signals]
actionable = [s for s in scored if s["actionable"]]

for s in actionable:
    print(f"[Score: {s['intent_score']}] {s['title']}")
    print(f"  {s['url']}")

The response workflow

When you find an actionable signal, the reply must be genuinely helpful -- not a sales pitch. Answer their question first. Mention your product only if it is directly relevant and only after providing value. Reddit and forums will downvote and report obvious self-promotion. The goal is to be the helpful expert who happens to work on a relevant product.

Python
def create_response_brief(signal: dict) -> dict:
    """Create a response brief for a human to review and post."""
    return {
        "url": signal["url"],
        "title": signal["title"],
        "intent_score": signal["intent_score"],
        "guidelines": [
            "Answer their specific question first",
            "Share relevant experience or data",
            "Mention product ONLY if directly solving their stated problem",
            "Keep reply under 200 words",
            "No marketing language or superlatives",
            "Link to documentation, not landing pages",
        ],
        "context": signal["snippet"],
    }

# Generate briefs for human review -- never auto-post
briefs = [create_response_brief(s) for s in actionable]

Cost comparison: Apollo vs. intent monitoring

  • Apollo: $49-149/month for contact database access, plus email sending costs
  • Intent monitoring: 20 keywords x daily search = 600 queries/month = $3/month on Scavio
  • Apollo response rate: less than 1% on cold outreach
  • Intent-based response rate: 5-15% when reply is genuinely helpful
  • Apollo scales by adding more contacts (diminishing returns)
  • Intent monitoring scales by adding more keyword signals (compounding returns)

When Apollo still wins

Intent monitoring works for products with active online communities discussing the problem space. If your buyers are not on Reddit or public forums -- enterprise procurement, healthcare, government -- Apollo-style contact databases are still the primary channel. The approaches are not mutually exclusive: use intent signals as your warmest leads and Apollo for broader outreach to fill the pipeline.