Enriching Companies
Outcome: headcount, funding, tech stack and traffic on every company row, with each field’s reliability understood and a refresh cadence set.
- Surface
- Sync GTM app and MCP server
- Level
- Beginner
- Uses
- enrich_organization · find_company_techstack · find_company_website_traffic
- Credits
- ~10 for 25 companies across three columns
- Prerequisite
- Lesson 06's company table
This runs before people, always
Company enrichment costs a fraction of person enrichment and there is one row per company rather than two or three. Running it first, and filtering on the result, is the ordering that keeps the whole pipeline affordable — the rule from lesson 02, applied.
What one call returns
enrich_organization returns most of the firmographic set in a single action: name, domain, description, headcount, industry, location, founded date, funding, LinkedIn URL, social profiles.
Take it in one call rather than as separate columns. Same data, one lookup, one charge.
Reference: enrich_organization, Company enrichments.
Reliability by field
Knowing which numbers are observed and which are modelled changes how you use them.
| Field | Reliability | Notes |
|---|---|---|
| Domain, name, country | High | Rarely wrong |
| Founded date | High | Occasionally the holding company’s date |
| Headcount | Good | Usually LinkedIn-derived — a floor, not a census. Contractors and non-LinkedIn markets undercount. |
| Industry | Medium | Classified by heuristic; expect misclassification |
| Revenue | Low for private companies | Modelled from headcount and sector. Use as a band, never as a number. |
| Funding | High when it happened | Absence means unfunded or unreported — bootstrapped companies look identical to unknown |
| LinkedIn URL | High | The key to nearly every person-level enrichment |
Treat modelled revenue as a size band, not a figure. Filtering on “revenue over $10M” against a modelled estimate silently drops real companies and admits wrong ones. Filter on headcount, which is observed, and use revenue only to break ties.
Tech stack
find_company_techstack detects tools from what the site exposes — scripts, DNS records, headers, embedded widgets.
It sees the front end best
Analytics, chat widgets, marketing automation, CDNs, payment providers, CMS. All highly reliable, because they load in the browser.
It sees the back end poorly
Databases, internal tooling, data warehouses, CRM. A company using Salesforce internally may expose nothing about it.
Absence is not evidence
“No HubSpot detected” means not detected on the public site. It does not mean they do not use it.
So: a positive stack detection is a strong signal and a good qualifier. A negative is weak, and should not on its own remove a company from your list.
Traffic and growth
find_company_website_traffic gives monthly visits, trend and channel mix. Two honest uses:
- Size proxy where headcount is unreliable — e-commerce, media, consumer businesses.
- Trajectory. The trend matters more than the number. Traffic up 40% over six months is a signal; 200k monthly visits is just a fact.
Deeper analysis lives in SEMrush and Similarweb if you have those connections.
Cost control
The whole point of this stage is that it is cheap enough to run on everything. Keep it that way.
- One enrichment call, not eight columns. Take the bundle.
- Order cheapest first. Base enrichment, filter, then stack, filter, then traffic. Each filter shrinks the input to the next.
- Set cadences. Headcount monthly, funding and stack quarterly, name and country never. See GTM Engineering lesson 07.
- Do not enrich what you will not use. Every column on a 2,000-row table is a 2,000-row charge.
Do this now
Run enrich_organization on five rows
Read every field returned. Note which are populated and which are blank.
Check headcount against reality
Pick two companies you know. Is the number plausible? Understanding its bias now stops a bad filter later.
Widen to the whole company table
This is the one stage that runs on everything.
Filter
Apply your size, country and founded-date criteria. Note how many rows survive.
Add tech stack on survivors only
Read five results. Confirm the detections are tools you would expect.
Filter again if the stack is a criterion
Positive detections only — never filter out on a negative.
Add traffic if it is relevant
Only for segments where it means something.
Set refresh cadences
Per column, written into the column description.
Check your work
- Firmographics came from one bundled call, not several columns
- You know which fields are observed and which are modelled
- Tech stack filtering uses positive detections only
- Filters run between enrichment steps, not all at the end
- Every column has a refresh cadence
Where this breaks
Filtering out companies because a tool was not detected is the mistake that quietly removes good accounts. Detection covers the public front end; plenty of your best prospects run the relevant tooling entirely out of sight. Use stack detection to promote accounts you found, never to delete accounts you would otherwise have kept.
Further automation
Company enrichment is the natural scheduled job: a monthly re-run over the table catches headcount crossing your threshold, a new funding round, or a stack change — and each of those is a reason to move an account into the active list. That is the loop Signals & ABM builds out.
Next lesson
13 — Waterfalls and credits, why a column sometimes costs nothing and how to keep it that way.
Reference for this lesson: enrich_organization, Company techstack, Company website traffic, Credits.