← Use Cases

How do I clean my prospect list before sending cold emails?

The problem

Cold email campaigns live or die on deliverability. Emails to dead domains bounce. Bounces tank your sender reputation. A tanked sender reputation means your real emails land in spam, even when you're emailing real prospects at real companies.

Prospect lists from scraping tools, purchased databases, and CRM exports always contain dead weight: domains that no longer resolve, parked placeholders, domains without MX records that can't receive email, and companies that quietly closed months ago.

How Unphurl solves it

Before your campaign runs, send the prospect domains through Unphurl's batch endpoint with a cold-email scoring profile. The profile weights dead-domain signals heavily and de-prioritizes security signals that don't matter for outreach.

Signals that matter for this use case

  • Parked domain means the domain is a placeholder. Nobody is there. Remove it.
  • Chain incomplete means the domain didn't resolve. Dead link. Remove it.
  • No MX record means the domain can't receive email. Your outreach bounces.
  • Expiring soon means the domain expires within 30 days. Business may be closing.
  • SSL invalid / HTTP only signals poorly maintained infrastructure.

Suggested scoring profile

{
  "name": "cold-email",
  "weights": {
    "parked": 30,
    "chain_incomplete": 25,
    "no_mx_record": 20,
    "expiring_soon": 15,
    "ssl_invalid": 15,
    "http_only": 15,
    "brand_impersonation": 10,
    "domain_age_7": 5
  }
}

What a result looks like

You batch check 10,000 prospect domains. Results come back:

Batch summary for 10,000 URLs:
Tranco (known): 7,200 (free)
Cache hits: 2,300 (free)
Pipeline checks: 500 (charged)
Flagged (score > 40): 312 domains
Parked: 89
No MX record: 156
Chain incomplete: 67

312 domains removed from the list. Your campaign goes out to 9,688 real, reachable prospects instead of bouncing off dead infrastructure.

Cost

In a typical batch of 10,000 URLs, 95-99% resolve free against the Tranco Top 100K and cache. You pay for maybe 100-500 pipeline checks. A Pro package ($99 for 2,000 pipeline checks) handles multiple campaigns.

The second time you check a similar list, even more URLs resolve from cache. Cost drops over time.

Get started

# Batch check from a file
unphurl --batch prospects.csv --profile cold-email

# Filter results (JSON output, pipe to jq)
unphurl --batch prospects.csv --profile cold-email --json | \
  jq '[.[] | select(.score < 40)] | length'