Website Phrase and Business Model Classifier avatar

Website Phrase and Business Model Classifier

Pricing

from $3.82 / 1,000 domain classifieds

Go to Apify Store
Website Phrase and Business Model Classifier

Website Phrase and Business Model Classifier

Classify any company website from its own pages. Enter domains and get B2B or B2C, whether the site is SaaS, an online store, an agency, a manufacturer, a wholesaler, a distributor, or a marketplace, and whether your own phrases appear, with the quoted text and page as evidence.

Pricing

from $3.82 / 1,000 domain classifieds

Rating

0.0

(0)

Developer

Mamba Labs

Mamba Labs

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 hours ago

Last modified

Share

Classify company websites from their own pages. Enter a list of domains and get one row per company: B2B, B2C, or both; whether the site presents itself as SaaS, an online store, an agency, a manufacturer, a wholesaler, a distributor, or a marketplace; and whether the phrases you care about appear on the site. Every verdict carries the quoted text and the page it came from, so you can check it in one click.

The rules are fixed and written out, not a language model. The same pages always give the same answer, and nothing is guessed: a site that does not say enough comes back unknown.

Rows are flat and snake_case, so they load straight into a spreadsheet, a CRM, or a Clay table.

✨ Features

  • Your own phrases. Ask whether a site says "clay agency", "market research agency", "private label", or anything else. Whole words, plurals included, case ignored.
  • Negations do not count. "We are not an agency" or "an alternative to wholesale" never matches.
  • B2B or B2C with the reasons. Business signals ("request a demo", "contact sales", "request a quote") against consumer signals ("add to cart", "free shipping", "shop now"), with the signals listed.
  • Seven business categories. SaaS, online store, agency, manufacturer, wholesaler, distributor, marketplace.
  • Evidence on every row. The quoted text and the page URL behind the first matched phrase or category, plus full JSON evidence per category and per phrase.
  • More than the homepage. The homepage plus up to 5 pages it links to: about, products, services, wholesale, manufacturing, industries, and pricing.
  • Batch input. Up to 500 domains per run.

📥 Input

FieldTypeDescription
domainslistCompany domains or website addresses, one per line, up to 500
domainstringOne domain, for a single lookup or a Clay column
phraseslistYour buyer phrases, up to 25
categorieslistAny of saas, ecommerce, agency, manufacturer, wholesaler, distributor, marketplace; empty means all
max_pagesstringPages per site, homepage included, 1 to 10. Default 6
max_charge_usdstringOptional cost cap for the run
proxy_modestringauto (default): a site that refuses a direct request is retried through the Apify proxy. direct: never use a proxy. A reliability setting; it does not change what you pay

Example:

{ "domains": ["lodgecastiron.com", "hubspot.com"], "phrases": ["cast iron"] }

📤 Output

One row per domain. Every row carries every field; a field that does not apply is null.

FieldExampleNotes
domain, final_url, site_titlelodgecastiron.com
business_modelb2cb2b, b2c, both, unknown
business_model_confidence0.90 to 1, null when unknown
b2b_score, b2c_score0, 7Weighted signal counts
b2b_evidence, b2c_evidence["Add to cart","free shipping"]The signals found
is_saas, is_ecommerce, is_agency, is_manufacturer, is_wholesaler, is_distributor, is_marketplacetrueNull when you did not ask for that category
categories_matched["ecommerce","manufacturer"]
category_evidence_jsonPer category: score, threshold, up to 3 quoted texts with their pages
phrases_checked, phrases_matched, phrases_negated, phrase_match_count1, ["cast iron"], [], 12
phrase_matches_jsonPer phrase: matched, hit count, section, quoted text, page
top_evidence_text, top_evidence_urlThe quote behind the first match
pages_read, page_urls5
robots_noteWhat the site's robots.txt said
row_statusokok, no_text, unreachable, blocked, robots_disallowed, error
error_reasonnullWhy a row is not ok
billable_events_json{"domain-classified":1}What the row was billed as; {} is free
source, checked_at

📏 Measured accuracy

Measured on 25 company sites on 2026-10-21 (software companies, agencies, online stores, manufacturers, and distributors, labeled by hand before the run):

  • 23 of 25 sites were readable. 2 answered HTTP 403 to every request and came back blocked, free.
  • Business model: 17 of 23 readable sites got a verdict, and 16 of those 17 matched the hand label. The other 6 came back unknown, mostly large catalog sites that render their pages in JavaScript.
  • Categories: SaaS matched 6 of 6 software companies, agency 4 of 4 agencies, manufacturer 2 of 3 manufacturers. 2 sites drew a category they do not hold (an automation platform read as an online store, an agency read as SaaS).
  • Average time: about 18 seconds per site with 4 sites read at a time.

💵 Pricing

Pay per event. You pay for each domain whose site was read and classified, plus a small start fee per run.

EventFree planBronzeSilverGold
Domain classified (domain-classified), per domain$0.0045 ($4.50 per 1,000)$0.004275 ($4.275 per 1,000)$0.00405 ($4.05 per 1,000)$0.003825 ($3.825 per 1,000)
Actor start (apify-actor-start), per run$0.0005$0.0005$0.0005$0.0005
  • A row for a site that is unreachable, blocked, disallowed by robots.txt, or carries no readable text costs nothing.
  • A run stops at the maximum cost per run you set in Apify, and at max_charge_usd if you set it.
  • Free Apify plan: 1.50 USD of evaluation a month, which is 333 classified domains at the free plan price. Any paid Apify plan removes the cap.
  • The events above are all you pay this actor. Mamba Labs pays the platform costs of your run, Apify proxy traffic included.

🚀 Usage examples

Console or API. POST https://api.apify.com/v2/acts/mambalabs~website-phrase-business-model-classifier/runs with the input above, then read the default dataset.

Find the agencies in a list.

{ "domains": ["fabrikbrands.com", "ogilvy.com", "hubspot.com"], "categories": ["agency"], "phrases": ["clay agency", "outbound agency"] }

Split a store list into B2B and B2C.

{ "domains": ["faire.com", "allbirds.com", "uline.com"], "categories": ["ecommerce", "wholesaler"] }

Clay. Call the actor from a Clay column with the domain column mapped to domain. Clay sends every field as a string, which this actor expects.

MCP. The @mambalabsdev/mcp-website-phrase-business-model-classifier server exposes the tool classify_website to AI agents.

⚠️ Error handling

SituationWhat you get
The domain does not resolve or the site does not answerOne free row, row_status unreachable
The site refuses the request, also through the proxyOne free row, blocked
robots.txt disallows all crawlersOne free row, robots_disallowed; no page is read
The pages carry almost no readable textOne free row, no_text
The site does not say enough to decidebusiness_model unknown, charged as a classified domain, with the scores it found
Anything elseOne free error row with the reason

⚠️ Limitations

  • The actor reads what the site says about itself. A company that does not describe itself on its own pages comes back unknown.
  • Sites built only in JavaScript, and large catalog sites that load their text after the page opens, give little text to read. See the measured numbers above.
  • Phrase matching is literal: "clay agency" does not match "agency for Clay users". Add each wording you care about as its own phrase.
  • English vocabulary only for the business model and the categories. Your own phrases work in any language.
  • robots.txt is read and honored on every site, including its crawl delay, and no logins or cookies are used.

🧩 Want other GTM data?

Mamba Labs builds custom actors for B2B go-to-market teams. The public versions of that work live here on the Store.

ActorActor ID
Account Hiring WatchgRAZA5WBi1r6L0gy7
Agent Accessibility AuditoranxbRv0lKrpQ1pnua
Agent to Brokerage ResolverePRRGLxOGyaVHO4dI
AI Tooling DetectorEwkHhmqiuJgRoVEbE
B2B Reddit Conversation MonitorSoDryzzsjmY3SsiyG
Bluesky Brand Presence MappereLpxzP4IuXznlFVND
Career Change Signal EnginevX2Yga1a6wGaXaP14
Company Change Event FeedoX44rS0fkEJ3rXLWe
Company Contact Details Extractor4mMncKaJykiq94grz
Company Discovery List Builderjch0HdaZnpbMqlcGS
Company Firmographic EnricherYlUtLWjfPpqykmB8g
Company Funding RecordOFS4Mt1gyYNtGfUbE
Company Identity Resolverlr8fTRAmZCBZmuwwh
Company Social Presence Mapper4k6CCemkgBDz18m2h
Contact Classifier0lGSeYJmniXhGANnO
Cookie Consent AuditTrKyOS0KBoGC35nbr
Domain Deliverability Checker0tVgxI7A6o9jMlxmc
Domain to LinkedIn URL Resolver3HtnSaqPHOg1Qg5gx
Ecommerce Platform Profiler5G2NeYjBbQTjaTn9L
Event Presence IndexWLhMy8fMDgsxdYxv5
Expert Witness DirectoryLIpwlgfE3LaQBaXd4
Funding and Press Signal ScannerFS13X6dhQVgX3XOM6
GitHub Organization Signal ScannerahF8RRpv5mzPao5CN
Google Ads Transparency Monitor1eOwxhBVxzvOXAm4s
Government Contract Award MonitorzhEtllASykOcx9hJ8
GTM Hiring Signal ScraperD7O1SA2EqwHGsGr1P
GTM Signals AggregatorxKdRfnfFNkdMpFuNs
ICP Fit ScorerW161DT8W4kW55dMFh
Influencer Change Monitord2VVgahNL6UmcLkhg
Influencer FindertpkedmloIIWtXx6sg
Influencer Lead List BuilderKnmByszcv135yM30G
Influencer Profile ScraperEqEnklDVMIcB1V499
Influencer Talent Agency LookupzCuX4Mgyg6JvXgGzd
Instagram Facebook Brand Presence MapperHXh65I0JBjPsunbY8
Integration and Marketplace Presence MapperV0guNuvM85Q61f2gj
Job Board Keyword Signal Scanner4DvqpvhMR74NLcDDY
Job Change TrackerL8UbEmMJC1XYPSZOb
Job Posting MonitorQCfICD9kOPiOdj5iI
Legal Entity ResolverKHFyPCDIx7CyqULYm
Link in Bio Scraper and Newsletter DetectorOorucdheTIgu7RFzK
LinkedIn Company Page MapperzOPm6A9JEhUGcIdFW
LinkedIn Post TrackeroiGLNPuaf5BRaz9K5
Meta Ad Library MonitorJ1GWlSXfSGU3u8Wng
Mobile Phone Waterfall6OOgPktf7RIa5XCOP
New Hire FindercKuc38p4nYHNF3IW8
Outbound Stack Detectorv43UJC8r7qW7cBSTG
Page Finder and ExtractorTpurgcOZbVnknlaiC
People Finder & Email VerifierLEgloG7tWgQl4o6TD
Person Social Footprint MapperjfQXa2zW9FHCJot9K
Pinterest Brand Presence Mapperd1HvjZfKhgvWsoEwn
Prospect Engineq9rT6v64nUJdPexOQ
Publishing Frequency TrackerTbLwaUUATdYb6wp4N
Reddit Brand Presence MapperpKQZmDaT70SEb54bZ
Reporting Window FinderuINxR7a1IW8qUTRUX
Sequencer Lead Push0Jv27VeWM5tSZQs9x
Team Page People Extractorj8a9zX0k4mNbvDbWK
Tech Stack Signal Detectorqyd7nNyqFPelQViBx
TikTok Brand Presence Mapperfco8FvoJcSafbeyd1
Trustpilot Reputation Enricher3lIqfCt61j4hqE1xz
WCAG Accessibility AuditP3jBj3FRghKEhX52z
Website Traffic Rank EstimatorGnOFUzlNVIoXgeJjH
Work Email WaterfallOT6xqTFThC0Rjf7Zj
Workplace Program DetectorLi6pPDhqbdzFz3h7G
X Brand Presence MapperoLOgadhHUkNAyDA3w
YouTube Channel Stats Extractor6hSpD3kd2s2IQ4VSs

Every actor in the suite takes a domain, a company, or a person and returns flat rows, so they stack in the same table without reshaping anything.

🛠️ Need something custom built? Talk to Mamba Labs.

🆘 Support

Found a bug? Open an issue on the Issues tab. Response time is typically within 48 hours.

ℹ️ Sourcing. Every verdict comes from the company's own public web pages, read directly. You are responsible for how you use the output.

Built by Mamba Labs.