Prospect Qualification
How do you enrich a lead inside an agent?
You enrich a lead inside an agent by wiring a remote MCP server that returns a full company dossier from a domain, in one call. Bassethound's sniff_domain takes the domain and hands back firmographics, tech stack, infrastructure, AI-readiness, and an ICP signal your agent can branch on. No API key, no fan-out across five vendors, no leaving the conversation.
Best move: point your agent at one MCP endpoint that turns a domain into a full dossier, then qualify the lead inside the same conversation.
Why it works: enrichment is a lookup the agent can run mid-turn, and it already holds the domain. One correlated call beats stitching five vendor APIs, and keyless means nothing sits between the lead and the answer.
Key takeaways
- Enriching a lead in an agent is one MCP tool call that returns firmographics, tech stack, infrastructure, AI-readiness, and security from a single domain.
- The domain is the only input. sniff_domain resolves the rest and correlates all five layers in one response.
- The keyless free tier removes credential setup, so an agent enriches a lead with no bring-your-own-key wiring.
- The dossier’s icp_signal (hot, warm, or cold) turns raw detection into a verdict your agent can branch on without post-processing.
- Each enrichment is self-contained and read-only, so no call depends on the one before it.
What does it mean to enrich a lead inside an agent?
Traditional enrichment is a database read. You pass an email or a domain to a SaaS API, and it returns a firmographic row (name, vertical, headcount, revenue band) drawn from a corpus crawled weeks or months ago. The agent is a client fetching a record.
Agent-native enrichment runs the other way. The agent calls a tool in the middle of a conversation, gets a live dossier back, reasons over it, then acts (score it, route it, draft the first line of outreach) in the same turn. The loop never leaves the request. You are not pulling a stored row. You are commissioning an investigation and reading the result while it is still warm.
The agent already holds context the corpus never will: which list this lead came from, what the rep is trying to decide, how the last three leads scored. When enrichment lands as a structured dossier inside that context, the agent can compare it, rank it, and explain the call. A spreadsheet row cannot. What you are buying is not the data. It is the data arriving where the reasoning happens.
What does one sniff_domain call return for a lead?
Five correlated layers and a fused summary. Tech stack lists frameworks, CMS, analytics, and payments, each carrying a confidence and the evidence behind it. Infrastructure gives you the IP, ASN, hosting org, CDN, nameservers, MX and email provider, the email-auth booleans (SPF, DKIM, DMARC), and the TLS certificate down to days remaining. Firmographics carry the company name, vertical, description, contacts, and social profiles. AI-readiness is the layer no enrichment vendor ships. It fingerprints model providers, AI SDKs, orchestration frameworks, vector stores, LLM observability, llms.txt, and MCP endpoints, then rolls them into a score out of six and a verdict of shipping, experimenting, or none.
Security grades the response headers A through F and adds a TLS grade. The top-level summary fuses all of it into primary_stack, an ai_readiness object, a security_grade, and an icp_signal.
Correlation is the whole point. An agent can hit five separate MCP servers for five separate facts and still not reconcile them cheaply: the vector store sitting next to the model provider, next to the hosting org, next to the ICP verdict. One crawl produced all of it, so the alignment arrives for free in one response.
How do you turn the dossier into a qualify or pass decision?
Read the summary first, then drop to the layer that settles the edge case. The icp_signal (hot, warm, cold) is your fast path. It already fuses stack, AI-readiness, and firmographics into one signal, so the agent branches on it in a single line: hot goes to a rep, warm gets a nurture sequence, cold gets skipped.
When you need to defend the call, go one layer down. If your ICP is companies shipping AI, the ai_readiness verdict is the gate: shipping clears, experimenting flags for a human, none drops. If your ICP is technographic, primary_stack tells you whether they run the platform you integrate with. If it is firmographic, the vertical and contacts carry it.
Reject single-signal scoring. A homepage that mentions AI is not a lead. A vector store sitting next to an Anthropic SDK next to a real llms.txt is. Because the layers are correlated, your agent can demand two independent signals before it marks a lead hot, and it can cite both in the qualification note. That is the gap between a score and a score you can defend in a pipeline review.
Why does keyless MCP matter for enrichment inside an agent?
Credential plumbing is where agent enrichment breaks. Bring-your-own-key enrichment makes every user provision an account, generate a key, store it as a secret, then rotate it. Multiply that across a team and enrichment stops being one tool call and turns into a setup ticket.
Keyless changes the shape. Bassethound owns the crawl, so the free tier runs rate-limited with no key at all. Any agent host that speaks MCP (Claude, Cursor, ChatGPT) connects to mcp.bassethound.ai/mcp and enriches on the spot. The paid tier layers OAuth on top for higher depth and volume, but the path from zero to first enrichment holds no secret.
This is structural, not a pricing choice. A vendor reselling someone else’s data has to pass through that vendor’s key, which is why so much enrichment tooling runs bring-your-own-key underneath. Owning the crawl is what keeps the front door open. For the agent, enrichment becomes a capability it always has, not one gated behind whether the user finished onboarding. The tool is live the moment the endpoint is wired.
What can domain enrichment miss?
Anything that never touches the surface you can crawl. The dossier reads what a site loads and calls: markup, scripts, headers, DNS, certificates. A component running fully server-side, or sitting behind a proxy that strips its signatures, stays invisible. A model provider called only from a backend the front end never exposes will not fingerprint from a static crawl.
JavaScript is the other gap. Server-rendered imports show up in static HTML. A client that only boots in the browser needs a JS render, and Bassethound renders when the signals warrant it. Even then, a single-page app that lazy-loads a component you never triggered can hide it.
The design choice is to report the gaps, not paper over them. Confidence scores tell you how strong each detection is. An AI-readiness verdict of none means found no signals, not uses no AI, and the dossier says so plainly. For a qualification workflow, that honesty is the feature. A false shipping-AI reading wastes a rep’s morning. A flagged could-not-reach-the-client-render tells your agent to route it for a human look. Enrichment that names its blind spots beats enrichment that guesses.
Bassethound perspective
Every enrichment vendor sells you the same field set: name, vertical, headcount, revenue band. Those went commodity years ago. Apollo, ZoomInfo, and Clearbit compete on corpus size and freshness, which means they compete on how recently they crawled, and the answer is never today. You get a row that was true last month.
Here is the conviction they would dispute. In 2026 the enrichment field worth paying for is not headcount. It is whether the company ships AI, and what it ships. Not mentions AI on the homepage, which is marketing noise every one of their tools would happily surface. We mean the backend tell: the vector store, the model provider, the orchestration framework, the observability layer. That signal costs real effort to fake and buys nothing when faked, which is why it qualifies a lead better than any firmographic band.
No enrichment vendor returns it, because their moat is the corpus, and the corpus holds no fingerprint of what the front end loads. Ours is fusion, our own crawl, and the AI layer, delivered keyless over MCP. Bassethound enriches the lead your agent is trying to qualify, not a row a vendor refreshed last quarter.
Sources
- Model Context Protocol documentation: https://modelcontextprotocol.io
- Anthropic Model Context Protocol docs: https://docs.anthropic.com
- OpenAI platform documentation: https://platform.openai.com
- llms.txt standard: https://llmstxt.org
Frequently asked questions
Do you need an API key to enrich a lead this way?
No. The keyless free tier enriches a lead from a rate-limited call, so your agent needs no credential plumbing. The paid tier uses OAuth for higher depth and volume.
Can an agent enrich a lead from just a domain?
Yes. The domain is the only required input. sniff_domain resolves DNS, TLS, hosting, tech stack, firmographics, and AI signals from there and correlates them into one dossier.
Is the enriched data stored anywhere?
Every call is stateless and read-only, so no call depends on the one before it. Your results are stored against your account.
How is this different from Clearbit or Apollo enrichment?
Those return a firmographic row from a corpus that ages between refreshes. Bassethound runs its own crawl and adds the layer they lack: deep AI-stack detection from backend fingerprinting.
What profile should you use to enrich a lead for qualification?
Standard is the default and adds the AI stack plus firmographics on top of the fast layer. Use deep when you want the security grade and Wayback first-seen history for the qualification note.