# Company Enrichment Without the Per-Credit Tax: Website to Firmographics JSON With an LLM

> Source: <https://dev.to/benedictmendoza/company-enrichment-without-the-per-credit-tax-website-to-firmographics-json-with-an-llm-4b0j>
> Published: 2026-08-19 22:08:44+00:00

Most of what B2B enrichment vendors sell is information companies publish about themselves, for free, on their own websites. What you're paying per-credit prices for is mostly the reading.

I noticed this while burning through enrichment credits on accounts that turned out to be obvious non-fits — agencies when I needed SaaS, enterprise when I needed SMB. The data that would have disqualified them in seconds (what they sell, who they sell to, how they price) was sitting on their homepages the whole time. No vendor needed. Just reading.

So I did the obvious thing: pointed an LLM at company websites and made it fill out a fixed schema. This post covers what that looks like, what it costs (spoiler: about a cent per company), and the failure modes I hit building it into a production tool.

More than you'd guess. From the homepage plus three or four key pages (/about, /pricing, /careers, /contact), reliably:

Here's a real extraction — I ran it against apify.com as a test:

```
{
  "domain": "apify.com",
  "companyName": "Apify",
  "industry": "Technology",
  "businessModel": "B2B SaaS",
  "pricingModel": "subscription",
  "icpSummary": "Individuals, startups, and large enterprises looking for web data solutions and automation tools.",
  "employeeCountEstimate": "51-200",
  "hqLocation": "Prague, Czech Republic",
  "isHiring": true,
  "contactEmails": ["hello@apify.com"],
  "techStackHints": ["Python", "JavaScript", "TypeScript"],
  "confidence": 0.9
}
```

Every field came from their own pages. Nothing purchased, nothing stale.

With a small model (gpt-4o-mini class) the LLM step costs a fraction of a cent; with fetches included you land around **a cent per company**. Compare that to the $0.75–1.50 per row that credit-based AI enrichment effectively costs on paid plans.

I packaged mine as an Apify Actor: [AI Company Enrichment](https://apify.com/benedictmendoza/ai-company-enrichment). Disclosure: I built it, pay-per-company, and everything above is how it works internally — so if you want to own the pipeline, this post is the spec.

Called via API:

```
curl -X POST "https://api.apify.com/v2/acts/benedictmendoza~ai-company-enrichment/runs?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"companies": ["stripe.com", "notion.so", "yourprospect.com"]}'
```

It slots into the usual places: a Clay table's HTTP enrichment column (do the cheap firmographic pass first, spend real credits only on accounts that pass ICP fit), an n8n/Make workflow between "new lead" and "score lead," or just a CSV in, CSV out.

Split your enrichment bill in two: data that genuinely requires a vendor (verified emails, direct dials, funding data) and data that's self-published on the prospect's website. Pay vendors for the first category. Read the second one yourself — with an LLM, "yourself" now costs a cent and takes eight seconds.

If you try the Actor and want extra fields extracted, the [Issues tab](https://apify.com/benedictmendoza/ai-company-enrichment) reaches me directly — field requests are cheap to ship.
