B2B Lead Enricher
Pricing
from $8.50 / 1,000 delivered public stack evidence cards
B2B Lead Enricher
Turn up to 100 authorized public company websites into evidence-linked research cards: visible technology markers, low-confidence commercial heuristics, gaps, confidence, billing, and a manual qualification action. Public HTML only. Not verified revenue, intent, consent, or a sales-qualified lead.
Pricing
from $8.50 / 1,000 delivered public stack evidence cards
Rating
0.0
(0)
Developer
Tim Zinin
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
6 days ago
Last modified
Categories
Share
B2B Lead Enricher — Public Stack Evidence & Manual Qualification
Point this Actor at authorized public company websites and get evidence-linked research cards: visible technology markers, a low-confidence commercial heuristic, transparent gap prompts, confidence, data gaps and a manual qualification action. It does not produce verified revenue, buying intent, consent or sales-qualified leads.

What you get
- Prioritization score (0–100) split into
budgetSignalandsellability. Both are deterministic homepage heuristics, not proof that a company has budget or wants to buy. - Revenue band estimate (
<$100K,$100K–$1M,$1M–$10M,$10M+) with an honestconfidence: "low"label — a heuristic from the homepage stack, not financial data. - Ecommerce & CMS detected — Shopify, WooCommerce, Magento, BigCommerce, Salesforce Commerce, PrestaShop, WordPress, Drupal, Joomla, Wix, Squarespace, Webflow, Ghost, Tilda, Framer…
- Martech maturity (
none/basic/advanced) from the number of analytics, marketing-automation and chat tools detected. - Sales opportunities — plain-English gaps such as "Ecommerce without email marketing → sell Klaviyo/lifecycle email" or "No web analytics detected → sell measurement/analytics setup".
- Full technology list grouped by category — Analytics, Marketing/CRM, Chat/Support, Payments, Hosting/CDN, Framework, Tag Manager, Fonts.
- Runs on Apify: schedule it, monitor it, call it from the API, export to JSON/CSV/Excel or push straight into your own pipeline.
Who is this for
- Sales & SDR researchers — turn a domain list into a transparent manual-research queue before deciding whether an account fits
- Agencies — prioritize public-stack research while keeping fit, identity and lawful outreach review separate
- Growth & demand-gen — score inbound leads or a purchased list without a paid enrichment seat
- Fractional CMOs / consultants — build a quick opportunity map for a target account list
How scoring works
leadScore = budgetSignal (0–50) + sellability (0–50). Budget signal rewards ecommerce,
paid social, marketing automation and a broad real-business stack — CMS, ecommerce,
analytics, marketing, chat and payments count; fonts and hosting don't. Sellability
rewards the number of concrete opportunities found. A company with a saturated stack and
nothing left to sell caps near 50 — a real signal for a buyer sorting by score, not an
inflated "top lead."

How to run it
- Click Try for free — no card needed on the free plan.
- Paste your company websites into Company websites, one per line.
- Press Start. Results land in the dataset — read them in the UI, pull them from the API, or have a webhook push them onward.
Pricing
Pay-per-event pricing charges one run-start event plus one result-found event for each
successfully delivered evidence row. The current Store Pricing tab shows the exact volume tier
that applies to the account; failed, blocked and invalid targets remain free advisory rows.
A company that could not be enriched is still returned, with found: false and the
reason — and it is not charged for. You pay for answers, not for attempts.
Input
| Field | Required | What it does |
|---|---|---|
websites | yes | Company websites to enrich. Up to 100 per run. |
maxConcurrency | no | How many companies to enrich in parallel, 1–50 (default 10). |
{"websites": ["gymshark.com", "stripe.com", "notion.so"],"maxConcurrency": 10}
Output
One evidence row is emitted per unique processed website. Site technology markers change and the commercial fields are explicitly low-confidence heuristics, so this README does not freeze a named company's observed stack as an evergreen claim. The exact-build canary receipt supplies the release's bounded live example and KVS OUTPUT reconciliation.
| Field | What it means |
|---|---|
leadScore | 0–100, budgetSignal + sellability |
revenueEstimate.confidence | Always "low" — a heuristic, not financial data |
martechMaturity | none / basic / advanced, from the number of analytics + marketing tools found |
opportunities | Plain-English sales angles, empty when the stack is already saturated |
technologies | Full list; technologiesCount is its length |
found | false means the enrichment failed; the row says why and is not billed |
Related tools
Related tools for adjacent workflows in B2B lead generation and data enrichment.
| Actor | What it does |
|---|---|
| Website Tech Stack Detector | Pair it in the B2B lead generation and data enrichment workflow: Detect the technologies a website runs — CMS, ecommerce platform, analytics, marketing/CRM, JS framework,... |
| Company Hiring Radar | Pair it in the B2B lead generation and data enrichment workflow: Pull every open role a company is hiring for from its public job board (Greenhouse, Lever, Ashby) and turn... |
| Company Profile Lookup | Pair it in the B2B lead generation and data enrichment workflow: Turn a domain or company name into one unified company card: website tech stack (CMS, ecommerce, key tech)... |
| Intent Signal Aggregator | Pair it in the B2B lead generation and data enrichment workflow: Is this company in-market right now? Combines public hiring activity (Greenhouse, Lever, Ashby) and recent... |
| Tech Stack Change Detector | Pair it in the B2B lead generation and data enrichment workflow: Detect a website's current technologies (CMS, ecommerce, analytics, marketing/CRM, framework, hosting/CDN,... |
FAQ
Does it render JavaScript? No — it reads served HTML and headers, the same detection engine as our Tech Stack Detector Actor. Fast and cheap, but tech injected only after heavy client-side rendering may not appear.
Is the revenue band accurate? It's a heuristic from public stack signals only, always
returned with confidence: "low". Treat it as a rough sort order, not a valuation.
Can I use it on any website? Use it only for authorized public targets and respect applicable terms, crawl rules, privacy law and outreach rules. The Actor reads bounded public HTML and headers; that technical boundary is not a legal opinion or permission to contact anyone.
Can I call it from an AI agent? Yes — standard Apify Actor, callable from the Apify API, the SDK, or the Apify MCP server.
What this is NOT. It does not find contact emails, verify a company's actual revenue, or replace a real enrichment/firmographics provider. It reads what a homepage's HTML and headers reveal about a company's stack and turns that into a sortable, pitchable signal — nothing more.
Found a wrong result, or need a signal we don't track? Open an issue on this Actor's page.
Built by zinin. Questions? Telegram @timzinin.
What this Actor is — and is not
B2B Lead Enricher is a public-website evidence collector and manual-research router. It reads a bounded first-party page and response headers, detects visible technology markers, calculates documented heuristics, exposes gaps and confidence, and suggests a next research action. The useful product is a consistent evidence card that a marketer, agency or founder can review—not a claim that the account is ready to buy.
It is not a firmographic database, revenue verifier, employee-count source, contact finder, email
verifier, consent service, intent provider, CRM truth source or sales-qualified-lead generator. A
homepage can omit deployed systems, load them after JavaScript, vary by region, or present a stack
that says nothing about budget or demand. Every row therefore has safeToAutomate:false.
Where the evidence comes from
The Actor accepts up to 100 authorized public website URLs or domains. It normalizes URLs,
deduplicates equivalent inputs, resolves DNS, blocks private/loopback/metadata destinations, pins
verified addresses across each connection, rechecks every redirect and honors the applicable
User-agent: * robots path rule. It fetches bounded HTML and headers without a browser, proxy,
login or form submission.
Technology detections come from explicit public markers such as first-party asset paths, generator metadata, script origins and response headers. The detector uses host-aware patterns where needed to reduce false positives from pages that merely mention a technology. A missing marker means “not observed in this bounded response,” never “the company does not use it.”
The revenueEstimate, budgetSignal, sellability, leadScore and opportunities fields are
legacy-compatible heuristics. They remain available for sorting, but their interpretation is now
explicitly bounded. revenueEstimate.confidence stays low; no financial statement, registry or
verified firmographic source is consulted. Opportunity strings are research prompts, not claims
that a problem exists or that the account wants help.
Evidence, confidence, and decision fields
Each row keeps the original technical and heuristic fields and adds:
recordType: result or free advisory;schemaVersionandentityId: stable decision-contract metadata;observedAt: normalized observation time;confidenceScoreandconfidenceBand: evidence-path strength;confidenceReasonsandconfidenceRisks: why the score is bounded;sourceEvidence: retained public source URL and timestamp;dataGaps: facts the row cannot establish;negativeSignals: machine-readable review reasons;recommendedAction,actionPriorityandactionReason: the next bounded step;interpretationBoundary: a durable non-overclaim statement;failureType,retryable,partialandfailureDiagnostics: failure truth;billing: whether a delivered evidence row was billable;safeToAutomate: alwaysfalse.
Confidence is about the completeness and directness of the public observation. It is not confidence that the company has revenue, budget, intent, fit, authority, urgency or permission to receive a message. A technically complete row can still be commercially irrelevant.
Manual qualification workflow
- Verify that the final URL and brand belong to the intended account.
- Review visible technologies and open the source page when a detection matters.
- Treat missing tools as unknown until another first-party path confirms absence.
- Read the heuristic score components separately; do not use the total as a truth label.
- Resolve
dataGapswith first-party, registry or buyer-authorized enrichment sources. - Determine fit using your actual ICP, territory, offer and exclusion rules.
- Establish a lawful outreach basis and verify the contact channel separately.
- Record the human decision and evidence before moving an account into a campaign.
The normal successful action is MANUALLY_QUALIFY_WITH_FIRST_PARTY_CONTEXT. A partial response
routes to RECHECK_BEFORE_QUALIFICATION. A failed or policy-blocked page routes to
REVIEW_SITE_FAILURE. None of these actions means “send outreach now.”
Vertical playbooks
Ecommerce agency
Use visible platform, analytics, lifecycle-email and support markers to prioritize which sites deserve manual review. Open product, checkout, privacy and contact pages yourself where authorized. Confirm that the observed gap is real and relevant before creating an offer. A missing Klaviyo marker on the homepage is not proof that lifecycle email is absent.
Local-service marketer
Use the evidence card to identify a simple CMS, analytics markers and public conversion tooling. Then verify the business location, service area, current website ownership and contact policy from first-party sources. Do not infer company size or marketing budget from hosting or fonts.
B2B software agency
Use framework, analytics, CRM and support markers to prepare account research. Combine them with buyer-authorized hiring, funding or registry data only when source identity is verified. Keep public technology evidence separate from people data and consent.
Founder-led sales
Run a small named-account list, sort by a transparent heuristic, then review every account manually. The Actor saves repetitive page inspection; it does not replace the founder's judgment about fit, timing, relationship and message.
Data-enrichment pipeline
Use the Dataset row as one evidence layer. Join on a normalized domain, preserve observedAt, keep
the source URL, and prevent heuristic fields from overwriting verified CRM fields. Store the
interpretation boundary with the record so downstream users understand the source.
Happy, partial, failed, and blocked states
Happy evidence row: found:true, HTTP 200, a complete bounded response, visible technology markers,
confidence reasons and MANUALLY_QUALIFY_WITH_FIRST_PARTY_CONTEXT. It is billed as one delivered
website evidence row. It is not a qualified lead.
No-marker row: found:true with an empty technology list can still be a valid response. It means no
supported marker was observed. Confidence is lower and the data gaps explain that JavaScript or
other pages may contain the stack.
Partial row: found:true, partial:true, a byte-cap note and reduced confidence. Keep visible facts
as observations, but recheck before comparing the account or inferring absence.
Free failure advisory: found:false, recordType:"advisory", billing.billable:false, a specific
failureType and retryable flag. A policy-blocked or invalid target should be corrected, not
retried. A transient source or DNS failure can be retried with backoff.
Unknown linked-delivery state: OUTPUT becomes FAILED and replaySafe:false. Reconcile the prior
Dataset and charged events before rerunning so a buyer is not charged twice for an ambiguous row.
OUTPUT: run completeness and billing truth
Dataset rows describe each processed website. KVS OUTPUT reconciles the whole run. It includes
requested, unique, duplicate, attempted, delivered, paid, local-non-monetized, free,
source-failure and withheld counts. It also includes status, partial, budgetStopped,
fatalError, replaySafe, completedAt, resultsUrl and safeToAutomate:false.
COMPLETE means every unique target reached a terminal delivered state without recorded source or
budget gaps. PARTIAL means one or more targets failed, were blocked or were withheld. FAILED
means the delivery/money outcome is unsafe or unknown. Consumers should not infer completeness from
the Apify run status alone; read OUTPUT.
The Actor serializes remaining-budget checks and linked pushData(row, "result-found") operations
across workers. A paid counter increments only after the linked call reports a charged result. Free
advisories do not become paid merely because they are stored in the Dataset.
Field interpretation guide
cms, ecommerce and hosting are the first detected markers in those categories. technologies
is the full supported marker list observed in the bounded response. technologiesCount is its
length, not a measure of sophistication.
martechMaturity counts selected visible analytics and marketing markers. It does not measure team
capability, data quality, adoption or ROI. revenueEstimate.band is a low-confidence heuristic and
must never overwrite verified financial data.
budgetSignal rewards selected public stack markers. It is not verified budget. sellability
counts generated research prompts. It is not willingness to buy. leadScore is their sum for
sorting only. opportunities are hypotheses to investigate, not diagnosed needs.
partial tells you the response was truncated or otherwise incomplete. sourceEvidence and
observedAt make the row auditable. dataGaps and interpretationBoundary are required context,
not optional footnotes.
API integration pattern
Start a run with websites and bounded maxConcurrency. After completion, fetch Dataset items and
the OUTPUT KVS record. Reject completeness when OUTPUT is partial or failed. Persist the original
domain, final URL, observation time, evidence link, decision fields and run identity.
For a CRM, map technical observations into clearly labeled evidence fields. Do not overwrite
verified company revenue, stage, owner or consent fields. Route recommendedAction into a research
queue and require a person to approve any campaign entry.
For a webhook, send the row plus run status. Avoid triggering outreach directly. For a warehouse, version rows by domain and observation time so a later stack change does not erase the prior state.
For MCP or an agent, the safe machine action is to summarize evidence and open a review task. The agent must not invent a missing technology, claim verified revenue, or contact a person based on this output alone.
Source rights, privacy, and lawful use
Use this Actor only for authorized public targets. The runtime respects bounded crawl controls and does not bypass authentication, paywalls or access restrictions. Public availability does not grant permission to ignore site terms, robots rules, intellectual-property obligations, privacy law or marketing communications rules.
The Actor does not intentionally collect personal contact data, but public pages may contain names or other person-level content in HTML that is not emitted by the supported fields. Do not expand the product into people enrichment without a separate privacy, source-rights and minimization review.
Keep retention proportional to the research purpose. Protect named-account lists and internal qualification notes. Preserve source attribution when sharing evidence and avoid presenting the heuristics as facts supplied by the target company.
Operations and quality checklist
- Use small batches while validating a new vertical or source mix.
- Verify final-domain ownership before joining rows to CRM accounts.
- Treat missing markers as unknown.
- Review partial and low-confidence rows first.
- Read Dataset and OUTPUT together.
- Preserve source URL and observation timestamp.
- Keep verified fields separate from heuristics.
- Reconcile
replaySafe:falsebefore retrying. - Require human qualification and a lawful outreach basis.
Additional FAQ
Does a high lead score mean high purchase probability? No. The score is deterministic sorting over visible stack markers and generated gap prompts. It is not calibrated against purchases.
Does “no analytics detected” prove there is no analytics? No. The tool may load after JavaScript, appear on another path, run server-side or be hidden by consent/region logic.
Can I use the revenue band in a proposal? Not as verified revenue. It is a low-confidence internal heuristic and should be replaced by a properly sourced firmographic or financial fact.
Can the Actor send emails? No. It does not find, verify or message contacts. Keep channel discovery, mailbox verification, consent and communications in separately governed workflows.
Why is manual review mandatory? The source proves only what a bounded public response exposed. Commercial fit, intent, identity, budget, lawful basis and message quality require other evidence.