The scraper that worked until the data mattered. Preethi had been running data collection pipelines for three years before she joined the company — professionally, not casually. She understood header normalization, session management, and proxy rotation. What she hadn't run before was a pipeline pulling contact data from ten commercial sources at once, at four hundred thousand records a month, with a thirty-day freshness requirement on every field.
Her first attempt lasted eleven days before the block cascade started.
LinkedIn blocked the IP range. Apollo returned CAPTCHA challenges on forty percent of requests. ZoomInfo began serving honeypot data — plausible-looking but deliberately incorrect records inserted specifically to catch automated collection. The pipeline was still running. It was still returning results. The results weren't what they appeared to be.
IP blocks and CAPTCHAs are visible failures — they surface as errors and stopped pipelines. Honeypot data doesn't. It passes format validation and moves downstream before anyone notices the phone numbers connect to nothing and the job titles are two years stale. Preethi had eight days of it in her CRM before the cascade made anything visibly wrong.
01What detection systems are actually measuring
Preethi's first move had been rotating proxies more aggressively — every ten requests instead of every hundred. The CAPTCHA rate went up, not down.
That's the most common misunderstanding in data collection infrastructure. Detection systems on modern platforms aren't primarily evaluating IP addresses — the IP is one signal among dozens, and rarely the highest-weighted one. What they're actually measuring is the coherence of a browsing session against the statistical distribution real human sessions produce on that platform: request timing, JavaScript events, scroll behavior, header ordering.
When a session diverges too far from that distribution — too fast, too consistent, missing browser events — the platform doesn't block immediately. It challenges. It serves a CAPTCHA, or a JavaScript challenge page, or degraded results. Only if the anomaly persists does it escalate to the IP.
02Three failure modes that look like one problem
CAPTCHA challenges
Served when a session is classified as probably automated but not yet definitively confirmed. Adding more IPs without changing session behavior just sends more suspicious sessions — the CAPTCHA rate won't move, because IP was never the primary variable.
IP-level blocks
The endpoint of an escalation, not the start of one. They almost never happen on the first suspicious session — they follow session-level suspicion, challenge serving, and persistence across enough sessions. Rotating to a new IP after a block means responding to the last stage of an escalation that could have been interrupted much earlier.
Honeypot data
The hardest to detect, and the most expensive downstream. Platforms sometimes choose not to block a suspected scraper outright — a hard block teaches it to change behavior. Serving corrupted data instead lets the platform stop caring while the scraper keeps believing it's working.
03Why the failure wasn't really about detection
At forty thousand records a month, Preethi's pipeline ran eight months without serious response. The platforms almost certainly knew automated collection was happening — light scraping is something most commercial platforms tolerate, because the cost of blocking it exceeds the value of stopping it.
What changed at four hundred thousand records a month wasn't detection. It was the economics.
At that volume, the pipeline was competing directly with the platform's core product — and honeypot insertion, accelerated blocking, and fingerprint blacklisting become worth deploying. The fix isn't better evasion; it's distributing the extraction signal across more sessions, sources, and time so no single platform crosses that threshold.
04Session architecture that reduces detection surface
The correct response to CAPTCHA challenges is session architecture, not faster rotation:
- Variable request timing. A distribution of inter-request intervals matching real dwell times per page type — not fixed, not uniformly random.
- Browser signal completeness. JavaScript events, scroll behavior, image and font loads, mouse movement — a stealth-configured browser rather than plain headless Chromium.
- Session depth before collection. Sixty to ninety seconds of normal navigation before entering collection mode, building history the detection model reads as human.
- Cross-session identity isolation. Unique browser profile per session — IP, TLS fingerprint, canvas signature, viewport — not just a rotated IP on an otherwise identical fingerprint.
Preethi had variable timing and IP rotation. She had none of the other three — her sessions were diverse at the network layer and identical at every application-layer signal the detection systems actually evaluate.
05Detecting honeypot data before it reaches the database
Legitimate data errors decay randomly across a dataset. Honeypot data clusters around accounts the platform has flagged, and it's internally consistent while being externally wrong. A validation layer has to check external consistency, not internal plausibility.
- Email domain infrastructure. Reject domains with no active MX records — plausible-looking but unable to receive mail.
- Phone carrier sampling. A random 7% sample checked for line type; over 12% resolving to non-geographic carriers is worth investigating.
- Cross-source corroboration. For high-value records, verify one field against a source the platform doesn't control — company site, registry, recent news.
That layer adds roughly four hours of processing per hundred thousand records. The alternative was eight days of poisoned records working their way through the CRM, the enrichment layer, and the outbound sequencer.
06A rate framework that thinks in sessions, not requests
The rebuild's core change: managing rate at the session-trust level instead of the request level. Every session gets an establishment phase — slow, high-fidelity, building trust — followed by a production phase, where collection proceeds faster within the trust window the establishment phase bought, then retires before that window is spent.
07Nine months later
CAPTCHA challenges across all platforms now sit below two percent of sessions. IP block events happen roughly once every two weeks, down from multiple per day during the cascade. The validation layer has flagged two honeypot-density spikes in nine months — both caught before reaching the CRM.
Three things changed: session architecture producing behavioral patterns within the human distribution, a validation layer built for external rather than internal consistency, and a rate framework that manages session lifecycle instead of request volume. The residential proxy layer underneath all of it is the foundation — but Preethi's original eleven-day pipeline also had residential rotation, and it still failed in eleven days. Architecture is what made the IPs useful.
08The thing that does not stay solved
Detection systems retrain continuously. A session architecture that reads as human today will be identified as automated in twelve to eighteen months once enough pipelines converge on the same techniques. Evasion isn't futile — but it isn't a one-time decision either. It's ongoing calibration: watching challenge rates per platform, watching honeypot-signature density, and adjusting before either one climbs.
Start with 500 free credits
Residential proxy infrastructure without shared-pool contamination from other pipelines' collection history — the foundation the session architecture above is built on.
Get started →Frequently asked questions
Why is my email finder match rate so low?
Low match rates usually trace back to source data age rather than the finder itself. Enrichment sources decay fast — job changes, domain migrations, and inbox turnover mean a record that was accurate thirty days ago can already be wrong. A finder pulling from a single stale source, or one being served honeypot data because its collection pattern looks automated, will show a match rate that reflects the source's health more than the person you're actually looking for.
How can I improve email finder match rates?
Combine more than one enrichment source rather than relying on a single provider, verify every candidate address against live MX records before counting it as a match, and refresh source data on a cycle short enough to catch job changes — thirty days or less for fast-moving industries. Cross-checking a sample of results against a source the enrichment platform doesn't control also flags when a source has quietly gone stale.
What causes low email enrichment match rates?
Three things, usually in combination: data decay (the contact moved on since the record was collected), catch-all domains that make format-valid guesses look like matches when they aren't, and collection-side throttling — rate limits or CAPTCHA challenges that cause a pipeline to return partial or degraded results instead of a clean miss.
How do catch-all domains affect email verification?
A catch-all domain accepts mail to any address at that domain, valid or not, so a standard SMTP verification check can't distinguish a real inbox from a guess. This inflates apparent match rates while quietly lowering real deliverability — the address passes verification but may still bounce or land nowhere. Catch-all domains need a separate confidence flag rather than being scored the same as domains that reject invalid addresses outright.
Why does domain accuracy matter for email finders?
The domain determines where mail actually routes. A finder can get the person's name and pattern right and still fail if it's guessing against an outdated company domain, a subsidiary domain, or one that changed after an acquisition. Since domain-level errors produce addresses that are syntactically valid but never reach a real inbox, they're one of the harder failure modes to catch without checking domain infrastructure directly.
How accurate are email finder tools?
It varies widely by provider and by how the number is measured — reported accuracy commonly ranges from the low sixties to the mid nineties depending on source freshness, industry, and whether catch-all domains are scored separately. Tools relying on a single cached database tend to sit at the lower end; pipelines that combine multiple sources with live verification tend to sit at the higher end. Treat any single accuracy number as source- and methodology-dependent rather than a fixed property of the tool.
How can I improve B2B email enrichment accuracy?
Use cross-source corroboration for higher-value records — verify at least one field against a source the enrichment platform doesn't control, such as the company's own site or a public registry. Prefer real-time verification over cached lookups where possible, monitor for catch-all and MX status rather than assuming format validity means deliverability, and treat sudden shifts in match rate as a signal to check whether a source has gone stale or started serving degraded results.