Blog/data
1 min read

Wire Domain-to-Firmographics Into Your Signup Flow

A hands-on tutorial: turn a new signup email into scored, routed firmographics with one pay-per-call company enrichment lookup on Monid.

Wire Domain-to-Firmographics Into Your Signup Flow

Copy this line to your agent to enrich a company from a signup domain.

set up https://monid.ai/SKILL.md and use People Data Labs to enrich a company from a signup email domain

When a new user signs up with a work email, you can turn that address into a scored, routed account before the welcome email even sends. Extract the domain, enrich it into firmographics with one pay-per-call lookup, and branch on the fields that come back. No enrichment subscription, no per-vendor onboarding. This walkthrough wires the whole thing, end to end, against real endpoints you can run today.

TL;DR

  • A signup email carries a company inside it. Split off the domain, enrich the domain, and you know the account's size and industry before a human looks at it.
  • Call People Data Labs /v5/company/enrich for the standard firmographic record: one call in, one company record out, with a confidence score attached.
  • Gate matches with min_likelihood so a wrong-company hit never poisons your CRM, then branch on employee_count and industry to route the account.
  • Escalate to Akta /v1/company/enrichment only for the accounts that deserve depth (website traffic, tech stack, financial estimates), scoped by a sections filter.
  • One Monid key, one wallet, both providers. Pricing per call is cents-scale; the live number is on monid.ai/tools.

What you are building

A hook that fires on signup: email in -> firmographics out -> route decided. You will build it against Monid, a pay-per-call data API marketplace where one key reaches hundreds of external endpoints. Searching the catalog and reading a schema are free, so you can price this entire flow before you spend a cent; only a run bills the wallet.

For agents

Grab an API key at app.monid.ai, then paste this to your agent and hand it the key:

set up https://monid.ai/SKILL.md

It learns the whole discover, inspect, run workflow itself. More details in the agent quickstart.

For humans

npm install -g @monid-ai/cli
monid keys add --label main --key <your-api-key>

More details in the CLI quickstart.

Step 1. Split the domain off the email

The company is the part after the @. Peel it off, and drop free-mail signups before you spend anything, since gmail.com is not a company.

email="dana@northwind-logistics.com"
domain="${email#*@}"          # -> northwind-logistics.com

case "$domain" in
  gmail.com|outlook.com|yahoo.com|icloud.com|proton.me)
    echo "personal signup, skip enrichment"; exit 0 ;;
esac

That guard matters for cost as much as accuracy: every consumer-email signup you skip is a call you never pay for.

Step 2. Confirm the endpoint's real inputs

Before wiring a call, read the schema. inspect is free and returns the exact input shape, so you never burn a paid run on a field the endpoint does not accept.

monid inspect -p pdl -e /v5/company/enrich
# accepts:  website | name | profile (LinkedIn) | ticker | pdl_id
#           plus location, region, country, postal_code to disambiguate
# knob:     min_likelihood  (integer 1-10, default 2)
# returns:  firmographics, funding, employee counts, tech stack,
#           social profiles, and a match likelihood score

The one input worth understanding is min_likelihood. It floors the match confidence on a 1 to 10 scale and defaults to 2, which is loose. For anything that writes to a CRM, raise it, because a confident wrong match is worse than an honest miss.

Step 3. Enrich the domain

Now the only step that costs money. Feed the domain from Step 1 into the website field and gate the match at 4 or higher. The -w flag waits for the result inline.

monid run -p pdl -e /v5/company/enrich \
  -i '{"website": "northwind-logistics.com", "min_likelihood": 4}' -w
# -> Run ID: 01HXYZ...   (price shown before it executes)

What comes back is the record you would otherwise pay a subscription for: employee_count, industry, founding year, headquarters location, funding, social profiles, and a likelihood telling you how sure the match is. The full field list is in the PDL company enrichment docs. Save it to a file so the next step can read it:

monid runs get -r 01HXYZ... -o company.json

Step 4. Score and route from the fields

This is the payoff. Read three fields out of the record and turn them into a routing decision. The boring fields do the work: likelihood gates trust, employee_count picks the sales motion, industry picks the template.

score=$(jq -r '.data.likelihood      // 0' company.json)
size=$(jq  -r '.data.employee_count   // 0' company.json)
ind=$(jq   -r '.data.industry         // "unknown"' company.json)

if [ "$score" -lt 6 ]; then
  route="manual-review"          # low-confidence match, do not auto-route
elif [ "$size" -ge 200 ]; then
  route="enterprise-sdr"         # book a human, fast
elif [ "$size" -ge 20 ]; then
  route="mid-market-nurture"
else
  route="self-serve"            # let the product do the selling
fi

echo "$domain  $ind  size=$size  ->  $route"

Every new signup now arrives pre-tagged. Your SDRs stop opening twenty browser tabs per lead, and the self-serve accounts route themselves out of the human queue entirely.

Step 5. Escalate the accounts that earn it

Most signups are settled by Step 4. For the ones flagged enterprise-sdr, pull depth before the SDR calls. Akta /v1/company/enrichment returns 75+ fields across sections like firmographic, digital_presence (website traffic), technology, financial_estimate, and management_profile. Scope the response with a sections filter so you fetch only what the SDR will read.

monid run -p akta -e /v1/company/enrichment \
  --query '{"company": "https://northwind-logistics.com", "sections": ["firmographic","digital_presence","technology"]}' -w

Two things the schema tells you before you run. First, company takes a website URL or an Akta uuid, never a bare name; if all you have is a name, resolve it through /v1/company/search first. Second, funding_detail and mna_and_investment are Enterprise-tier sections, so do not build a pipeline around them without checking access. Details are in the Akta docs.

What this costs to run

You see the exact price before every run, and it is always on monid.ai/tools. In magnitude terms:

Split the domain          shell, free
Inspect the schema        free
PDL /v5/company/enrich    around a dime PER_CALL   (every routed signup)
Akta deep read            a bit over a dime PER_RESULT   (enterprise shortlist only)
------------------------------------------------------------------
Typical signup: one PDL call, single-digit cents
Escalated account: PDL + one Akta call, still well under a dollar

The lever is that Akta only fires on the shortlist. Ten thousand signups a month, mostly self-serve, cost close to the PDL rate times the non-free-mail slice, because you never paid for depth you would not read. And in a quiet month, you pay for exactly the calls you made and nothing else.

Hand it to an agent

The same flow runs without you. Because Monid ships as an MCP server, an agent can watch the signup queue, split each domain, run the PDL call, apply your scoring rule, and escalate to Akta sections only on the enterprise shortlist, writing the route straight to your CRM. Free discovery and visible per-call prices are what make that delegation safe: the agent can price a step before it spends.

FAQ

Do I need People Data Labs and Akta accounts? No. Integrate Monid once and fund one pay-as-you-go wallet. Both providers are reached through the same key, billed at the price shown before each run.

Why extract the domain instead of enriching the email directly? Company enrichment matches on a company identifier, and the domain is the cleanest one a signup gives you. If you also want the person behind the email, PDL /v5/person/enrich takes the email directly and returns their employer, which you can then enrich the same way.

How do I stop a wrong-company match reaching my CRM? Raise min_likelihood on the PDL call and gate on the returned likelihood in code, as Step 4 does. Anything below your threshold routes to manual review instead of an automated motion.

When is the Akta call worth it? When a human is about to spend time on the account. Website traffic, tech stack, and financial estimates help an SDR prepare; they are wasted on a self-serve signup that never talks to sales. Fire it on the shortlist, not the funnel.

Ship it

Pick the one enrichment call you keep re-integrating, inspect it for free, and price the whole signup flow before you touch your wallet. Then wire Step 1 through Step 4 into your signup handler and let the routing run itself. Start at monid.ai.

dataagentsenrichment