← Use Cases

How do I clean dead and stale domains from my CRM?

The problem

CRMs accumulate dead data. Companies close, domains expire, websites get parked. Your sales team wastes time on leads that no longer exist. Your email campaigns bounce off dead domains, damaging sender reputation. And you're paying per-contact for records that are worthless.

A CRM with 10,000 company records might have 500-2,000 dead domains. That's outreach budget wasted on companies that don't exist anymore.

How Unphurl solves it

Export your company URLs from HubSpot, Salesforce, or any CRM as a CSV. Batch check them through Unphurl with a CRM hygiene profile. Flag or remove records with parked domains, dead infrastructure, or no MX records. Your CRM is cleaner, your outreach is more effective, and you stop paying for dead contacts.

After the batch check, filter your results by score to get a clean list. CLI users pipe through jq. Claude Cowork and OpenClaw users just ask for the flagged domains in plain language.

Signals that matter for this use case

  • Parked domain means the company's website is gone. Just a placeholder.
  • Bad domain status (pendingDelete, serverHold) means the domain is effectively dead
  • No MX record means the domain can't receive email. No point emailing them.
  • SSL invalid signals an abandoned or poorly maintained website
  • Expiring soon means the domain is about to lapse. Company may be closing.

Suggested scoring profile

{
  "name": "crm-hygiene",
  "weights": {
    "parked": 35,
    "domain_status_bad": 25,
    "no_mx_record": 20,
    "chain_incomplete": 25,
    "ssl_invalid": 15,
    "expiring_soon": 15,
    "http_only": 10,
    "brand_impersonation": 0
  }
}

What a result looks like

You export 10,000 company domains from your CRM and batch check them:

10,000 CRM domains checked:
Tranco (known): 6,800 (free)
Cache hits: 2,500 (free)
Pipeline checks: 700 (charged)
Flagged (score > 30): 1,240 domains
Parked: 380
No MX record: 520
Dead (chain incomplete): 210
Expiring soon: 130

1,240 dead domains cleaned from your CRM. That's outreach budget and sender reputation saved.

Cost

In a typical CRM export of 10,000 domains, 90-95% resolve free from the Tranco Top 100K and cache. You pay for 500-1,000 pipeline checks. The Pro package ($99 for 2,000 pipeline checks) handles a full CRM clean. Quarterly cleanups cost less as the cache grows.

Get started

For developers: Export and batch check via CLI.

# Export domains from your CRM as CSV, then:
unphurl --batch crm-domains.csv --profile crm-hygiene

# Get flagged domains as a list
unphurl --batch crm-domains.csv --profile crm-hygiene --json | \
  jq -r '.results[] | select(.result.score >= 30) | .url' > flagged.txt

For non-coders (Claude Cowork, OpenClaw, or any AI agent): Give your AI your exported CSV and ask: "Check all these company domains. Give me a list of the dead ones (parked, no MX, expired) so I can remove them from my CRM."