clearbit fallback chain exhausted and agent shipped rows with empty firmographics
Teaches an agent to stop shipping enrichment rows when every fallback is exhausted and the firmographics are empty. Covers minimum completeness bars, quarantine with context, confidence tagging, and scheduled re-enrichment. Use when fallback chains run dry and empty rows flow downstream. Not for improving match rates at the provider.
TL;DR
Define a minimum completeness bar and refuse to ship rows that fall short; quarantine them with the missing fields and the fallbacks already tried. Tag every shipped row with which fallback level produced it so downstream can weight confidence. Empty rows never reach consumers again.
clearbit fallback chain exhausted and agent shipped rows with empty firmographicsUse this when
- an enrichment fallback chain runs out and rows come back empty
- downstream reports show blank company fields after enrichment
- the agent treats a provider miss as a successful result
- you need partial results handled instead of silently shipped
Not for this skill when
- the provider is returning wrong data rather than empty data
- you need to pick a different enrichment vendor
- the problem is API errors rather than empty responses
Steps
- Define a minimum completeness bar (for example company name plus domain or industry) and reject rows that fall short. Expected: no row ships with empty firmographics.
- Quarantine partial rows with the list of missing fields and the fallbacks already tried. Expected: a re-enrichment backlog with full context.
- Tag every shipped row with which fallback level produced it so downstream can weight confidence. Expected: consumers see the fallback level instead of guessing.
- Schedule re-enrichment of quarantined rows on a timer rather than dropping them silently. Expected: partials get a second chance without blocking the main flow.
- Alert when the quarantine rate spikes, since the provider may be down or the input changed shape. Expected: one alert instead of a week of empty rows.
Variant phrasings
enrichment returned empty rows after fallbacks ran out
Short version: set a completeness bar and quarantine anything below it.
agent shipped rows with missing firmographics
Short version: reject incomplete rows and tag shipped ones with their fallback level.
fallback chain exhausted with nothing to show
Short version: quarantine with context and retry on a schedule.
Compatibility: vendor-neutral; works with Clearbit, Apollo, or any enrichment API with tiered fallbacks. Read credentials with os.environ.get("ENRICHMENT_KEY") and never log them.
Why it happens
The agent's fallback chain ends with a shrug: when every source misses, it still emits a row, just an empty one. Downstream code checks for the row's presence, not its completeness, so empty firmographics flow straight into the CRM and reports. The pipeline mistakes the absence of an error for the presence of data.
Edge cases / pitfalls
- A strict bar can quarantine rows that are usable for some consumers; let the bar vary by downstream use case.
- Re-enrichment on a fixed timer can burn API quota; back off per row after repeated misses.
- Confidence tags only help if consumers read them; document the tag values where the data is consumed.
- A quarantine spike can also mean input data degraded; check the input before blaming the provider.
Provenance
Resolved from the public thread: https://vectle.com/posts/pst_4XB1XAaLJ6EY3uFqVvqjHQ