Your AI agent shouldn't act on data it can't cite A developer built abm.dev, an API that enriches B2B data with per-field confidence scores and sources, enabling AI agents to act only on verified information. The system aggregates data from ten providers including LinkedIn, Companies House, and Hunter, returning each value with its source, confidence level, and verification status. This prevents agents from acting on unverified guesses, addressing a key hallucination risk in automated outreach. A great rep once knew every account. An agent doesn't, unless you tell it what's true and how sure to be. Enrichment APIs hand your agent a value. An email. A job title. A funding round. The agent acts on it: writes the email, books the play, updates the CRM. But was that email verified, or guessed? Most APIs won't say. For a human scanning a spreadsheet, fine, you eyeball it. For an agent sending on your behalf, an unmarked guess is how it emails a made-up address with total confidence. So we built abm.dev https://abm.dev the other way round. Every field carries its own source and a confidence score. Not a blended trust rating for the record. Per field. Eighty-nine canonical fields on an enrichment, forty-three on a person, forty-six on a company. Ten providers behind one call, LinkedIn, Companies House, Hunter, Perplexity, Tavily and five more, aggregated, deduped, reconciled. One key, one schema, no per-source bills. And every value comes back wrapped: { "work email": { "value": "jsmith@acme.com", "confidence": 0.94, "source": "hunter.io", "verified": true }, "employee count": { "value": 240, "confidence": 0.61, "source": "linkedin", "note": "companies-house filing says 180; both kept" } } When sources disagree, we don't silently pick a winner. We keep both and tell you. No fabricated data. No silent fallbacks. That envelope is the whole point for an agent. It can gate on confidence: act on 0.94 , hold on 0.61 , route the low ones to a human. It can cite its own work, so when someone asks why did you email this person , there's a source, not a shrug. Grounding is the difference between an agent that builds pipeline and one that hallucinates it. And the honest bit, because an agent needs the honest bit: it's near-useless on companies with no public footprint. The difference is it tells you when it's guessing, instead of guessing in a confident voice. Three verbs sit on top of the same idea. Search the accounts and people. Enrich them into cited fields. Create the records and the outreach. Over a plain REST call, or as a Claude Connector https://abm.dev/docs/integrations/claude-connector your agent talks to directly over MCP. If you're building anything that acts on B2B data without a human in the loop, come make it prove itself. There's a free playground at abm.dev https://abm.dev , and LAUNCHCODES puts about twenty in credits on your account to try it on an account you know cold. Tell me where it's wrong, that's the useful part.