Give the agent a source, not a search box.
People, companies and decision makers behind one API, and the same graph reachable as MCP and Skills inside Claude and ChatGPT. A tool call returns a structured, current record instead of whatever the open web happened to say.
Teams already building on the graph.
Platforms and businesses shipping their own products on ZipLabs data.
An agent is only as good as what it can look up.
The reasoning is rarely the weak part. The retrieval is.
Scraping is a runtime dependency on a stranger
Someone else's markup, someone else's rate limiter, someone else's opinion about bots. The agent worked in the demo and stops working the week a layout changes.
A gap gets filled with something plausible
Ask for a VP of Engineering and a model will produce a name, a title and a confident sentence. Nothing about the output tells the user which parts were retrieved.
You cannot cite a scrape
An agent that acts — sends the email, books the meeting, updates the record — needs an answer somebody will stand behind. A page it read once at three in the morning is not that.
Retrieval that behaves like infrastructure.
Each of these replaces a step your agent currently improvises with one it can depend on.
-
crawling for itasking for itone hop, and the shape is known
One call instead of a crawl
The lookup an agent spends a dozen fetches and a parsing prompt on is a single request with a defined response. Fewer tokens, fewer failure modes, and a latency you can predict.
-
fn enrich_company tool call issued structured result pending 200resolving northwind.io… assembling fields… size, funding, leadership, signals
A tool call that returns a record
Typed fields with a known schema, not a page of prose for the model to interpret. Your code can branch on the answer instead of asking the model to read its own retrieval.
-
? who runs eng plausible answer sourced answer citablefield-level origin confidence scored
An answer the agent can cite
Every field traces to where it came from and carries a confidence score, so the agent can show its work — and can be told to stay quiet when the confidence is not there.
-
ask: who should we call herethe assistant looks it up…M MCP connectedS Skills connectedthe graph, in the chat window
The graph inside the assistant
The same graph reachable from Claude and ChatGPT as MCP and Skills, so a revenue team gets the answer conversationally without anybody building an internal tool for it first.
-
MD Meridianon your watchlist change observed…new CRO webhook sent→→✓ the agent woke up for a reason
An agent that gets told, not one that polls
Monitoring pushes the change to you when it happens. The agent stops burning a scheduled run on a thousand accounts that did not move, and starts running when one of them does.
-
agreed quotano blocklist stable schemarunning at volume…runs completed all of them✓ nothing halfway through a job
Limits you agreed, not limits you discovered
A scraper finds its ceiling by hitting it, usually in the middle of a long run. A contracted quota is a number you designed around before you shipped.
The calls most agents need.
Resolve who somebody is, resolve where they work, find people who match a description, and name the people who decide.
People Enrichment
Start here when the agent has an identifier and needs the person behind it, complete and current.
Company Enrichment
Start here when it has a domain and needs the company — size, funding, leadership, headcount by department.
People Search
Start here when the agent has a description rather than a name, and needs current people who match it.
Decision Makers
Start here when the next step is an action, and the agent needs the people who can actually say yes.
Retrieval your legal team already approved.
An agent that scrapes puts the compliance question inside your product at runtime. A contracted source moves it to procurement, where it belongs: agreed scope, traceable fields, a supplier who can correct a record and a document your customer's reviewer can read.
Security & Trust CentreWhat an agent builder
asks first
Is there an MCP server, or do we wrap the API ourselves?
Both work. The graph is reachable as MCP and as Skills inside Claude and ChatGPT, and the same endpoints are plain HTTP if you would rather define the tools yourself. Teams building their own agent usually take the API; teams wanting the answer in a chat window take the connector.
What does a miss look like?
An explicit no-match. That matters more for an agent than for a person: a model handed a partially-filled record will smooth over the gap, so the response has to make the absence unambiguous rather than returning a confident-looking average.
Can we cache responses, or train on them?
Caching, storage and any downstream use are set in the agreement rather than assumed either way — and they are worth settling before you build, because an agent that stores every enrichment is a different arrangement from one that looks up and forgets. Tell us the architecture and we will scope it.
How current is a record at the moment the agent reads it?
Profiles are refreshed continuously — 350M+ a month — and Decision Makers is monitored rather than refreshed on a cycle. For anything you need to react to rather than look up, monitoring will push the change to you instead.
Where does the data come from?
Our own graph, resolved and reconciled across 18+ data sources rather than resold from an intermediary. That is what makes a field traceable, and it is the reason an answer from here can be cited inside your product.
Replace the step that keeps breaking.
Tell us the lookup your agent improvises today. We will show you the call that returns it and what the response actually contains.











