---
title: "Lead enrichment"
description: "Lead enrichment from the live web: turn a company domain into an account record with pricing, hiring and review data from company sites, G2 and Crunchbase."
canonical: https://www.zenrows.com/use-cases/lead-enrichment
updated: 2026-10-18
---

# Lead enrichment

Lead enrichment adds missing facts to a lead or account record: what the company sells, its pricing model, whether it is hiring and what customers say about it. From a domain, Zenrows fetches the company's own pages and public profiles, returns clean Markdown or JSON, and plugs into Clay, n8n or your own pipeline.

## Sample output: one enriched account

```json
{
  "domain": "example-logistics.com",
  "enriched_at": "2026-10-17T09:14:00Z",
  "company_name": "Example Logistics",
  "one_line_summary": "Route planning software for regional delivery fleets",
  "sells_to": "B2B",
  "pricing_model": "per vehicle, monthly",
  "has_free_trial": true,
  "lowest_public_plan": { "name": "Starter", "price": 29, "currency": "USD", "unit": "vehicle/month" },
  "open_roles": 14,
  "hiring_for": ["Account Executive", "Customer Success Manager", "Backend Engineer"],
  "new_markets_mentioned": ["Germany", "Netherlands"],
  "review_profile": { "source": "g2.com", "rating": 4.5, "review_count": 212 },
  "has_contact_form": true,
  "general_inbox": "sales@example-logistics.com",
  "sources": [
    "https://example-logistics.com/",
    "https://example-logistics.com/plans",
    "https://example-logistics.com/careers"
  ]
}
```

Illustrative, from four public pages. Each field keeps its source URL, so a rep can check it.

## What teams enrich a lead with

Enrichment starts from a record you have, usually a domain from a form fill, CRM export or Clay table. Each job fills different columns from a different page of that company's web.

| Job | Data you collect | Typical sources |
|---|---|---|
| Account qualification | What it sells, to whom, B2B or B2C, categories | Homepage, about and product pages |
| Pricing and plan fit | Pricing model, entry plan, free trial, enterprise tier | Plans and pricing pages |
| Hiring signals | Open roles, growing teams, new offices | Careers pages, Greenhouse, Lever, Workable, Indeed |
| Reputation and fit | Rating, review count, categories, complaints | G2, Capterra, Trustpilot, Clutch |
| Funding and company profile | Funding stage, investors, headcount band | Crunchbase, press pages, newsroom |
| Outreach context | Recent launches, customer logos, case study topics | Blog, changelog, customer stories |
| Inbound routing | Contact form present, general inbox, office country | Contact and imprint pages |

## Why lead enrichment breaks at scale

Enrichment touches thousands of differently built sites, some behind bot protection. A pipeline that works on the first 50 domains in a Clay table usually stalls on the next 5,000.

| What breaks | What it looks like | How Zenrows handles it |
|---|---|---|
| Protected company sites | Cloudflare challenges or 403s instead of the pricing page | Zenrows' stealth gets through Cloudflare to the real page |
| Every site has a different layout | One pricing page's selectors return nothing on the next | Extract or Markdown gives an LLM or parser clean data |
| JavaScript-built pages | A careers widget shows zero roles in raw HTML | Adaptive Stealth Mode renders and returns the page once the widget loads |
| Stale records | Headcount, pricing and roles change each quarter | Batch re-runs the domain list on a schedule |
| Limits in no-code tools | A built-in scraping step fails on protected sites or stalls on long lists | Call Zenrows with your key from an HTTP step; send long lists to Batch |

## How to enrich leads with Zenrows

1. **Start from the domain** in your CRM, Clay table or n8n trigger: build homepage, pricing, careers and about URLs.
2. **Fetch each page as Markdown**: text without scripts or layout, four pages in a few thousand tokens.
3. **Turn the text into columns** (pricing model, open roles, sells to) with an LLM or rules, or get JSON from automatic structured extraction.
4. **Write back and refresh**: push fields with source URLs to the CRM; rerun the list in Batch monthly or quarterly.

```python Python
# pip install requests
import requests

DOMAIN = "example-logistics.com"  # from your CRM or Clay table
PATHS = ["/", "/plans", "/careers", "/about"]  # use the site's own paths

pages = {}
for path in PATHS:
    response = requests.get("https://api.zenrows.com/v1/", params={
        "apikey": "YOUR_ZENROWS_API_KEY",
        "url": f"https://{DOMAIN}{path}",
        "mode": "auto",  # Adaptive Stealth Mode
        "response_type": "markdown",
    })
    if response.ok:
        pages[path] = response.text

# Send `pages` to your LLM with a fixed schema, then write the fields back to the CRM.
print({path: len(text) for path, text in pages.items()})
```

```javascript Node.js
// Node.js 18+ as an ES module (in an n8n Code node, return [{ json: pricing }] instead of logging)
const params = new URLSearchParams({
  apikey: "YOUR_ZENROWS_API_KEY",
  url: "https://example-logistics.com/plans",
  mode: "auto", // Adaptive Stealth Mode
  extract: "auto",
});

const response = await fetch(`https://api.zenrows.com/v1/?${params}`);
const pricing = await response.json();
console.log(pricing);
```

```bash CLI
npx -y @zenrows/cli init
# A company's homepage as Markdown for your LLM step
zenrows fetch https://example-logistics.com --output markdown
# Structured fields from its plans page
zenrows extract https://example-logistics.com/plans --autoparse
# Re-enrich the full list: domains.jsonl holds one {"url": "..."} per page
zenrows batch create domains.jsonl --output markdown --wait
```

```text Claude Code (MCP)
# Connect once
claude mcp add zenrows -e ZENROWS_API_KEY=YOUR_ZENROWS_API_KEY -- npx -y @zenrows/mcp

# Then ask:
Use Zenrows to read the homepage, plans page and careers page of example-logistics.com, plus its G2 profile. Tell me what they sell, who they sell to, their cheapest public plan, how many roles they are hiring for and their G2 rating, with the URL for each answer.
```

## Which Zenrows product fits

| If you need to | Use | Why |
|---|---|---|
| Enrich one row from Clay, n8n or a webhook | [Fetch](/products/fetch) | One HTTP call per page, in any workflow step |
| Get JSON fields without a per-site parser | [Extract](/products/extract) | Automatic structured extraction works on unseen pages |
| Re-enrich a 50,000-domain CRM export | [Batch](/products/batch) | One job, results by webhook |
| Let reps or RevOps enrich accounts by asking | [MCP Server](/mcp) | Claude and other MCP clients call Zenrows, no code |

## What success looks like

| Measure | What good looks like | How to check it |
|---|---|---|
| Fill rate | Scoring fields filled on most accounts | Empty values per column, per run |
| Source traceability | Every field links to its source page | Spot-check 20 records per run |
| Freshness | No field older than your refresh cycle | Alert on `enriched_at` past the cycle |
| Run completion | A full re-enrichment done within one working day | Batch job times and share of domains returned |
| Pipeline impact | Reps stop researching accounts by hand | Research time per account, before and after |

## Lead enrichment FAQ

### What is lead enrichment?

Adding data to a lead or account record you have, so sales can score, route and personalize. Company-level enrichment fills industry, product, pricing, hiring and reviews; contact-level adds details about a person. Zenrows covers the company side from the public web: the company's site and public profiles.

### How is lead enrichment different from lead generation?

Generation finds companies you do not know yet, like every agency in a directory; enrichment fills gaps in a record you have. Pipelines usually run both: build the list, then enrich each new row. See web scraping for lead generation for the first half.

### Can I use Zenrows inside Clay or n8n?

Yes. Both call HTTP APIs: add Zenrows as a step that takes a URL and returns Markdown or JSON. In n8n, an HTTP Request or Code node; in Clay, an HTTP API column with your Zenrows key.

### What is the difference between a data enrichment API and scraping company websites?

An enrichment API returns fields from a vendor's database, on the vendor's schedule. Scraping reads the live page: what the company says today, with fields you choose, even ones no database tracks, like "mentions SOC 2 on the pricing page" or "hiring a first sales rep".

### What fields can a company enrichment API fill from the web?

Anything a company publishes: what it sells and to whom, pricing and entry plan, free trial, open roles, office countries, launches and customer stories. Profiles add G2 or Capterra ratings and Crunchbase funding stage. Pick your scoring fields and keep each value's source URL.

### Can I enrich contacts and emails, not just companies?

Zenrows returns what a public page shows, so a general inbox or press contact on a contact page is reachable. Personal data falls under GDPR and CCPA, which require a lawful basis and limit processing and storage. A common split: company data from the web, personal contacts through a provider and process your legal team approved.

### How often should enriched data be refreshed?

Per field: hiring and pricing change monthly, what a company sells rarely. A common pattern is a monthly Batch refresh of fast fields and a quarterly full re-enrichment, with enriched_at on every record.

## Related use cases

- [Web scraping for lead generation](https://www.zenrows.com/use-cases/web-scraping-for-lead-generation.md): Prospect lists built from directories, maps, exhibitor lists and member rosters, filtered to your ideal customer.
- [Firmographic data](https://www.zenrows.com/use-cases/firmographic-data.md): Industry, headcount, HQ, locations and funding per company, built from registries, company sites and directories.
- [Technographic data](https://www.zenrows.com/use-cases/technographic-data.md): Which CRM, ecommerce, analytics and chat tools each company runs, detected from its pages and job posts.
- [Competitive intelligence](https://www.zenrows.com/use-cases/competitive-intelligence.md): Pricing, hiring, reviews, launches and partners across your market, structured for battlecards and strategy.

Start free: https://app.zenrows.com/register. Docs: https://docs.zenrows.com
