Most enrichment pipelines don’t fail because the API is bad.
They fail because the calling pattern is not designed well.
Researching one individual per request feels fine—until you’re tracking leadership changes at scale:
* 10 executives → 10 calls * latency stacks * rate limits hit * retries waste credits
So we switched to researching in bulk with our third party integration /people/bulk_match.
One call enriches up to 10 people. Same workflow—~10x throughput.
The shift: executives are a batch, not a queue
Instead of enriching each person separately, we send a single payload of up to 10 execs and get back:
matches(enriched people)missing_records(no match found)credits_consumed(cost visibility)
This matters because signals detection is probabilistic. You don’t need perfection—you need coverage, speed, and repeatability.
Production discipline that makes bulk work
Bulk endpoints don’t remove complexity—they concentrate it. So we enforced a few rules:
- Bounded input: hard limit of 10 people per request
- Partial success is normal: process matches, record missing, move on
- Controlled retries: backoff + low retry counts to avoid credit burn
- Structural logging: counts and status, not raw payload dumps
Why this actually becomes 10x
Not just fewer calls—less overhead everywhere:
- fewer round trips
- fewer failure points
- fewer retries
- smoother rate-limit behavior
Takeaway
The hard part of enrichment isn’t matching people.
It’s running it at scale with discipline.
Bulk enrichment turns leadership monitoring from a slow crawl into a reliable system.