Clutch Scraper icon

Clutch Scraper

Scrape Clutch company directories and profiles. Get names, ratings, review counts, hourly rate, min project size, employees, location, services, full…

Start using this actor on Apify ↗Need a custom scraper?Contact us ↗

Clutch Scraper at a glance

Clutch Scraper is a ready-to-run Apify actor from abotapi for collecting social media data. Its documented output includes id, kind, type, slug and company, which you can export as JSON, CSV or Excel or read through the Apify API. It costs $2.00 per 1,000 results on the Apify Free plan and from $1.00 on paid plans, with smaller per-run or optional feature charges listed on Apify.

Runs on
Apify cloud: console, API, schedules and integrations
Data type
Social Media, Lead Generation, Automation
Pricing
$2.00 per 1,000 results (Free plan), from $1.00 on paid plans
Output
Documented below · JSON, CSV, Excel
Inputs
32 options

Scrape Clutch company directories and profiles. Get names, ratings, review counts, hourly rate, min project size, employees, location, services, full reviews with reviewer details and per-criterion scores. Search and URL mode, 40+ fields per company.

What Clutch Scraper can do

  • Any Clutch directory in one actor. Pass a plain category name or a directory slug (web-developers, seo-firms, app-developers, it-services, pr-firms and more) and the actor builds the right listing URL for you.
  • Full company profiles on demand. The base search already returns 20+ fields per company; turning on full profile details adds founding year, languages, office locations, reviews (up to the Max reviews limit, default 20), the rating breakdown by criterion, Clutch's verification section (status, verified-review count, business-entity data), and the percentage breakdown of service lines, industries and client sizes straight from the profile's own charts. Switch on includePortfolio to also get every portfolio project, the key clients, Clutch award badges and industry recognitions.
  • Deep, structured reviews. Each review carries its quote, date, per-criterion scores (Quality, Schedule, Cost, Willing to Refer), the reviewer's role, industry, location and company size, the project size and length, and the full background, challenge, solution and results write-up.
  • Two ways to start. Pick filters (directory, any location by name, company size, service line, hourly rate, project budget, industry, client focus, focus area, specialization, verified or Clutch Guarantee only, sort) or search Clutch by keyword/company name, or paste any Clutch directory URL. Minimum rating and minimum reviews narrow the results either way, since both are applied after fetching.
  • Walks a whole directory on its own. Leave the page limit at its default and the actor keeps paging until the site runs out of results or a page repeats companies already seen, so you never have to guess how many pages exist.
  • Resume and recurring monitoring. Continue an interrupted run without paying twice, or turn on incremental mode to get only the companies that are new, changed or gone on a repeat schedule.

Choose what to collect

These inputs let you configure Clutch Scraper - Companies, Ratings, Reviews & Pricing. Open the actor on Apify to enter your values and review the current options.

Supported input fields
InputWhat it controls
modestring · requiredHow to start the scrape. 'search' builds a directory URL from the filters below (or runs Clutch's own keyword search when 'Keyword search' is filled). 'url' takes the exact Clutch directory URLs you paste.

Choices: search, url

searchQuerystringKeyword search: optional. Search Clutch by keyword or company name instead of browsing a directory -- the same as typing into Clutch's own search box (for example 'shopify', 'react native', 'BairesDev'). Walks every results page Clutch offers (4 companies per page) up to Max records. When set, the directory filters below (directory, location, company size, related service, hourly rate, project budget, industry, client focus, focus area, specialization, verified/guarantee only, sort) are ignored -- Clutch's search page has none -- and the run log says so. Min rating and Min reviews still apply. Leave empty to browse a directory with filters.
directorystringDirectory: which Clutch directory to scrape in search mode. Accepts a plain category name ('Web Developers', 'SEO', 'Mobile App Development') or a Clutch directory slug directly, including a nested one like 'developers/php'. Live-verified slugs: 'web-developers', 'web-designers', 'developers', 'agencies', 'seo-firms', 'app-developers', 'it-services', 'pr-firms', 'call-centers', 'bpo', 'accounting', 'translation'. Any other slug is still tried as-is, but a bad one now gets a loud warning in the run log instead of a silent empty result.
locationstringLocation: optional location to narrow results -- any country, region or city name as Clutch spells it ('United States', 'Germany', 'London', 'Munich', 'Sao Paulo', 'Tokyo'). Common countries and a few major cities resolve offline; any other name is looked up on Clutch's own location search and the run log shows the place it matched. A name Clutch does not know stops the run with a clear message instead of guessing. A 2-letter Clutch path code ('us', 'de') also works. Leave empty for worldwide.
agencySizestringCompany size: optional filter -- one of Clutch's own buckets: 'Freelancer', '2 - 9', '10 - 49', '50 - 249', '250 - 999', '1,000 - 9,999' or '10,000+' employees (underscore or plain forms like '50_-_249' / '50-249' also work; the thousands comma is added automatically if left out -- Clutch's own filter silently ignores an un-comma'd '1000 - 9999'). Leave empty for any size.
relatedServicesstringRelated service: optional filter -- a plain name ('Mobile App Development', 'SEO', 'Ecommerce Development', 'Public Relations') or the raw Clutch value directly, for example 'field_pp_sl_ecommerce'. An unrecognised name is still sent as-is, but Clutch silently ignores a value it does not recognise (the run log warns when this happens). Leave empty for all services.
hourlyRateRangestringHourly rate: optional filter -- only companies in this average hourly-rate range (Clutch's own filter). Leave empty for any rate.

Choices: 0-25, 25-49, 50-99, 100-149, 150-199, 200-300, 300

Show 25 more inputs
More input fields
InputWhat it controls
clientBudgetstringProject budget: optional filter -- only companies whose minimum project size fits under this budget (Clutch's own 'Client budget' filter). Leave empty for any budget.

Choices: 5000, 10000, 25000, 50000, 75000, 100000, 250000

industrystringIndustry focus: optional filter -- only companies that serve this industry -- a plain name as Clutch shows it ('eCommerce', 'Financial services', 'Medical', 'Real estate', 'Education', 'Retail', 'Manufacturing', 'Automotive'...) or the raw Clutch value such as 'field_pp_if_ecommerce'. An unrecognised name is still sent as-is, but Clutch silently ignores it (the run log warns). Leave empty for all industries.
clientTypestringOptional filter -- only companies that focus on this client size (Clutch's own 'Client focus' filter): small businesses (under $10M revenue), midmarket ($10M - $1B) or enterprise (over $1B). Leave empty for any.

Choices: small_business, midmarket, enterprise

focusAreastringOptional filter -- a technology or focus area exactly as Clutch lists it for this directory ('WordPress CMS', 'JavaScript', 'Android App Development', 'Shopify'...), or the raw Clutch value such as 'field_pp_fw_wordpress'. Looked up in Clutch's own filter list for the directory; a name it does not offer is reported in the run log and not applied. Leave empty for all.
specializationstringOptional filter -- a company specialization as Clutch lists it ('Accessibility', 'Multicultural', 'Diversity & Inclusion'...), or the raw value such as 'field_accessibility'. Looked up in Clutch's own filter list for the directory; a name it does not offer is reported and not applied. Leave empty for all.
verifiedOnlybooleanOnly companies that carry Clutch's verification badge (Clutch's own 'Verification' filter).
clutchGuaranteeOnlybooleanOnly companies that offer the Clutch Guarantee (Clutch's own filter).
sortBystringSort by: result ordering. Search mode only -- this reorders the results the site returns, so it has no equivalent in URL mode.

Choices: default, review_rating, reviews, company_name, date, clutch_rank, verified

urlsarrayPaste one or more Clutch URLs. Multi-URL supported. Filter fields above are ignored. Supported shapes: a directory listing (.../web-developers, legacy .../directory/), a nested directory (.../developers/php.../consulting/ai/deployment), a country- or city-scoped directory (.../us/web-developers.../web-developers/chicago.../au/web-developers/sydney.../web-developers/uk), a directory with filter query params and/or a page number (results continue from that page), a company profile (.../profile/, also its review pages ?page=N#reviews and its /portfolio link -- returned as ONE fully enriched record, reviews from page 1), Clutch's own keyword-search page (.../search?q=...), Clutch's Markdown copy of any of these (.md), and the www host / http:// / utm_ tracking params (normalised automatically). Guides, articles, the home page and other clutch.co hosts (redirect links, the review form) are skipped with a warning naming the URL, and a dead slug or 404 gets a loud warning -- never a silent empty result.
minRatingintegerOnly keep companies with at least this overall rating (0 to 5). Applied after fetching, so it narrows results in BOTH search mode and URL mode.
minReviewsintegerOnly keep companies with at least this many reviews. Applied after fetching, so it narrows results in BOTH search mode and URL mode.
fetchDetailsbooleanOpen each company profile to add founding year, languages, locations, reviews (up to Max reviews, quote, feedback, summary, reviewer details, per-criterion scores, project size and length) and the rating breakdown. Adds one HTTP request per record, plus one more per extra review page (see Max reviews).
maxReviewsintegerHow many reviews to return per company, in the order Clutch lists them (Clutch shows ~10-11 per profile page, so the default 20 reads one extra review page when a company has more). Only applies when Fetch full profile details is on, in both search mode and URL mode (incl. a pasted company-profile URL). 0 returns no reviews. The number actually returned is in reviewsDelivered. Reviews are included in the existing profile-enrichment charge -- no extra charge per review.
includePortfoliobooleanAlso read each company's Portfolio & Awards section: portfolio projects (title, image, services), key clients, Clutch award badges and industry recognitions. Only applies when Fetch full profile details is on. Adds one or two requests per company; no extra charge. Off by default.
maxPagesintegerHow many result pages to read per directory URL. Does NOT cap the run. Leave at 0 to walk the whole catalogue, the run stops on its own at the site's last page or a repeat-page guard, not an artificial page cap. The run is bounded by Max records, which is the cap. Set this only if you want to additionally limit how many pages are read per directory.
maxListingsintegerTHE cap for the run: stop after this many records (default 20). Set to 0 for unlimited.
resumeFromRunIdstringOptional. ID of a previous run of this actor (or a dataset ID). Companies already in that dataset are skipped, so this run returns only NEW companies (a delta). Combine both runs' datasets for the full set. For a recurring monitoring schedule, use Incremental mode below instead.
incrementalModebooleanWhen ON, this actor remembers the companies from its last run of the SAME search (see State key) and tags each company NEW / UPDATED / UNCHANGED / REAPPEARED / EXPIRED, so a daily/weekly schedule returns only what changed. Off by default: every run returns the full result set with no change tracking, exactly as before. Combine with resumeFromRunId only to bootstrap a monitoring campaign from one prior run's dataset, not on every scheduled run.
stateKeystringOnly used when Incremental mode is ON. Leave empty to auto-derive the tracked scope from your search filters (directory, location, company size, related service, sort, min rating, min reviews, URLs, fetch details), two different filter setups then never share a baseline. Set an explicit value to intentionally share state across otherwise-different filter setups, or to run multiple separate monitoring campaigns.
emitUnchangedbooleanOnly used when Incremental mode is ON. Off by default: companies with no changes since the last run are suppressed (not returned, not billed). Turn ON to also return every UNCHANGED company each run, this returns and BILLS more rows.
emitExpiredbooleanOnly used when Incremental mode is ON. Off by default. Turn ON to emit a row (changeType EXPIRED) for companies that were in the previous run's tracked set but are no longer found, only on a run that completes a full, uncapped, non-resumed scan of the tracked search. This returns and BILLS extra rows.
ignoreFieldsForChangesarrayOnly used when Incremental mode is ON. Output field names (or dotted paths, e.g. "metadata.scraped_at") that should NOT make a company count as UPDATED. The directory-rank fields (position, metadata.position, listing.position) and this page's own URL (sourceUrl, metadata.seed_url) are always ignored, since they shift whenever any other company is added, removed, or reordered on the page, not because this company actually changed. Add a field here if changes to it are not relevant to you, it is still returned in the output, just excluded from change detection.
mcpConnectorsarrayOptionally send the scraped results into the apps you already use, via Model Context Protocol (MCP) connectors. Authorize a connector once under Apify → Settings → Integrations, then select it here. The connector receives a condensed, human-readable summary per item (title + key fields), not the full JSON. The complete record stays in the dataset. Leave empty to skip. Supported: Notion (https://mcp.notion.com/mcp), Linear (https://mcp.linear.app/sse), Airtable (https://mcp.airtable.com/mcp), Apify (https://mcp.apify.com).
notionParentPageUrlstringURL (or id) of the Notion page under which item pages are created. Required to enable the Notion export; ignored by other connectors.
maxNotifyListingsintegerCap on items written to each connector per run. Does not affect the dataset.

Fields in the output

The documented dataset includes the fields below. Availability can depend on the source page and selected mode.

idID (text)
kindKind (text)
typeType (text)
slugSlug (text)
nameCompany (text)
titleTitle (text)
urlURL (link)
clutchUrlProfile (link)
profileUrlProfile URL (link)
profileLinkProfile Link (link)
logoLogo (link)
logoUrlLogo URL (link)
Show 87 more fields
websiteWebsite (link)
websiteUrlWebsite URL (link)
taglineTagline (text)
descriptionDescription (text)
summarySummary (text)
quoteQuote (text)
ratingRating (number)
reviewCountReviews (number)
numberOfProjectsNumber of projects (number)
minProjectSizeMin project (text)
hourlyRateHourly rate (text)
employeeCountEmployees (text)
employeesCountEmployees count (text)
priceRangePrice range (text)
locationLocation (text)
servicesServices (array)
tagsTags (array)
verifiedVerified (boolean)
isVerifiedIs verified (boolean)
isSponsorIs sponsor (boolean)
positionPosition (number)
yearFoundedFounded (number)
languagesLanguages (array)
locationsLocations (array)
timezonesTimezones (array)
servicesOfferedServices offered (array)
verificationStatusVerification (text)
verificationVerification details (object)
addressesOffices (array)
serviceLinesService lines (%) (array)
focusAreasFocus areas (%) (array)
industryBreakdownIndustries (%) (array)
clientBreakdownClient sizes (%) (array)
videoUrlVideo (link)
searchQuerySearch keyword (text)
pageNumberResults page (number)
sourceUrlSource URL (link)
scrapedAtScraped at (text)
changeTypeChange type (incremental mode) (text)
changedFieldsChanged fields (incremental mode) (array)
firstSeenAtFirst seen at (incremental mode) (text)
lastSeenAtLast seen at (incremental mode) (text)
companyCompany (object)
brandingBranding (object)
contactContact (object)
ratingsRatings (object)
pricingPricing (object)
staffingStaffing (object)
services_clusterServices cluster (object)
listingListing (object)
detailedRatingsRating breakdown (object)
reviewsReviews (array)
reviewsCountReviews (number)
reviewsDeliveredReviews returned (number)
portfolioPortfolio (array)
portfolioCountPortfolio items (number)
keyClientsKey clients (array)
clutchAwardsClutch awards (array)
industryRecognitionsIndustry recognitions (array)
contactDetailsContact (object)
insightsInsights (object)
additionalFieldsAdditional fields (object)
projectsProjects (object)
extraExtra (object)
metadataMetadata (object)
website_clusterWebsite cluster (object)
websiteClusterWebsite cluster (object)
insights_clusterInsights cluster (object)
reviews.reviewIdReview ID (text)
reviews.projectNameProject (text)
reviews.quoteQuote (text)
reviews.summarySummary (text)
reviews.dateReview date (text)
reviews.ratingReview rating (number)
reviews.detailedRatingsRating breakdown (object)
reviews.projectSizeProject size (text)
reviews.projectLengthProject length (text)
reviews.servicesServices (array)
reviews.reviewer.positionBuyer position (text)
reviews.reviewer.industryBuyer industry (text)
reviews.reviewer.locationBuyer location (text)
reviews.reviewer.clientSizeBuyer company size (text)
portfolio.idProject ID (text)
portfolio.titleProject (text)
portfolio.servicesServices (array)
portfolio.moreServicesCountMore services (number)
portfolio.imageUrlImage (image)

Example output

An example from this actor’s documentation. Values are illustrative; this is not a fresh live result.

{
  "id": "1963983",
  "name": "Sample Agency LLC",
  "slug": "sample-agency",
  "clutchUrl": "https://clutch.co/profile/sample-agency",
  "website": "https://example.com",
  "logo": "https://img.shgstatic.com/clutch-static-prod/image/scale/50x50/logos/000000.jpg",
  "rating": 4.8,
  "reviewCount": 42,
  "minProjectSize": "$25,000+",
  "hourlyRate": "$100 - $149 / hr",
  "employeeCount": "50 - 249",
  "location": "New York, NY",
  "verified": true,
  "services": [
    "45% Web Development",
    "45% Web Design",
    "10% Branding"
  ],
  "description": "Sample Agency builds websites and digital products for mid-market clients.",
  "yearFounded": 2010,
  "tagline": "Building digital products that scale.",
  "videoUrl": "https://www.youtube.com/watch?v=sample",
  "verification": {
    "status": "Premier Verified",
    "summary": "Premier Verified means Clutch independently confirmed...",
    "verifiedClientReviews": 12,
    "businessEntity": {
      "name": "Sample Agency LLC",
      "jurisdictionOfFormation": "Delaware",
      "status": "Active"
    }
  },
  "addresses": [
    {
      "street": "1 Example St",
      "city": "New York",
      "region": "NY",
      "country": "United States",
      "postalCode": "10000",
      "isHeadquarters": true,
      "telephone": "1-000-000-0000",
      "lat": 40.7,
      "lng": -74
    }
  ],
  "serviceLines": [
    {
      "name": "Web Development",
      "percentage": 45,
      "group": "Development"
    }
  ],
  "industryBreakdown": [
    {
      "name": "eCommerce",
      "percentage": 30
    }
  ],
  "clientBreakdown": [
    {
      "name": "Small business",
      "percentage": 60
    }
  ],
  "contact": {
    "phone": "1-000-000-0000",
    "location": "New York, NY",
    "address": {
      "street": "1 Example St",
      "city": "New York",
      "region": "NY",
      "postal_code": "10000",
      "country": "US"
    }
  },
  "contactDetails": {
    "emails": [
      "contact@abotapi.com"
    ],
    "phone_numbers": [
      "1-000-000-0000"
    ],
    "social_media": [
      "https://www.linkedin.com/company/example"
    ]
  },
  "detailedRatings": {
    "Quality": 4.8,
    "Schedule": 4.7,
    "Cost": 4.8,
    "Willing to Refer": 4.9
  },
  "insights": {
    "industries": {
      "industries": [
        "eCommerce",
        "Financial services"
      ]
    },
    "service_line_reviews": [
      {
        "service_line": "Web Development",
        "reviews_count": 17,
        "price_range": "0"
      }
    ]
  },
  "reviews": [
    {
      "quote": "Great team to work with.",
      "date": "Jan 1, 2026",
      "rating": 5,
      "summary": "Sample Agency built a new marketing website.",
      "projectSize": "$10,000 to $49,999",
      "projectLength": "Jan. to June 2026",
      "services": [
        "Web Design",
        "Web Development"
      ],
      "detailedRatings": {
        "Quality": 5,
        "Schedule": 5,
        "Cost": 5,
        "Willing to Refer": 5
      },
      "reviewer": {
        "position": "Director of Marketing, Sample Client Inc",
        "verified": true,
        "industry": "Financial services",
        "location": "Lynchburg, Virginia",
        "clientSize": "11-50 Employees"
      }
    }
  ],
  "sourceUrl": "https://clutch.co/web-developers"
}

Ways to use this data

  • Agency and vendor selection: procurement and marketing teams comparing agencies by rating, hourly rate, minimum project size and location before requesting proposals.
  • Competitive intelligence: agencies tracking their own and competitors' review counts, ratings and service mix over time.
  • Lead generation: sales teams building outreach lists of service providers filtered by size, location or specialty.
  • Market research: analysts studying pricing bands, review sentiment and service trends across a directory or industry.
  • Review analytics: researchers and tool builders aggregating detailed review text and per-criterion scores for sentiment or NLP analysis.

Before you run

Start with a small input and check the resulting records against your expected fields. Source content and actor options can change; the current Apify listing is the reference for availability and pricing.

Questions about this actor

What data does Clutch Scraper return?

The documented output for Clutch Scraper includes id, kind, type, slug, company, title, url and profile. Availability of each field depends on the source page and the selected mode.

How much does Clutch Scraper cost?

It costs $2.00 per 1,000 results on the Apify Free plan and from $1.00 on paid plans, with smaller per-run or optional feature charges listed on Apify. The Apify listing shows the current rate for every plan.

Can I get only new or changed companies on a schedule?

Yes. Schedule the actor from the Schedules tab and turn on Incremental mode. Each run then returns only new and updated companies (and removed ones if you also turn on Also return expired companies, on a complete scan) since the last run for that same search, and unchanged companies are not billed unless you turn that on too.

Why did my run return fewer companies than I expected?

Max records is the only real cap: the run stops once that many companies have passed your filters and been scanned, or suppressed as unchanged in incremental mode. Raise it, or set it to 0, to scan the whole directory. Max pages per list only limits how many pages are read per directory or URL and does not need to be touched for most runs.

Can I use it with AI agents or MCP?

Yes. Call it from any Apify integration or MCP client, and use the connector field to push a summary of each company into Notion, Linear or Airtable.

Ready to collect with Clutch Scraper?

Run it on Apify with your own input and export the results as JSON, CSV or Excel.