RevOps and SalesOps teams building agent workflows in Claude Code hit the same wall: the CRM has partial company records and the Claude context window is too small to enrich them at scale. This guide shows RevOps engineers, SalesOps practitioners, and Claude Code power users how to call the Explorium business enrichment API from inside Claude Code, from single-row match through bulk export, with confidence rules that keep bad matches out of production data. Two paths are covered: direct HTTP against https://api.explorium.ai/v1/... and the Vibe Prospecting Plugin (the MCP wrapper).

    What Business Enrichment in Claude Code Actually Means

    Business enrichment is not a spreadsheet lookup. It is a controlled API workflow that separates three decisions: resolving the partial input to a canonical company identity, filling missing firmographic and technographic fields with data that meets a confidence threshold, and exporting only the rows that justify the change.

    Why the distinction matters for Claude Code agents

    Many enrichment SDKs treat every row the same. They accept a domain, return something that looks close, and move on. Inside a Claude Code agent workflow, that behavior creates operational problems. An incorrect industry field routes an account to the wrong campaign. A stale headcount breaks lead scoring. A wrong parent-company link disrupts account ownership in the CRM. A duplicate account makes revenue reporting unreliable.

    Business enrichment in Claude Code works differently because Claude Code provides file handling, subagent orchestration, and controlled write-back. The workflow knows what input fields exist, what confidence level justifies an update, and where the enriched output goes next. That is the difference between an enrichment run that improves GTM operations and one that just adds noise.

    Where the direct-API path fits versus the Vibe Prospecting Plugin path

    The Vibe Prospecting Plugin is the MCP wrapper around the Explorium API. It is the right tool for interactive enrichment inside a Claude Code chat: it enforces sample-before-export, surfaces credit usage in the response, and requires no key handling in your script. The direct-API path is the right tool when the enrichment is a scheduled job, a GitHub Action, a Trigger.dev task, or a subagent that runs outside a chat session. Both hit the same Explorium endpoints and the same credit pool. This guide covers both, starting with the direct-API path because that is where Claude Code power users hit the highest scale.

    How the Explorium API Enables Business Enrichment in Claude Code

    Explorium’s AgentSource API is the underlying REST surface. For business enrichment specifically, four endpoints do the work: match-business resolves partial company inputs to a canonical business_id, enrich-business returns firmographic and technographic fields for a batch of IDs, fetch-businesses-events layers buying-signal events, and fetch-entities-statistics acts as the sample-before-export cost estimator. The Vibe Prospecting Plugin exposes the same endpoints as MCP tools when you prefer a plugin call over raw HTTP.

    What the API accepts as input

    The strongest single match signal is a company domain (website). Domains drift less than names across subsidiaries, rebrands, and regional variations. Company name plus domain is Explorium’s recommended combination — the match endpoint applies smart fuzzy logic on the name and uses the domain as an anchoring signal. Domain alone is the fallback. Name alone is the weakest single input. Including the CRM account ID in every row is non-negotiable: it is the anchor that ties the enriched result back to the correct CRM record.

    What the API returns

    Once a strong match exists, the API can fill 4,000+ firmographic and technographic fields per company profile, including company domain, industry, employee headcount, revenue range, country, region, tech stack, funding rounds, parent-company relationships, and 18 categories of buying signals. These fields support routing, scoring, segmentation, and outbound sequencing decisions that depend on reliable GTM data.

    Step 1, Set Up the API Key in Claude Code

    Get an API key from the Explorium dashboard, then put it in your Claude Code project’s .env file. Claude Code loads the key automatically for subagents and shell commands that need it.

    [code example — see docs.explorium.ai]

    Never hard-code the key in a script. Never commit .env. Rotate the key from the Explorium dashboard if it leaks.

    Step 2, Standardize the Input File

    Business enrichment in Claude Code begins with existing account records, not net-new prospecting. The starting export may have partial domains, name-only rows, missing countries, or blank industries. That is the normal state of CRM data. You do not need perfect input; you need enough context to make reliable matches.

    Ask Claude Code to lowercase all domains, strip http(s):// and www., and preserve the original CRM account ID on every row. That single normalization pass raises match rates 5-15% on messy CRM exports.

    Step 3, Sample Before Export

    Before spending credits on a large batch, call /v1/businesses/stats on the input to get a distribution and coverage estimate for the target segment. Claude Code returns the estimate to the operator; the operator approves before the enrichment loop fires.

    [code example — see docs.explorium.ai]

    Step 4, Match to a Canonical business_id

    Call /v1/businesses/match in bulk. Send the list of businesses (name plus website is the recommended combination; website alone is the fallback). The response preserves the input order and returns a canonical business_id per row. Rows that resolve become the input to enrichment; rows that miss go to a review file until a human approves them.

    [code example — see docs.explorium.ai]

    Step 5, Enrich Firmographics and Technographics

    Pass the resolved business_id batch to the bulk enrichment endpoints. Each enrichment type is its own endpoint — firmographics, technographics, funding, workforce trends, etc. — so a full profile chains several calls per batch. Each endpoint accepts up to 50 business IDs per call and sustains 100 QPS across the account. Results do not flow through the Claude Code chat context, so an account file with 10,000 rows finishes in a script loop, well under the rate ceiling and completely bypassing the token budget.

    [code example — see docs.explorium.ai]

    Step 6, Layer Buying-Signal Events

    Optional but recommended for outbound workflows. Call /v1/businesses/events to layer 18 buying-signal categories (hiring, funding rounds, tech installs, website changes) onto the enriched set. Batch up to 20 business IDs and 10 event types per call. Prioritize fresh events (last 30 days) for outbound sequencing.

    [code example — see docs.explorium.ai]

    Step 7, Export Approved Rows Only

    Apply field-level update rules that distinguish between filling blank fields and changing populated ones. For blank fields, high-confidence matches can update automatically. For populated fields, compare the existing value against the enriched value and flag any difference as a conflict requiring human review. Setting update_action to update_blank_fields_only for high-confidence rows, and review_required for any row where the enriched value differs from an existing CRM value, prevents the workflow from overwriting trusted data.

    The workflow produces two output files: approved_enrichments.csv for high-confidence rows and review_required.csv for weak or conflicting matches.

    Example Output Schema

    Enriched output schema for CRM write-back
    FieldSourceUpdate action
    crm_account_idInputAnchor for write-back, never overwritten
    business_idmatch-businessStored on CRM for future re-enrichment
    match_confidencematch-businessRoutes the row to approved or review file
    domainenrich-businessUpdate blank only; conflicts to review
    employee_headcountenrich-businessUpdate blank only; conflicts to review
    industryenrich-businessUpdate blank only; conflicts to review
    tech_stackenrich-businessAppend; do not overwrite
    recent_eventsfetch-businesses-eventsAppend; scored by recency

    How to Decide What Gets Written Back

    Confidence levels control write-back. High-confidence matches with blank target fields update automatically. Medium-confidence rows go to the review file. Weak matches stay out of the CRM entirely. Owner fields, lifecycle stage, and account associations should never be updated automatically regardless of confidence level.

    Common Variations

    Greenfield enrichment (no CRM input)

    Skip Step 2 (standardize) and call fetch-entities to pull a target list from Explorium’s 150M+ company profiles, then jump to Step 5 (enrich).

    CRM refresh on a schedule

    Wrap the workflow in a Trigger.dev task or GitHub Action. Store the resolved business_id on the CRM to skip match-business on subsequent runs and cut credit spend 30-50%.

    Outbound handoff

    Route enriched rows with fresh buying-signal events to an outbound sequence tool via API. Prioritize rows scoring highest on recency and signal strength.

    Why Business Enrichment Works Better as an API Workflow Than a Chat Task

    Claude chat is useful for reviewing a small sample of enriched rows or debugging a match rule. It produces conversational output. Business enrichment at scale requires file handling, transformation logic, confidence rules, export formats, and CRM write-back. Claude Code with the Explorium API (or the Vibe Prospecting Plugin wrapper) handles all of those. For repeatability across thousands of records, and for scheduled jobs that run without a human in the chat, the API path is the right tool for the job.

    Frequently Asked Questions

    What is business enrichment in Claude Code?

    Business enrichment in Claude Code is the process of using a structured API workflow inside Claude Code to resolve partial company records to a canonical business identity, fill missing firmographic and technographic fields with data that meets a confidence threshold, layer buying-signal events, and produce clean output files for CRM write-back. The Explorium AgentSource API (150M+ company profiles, 800M+ people, 50+ data sources) provides the matching and enrichment data layer. From Claude Code you can hit it directly over HTTP or through the Vibe Prospecting Plugin (the MCP wrapper).

    How does the Explorium API match a company from partial input?

    The match-business endpoint resolves partial company inputs to a canonical business_id. The strongest single input is a company domain because domains drift less than names. Company name plus country or industry is a reliable secondary input. Company name alone is the weakest and typically routes to a medium-confidence match. Each match returns a confidence level so the workflow can route rows to the approved or review file appropriately.

    How do I avoid overwriting good CRM data during enrichment?

    Apply field-level update rules that distinguish between filling blank fields and changing populated ones. For blank fields, high-confidence matches can update automatically. For populated fields, compare the existing value against the enriched value and flag differences as conflicts requiring review. Setting update_action to update_blank_fields_only for high-confidence rows, and review_required for any row where the enriched value differs from an existing CRM value, prevents the workflow from overwriting trusted data. Owner fields, lifecycle stage, and account associations should never be updated automatically regardless of confidence level.

    How many businesses can I enrich in a single API call?

    The bulk enrichment endpoint (enrich-business) accepts up to 50 business IDs per call, sustained at 100 QPS across the account. Chain 20 calls to enrich 1,000 companies in under 30 seconds. Results do not flow through the Claude Code chat context, so a 10,000-row account file finishes in 200 calls, well under the rate ceiling and completely bypassing the token budget.

    How long does a business enrichment run take in Claude Code?

    Runtime depends on the number of records, the quality of input identifiers, and the enrichment fields requested. A focused segment of 500 to 1,000 companies with clean domains typically completes in under a minute. Larger exports with weaker identifiers take longer because matching requires more disambiguation. Running enrichment in focused segments rather than exporting the entire CRM at once keeps runs manageable and makes it easier to review and act on results quickly.