Clutch Company Data, as Flat JSON Records
Profile URLs or bare slugs in, full B2B company records out: firmographics, service mix, pricing bands, and review ratings, each already parsed into fields you can map onto a CRM.
When to use this skill
- You need a company data api and found only enterprise firmographic vendors you cannot self-serve.
- You are enriching a CRM or a prospect list with what a buyer actually weighs: verified ratings, published rates, minimum project size, and service mix.
- You have a list of Clutch profiles (or just slugs) and want each one as structured JSON, not a page to read.
- You want the company record and its client reviews from a single run.
Not for: building the list of companies in the first place. To walk a Clutch category or location directory and collect every agency on it, use the companion apify-marketing-agency-database skill, built on the same Actor in directory mode. See references/actor-index.md.
What you get
One dataset row per company. result_type separates profile rows from review and error rows. The companies dataset view shows the profile columns; the reviews view shows review rows.
Profile fields:
name, slug, profile_url, website (the real homepage, with tracking parameters stripped)
rating, review_count, is_verified, verification (badge list)
min_project_size, hourly_rate, employees, founded_year
headquarters, locations (every office, with a headquarters flag), languages, timezones
service_lines, focus_areas, industries, clients: each a list of name plus percentage
cost_rating, most_common_project_size, pricing_by_service, packages
review_ratings (quality, schedule, cost, willing_to_refer), top_mentions
markdown (Clutch's own LLM-ready rendering, default add-on), html (opt-in)
fetched_at
Review rows (when includeReviews is on) carry title, rating, the quality/schedule/cost/willing-to-refer breakdown, project_services, project_size, project_length, reviewer, reviewer_industry, and Clutch's project and feedback summaries.
Prerequisites
The Actor
Run it with the Apify CLI
Three company profiles as JSON plus markdown, reviews off for lean records:
apify actors call "johnvc/clutch-agency-api" -i '{"mode":"profiles","profileUrls":["ignite-visibility","lounge-lizard","geniusee"],"includeReviews":false,"outputFormats":["json","markdown"],"maxItems":10}' \
--json \
--user-agent apify-awesome-skills/apify-company-data-api \
2>/dev/null
One company with its full firmographics and every verified review, capped:
apify actors call "johnvc/clutch-agency-api" -i '{"mode":"profiles","profileUrls":["https://clutch.co/profile/ignite-visibility"],"includeReviews":true,"maxReviewsPerProfile":50,"maxItems":100}' \
--json \
--user-agent apify-awesome-skills/apify-company-data-api \
2>/dev/null
Confirm the live schema and prices before a large batch:
apify actors info "johnvc/clutch-agency-api" --input --json \
--user-agent apify-awesome-skills/apify-company-data-api \
2>/dev/null
Read the rows back from a finished run:
apify datasets get-items <DATASET_ID> --format json \
--user-agent apify-awesome-skills/apify-company-data-api \
2>/dev/null
Every call carries the three flags this repo expects: --json (or --format json), --user-agent apify-awesome-skills/apify-company-data-api, and 2>/dev/null.
Run it from Claude or another AI agent (MCP)
The Actor is MCP-ready. Add the hosted server URL:
https://mcp.apify.com/?tools=actors,docs,johnvc/clutch-agency-api
Then ask, for example: "Pull the full company records for ignite-visibility and geniusee from Clutch, with service mix and pricing bands, and give me the websites and hourly rates." MCP setup docs: https://docs.apify.com/platform/integrations/mcp
Workflow
- Start with one or two profiles and reviews off. Look at the row shape before you pay for a wide batch.
- A bare slug works as input.
ignite-visibility and https://clutch.co/profile/ignite-visibility mean the same thing.
- Keep
outputFormats at ["json"] for CRM fields; add "markdown" for a RAG pipeline (it costs nothing extra) and "html" only when you need the raw page (it costs a second request).
- Turn
includeReviews on only when you want the review rows; each review is its own billed row, so maxReviewsPerProfile is your cap.
- Map
name, website, headquarters, employees, and min_project_size straight onto CRM fields. Every row is flat JSON.
- Check
result_type before treating a row as a company. An error row carries error_message and error_type.
maxItems is the hard spend ceiling for the whole run, reviews included.
Inputs
mode (enum directory, profiles, search): use profiles for this workflow.
profileUrls (array): company profile URLs or bare slugs, mixed freely.
includeReviews (boolean, default true): return every verified review as its own row.
maxReviewsPerProfile (integer): cap on reviews per company; reviews paginate until this or the declared total.
outputFormats (array of json, markdown, html, default ["json","markdown"]): html costs a second fetch.
maxItems (integer): the hard delivery ceiling for the run. Use it as a spend cap.
Thin profiles are common: a large share of Clutch companies have no reviews and little published detail, so those rows return what exists rather than guessing.
Cost
Billing is pay per event with no start fee, so a run that returns nothing costs almost nothing. Confirm live prices with the info command above rather than trusting a number copied here.
The profile-scraped event fires once per company record delivered. review-scraped fires once per verified review row, only when includeReviews is on. There is no charge for the markdown add-on. A company that appears more than once in your input is de-duplicated and billed once.
Suggested confirmation thresholds: mention the estimate under about $5, warn the user over about $5, get explicit confirmation over about $20. Present cost as "around $X", never as a guarantee.
Honest limits
- Many Clutch profiles are genuinely thin.
has_reviews is decided by real review entries, not by the boilerplate reviews heading, so a company with no reviews returns a short record honestly.
- Reviews come only from what Clutch publishes; nothing is inferred by a model.
- Public profile data only. No emails scraped from behind a login, no private contact data.
- The website is the company's real homepage with referral tracking parameters removed, so it is safe as a dedupe key.
Troubleshooting
- Zero rows and no error row: check
result_type. A profiles run with a bad slug returns an error row rather than silently dropping it.
- A profile with very few fields: that company's Clutch page is genuinely thin, not a parse failure.
- Duplicates across runs: dedupe downstream on
profile_url or slug, never on name.
- Reviews look short: raise
maxReviewsPerProfile; page one already carries the first block.
See references/gotchas.md for cost guardrails and error recovery, and references/actor-index.md for the Actor routing table.
Related Actors
1---2name: apify-company-data-api3description: Pull structured B2B company data from Clutch.co with the Clutch.co Agency API Actor (johnvc/clutch-agency-api). Give it company profile URLs or bare slugs and get one flat JSON record per company: name, website, rating, review_count, verification badges, min_project_size, hourly_rate, employees, founded_year, headquarters and every office location, languages, service_lines and focus_areas with percentages, industries, clients, cost_rating, most_common_project_size, pricing_by_service, and published packages. Each profile row can also carry LLM-ready markdown at no extra fetch, and verified client reviews as their own rows. Use when someone wants a company data api, to enrich a CRM with firmographics and service mix, pull B2B service provider records, or turn a list of agency profiles into structured company data as JSON. Billed per profile delivered with no start fee, and MCP-ready for Claude and other AI agents.4license: MIT5---67# Clutch Company Data, as Flat JSON Records89Profile URLs or bare slugs in, full B2B company records out: firmographics, service mix, pricing bands, and review ratings, each already parsed into fields you can map onto a CRM.1011## When to use this skill1213- You need a company data api and found only enterprise firmographic vendors you cannot self-serve.14- You are enriching a CRM or a prospect list with what a buyer actually weighs: verified ratings, published rates, minimum project size, and service mix.15- You have a list of Clutch profiles (or just slugs) and want each one as structured JSON, not a page to read.16- You want the company record and its client reviews from a single run.1718Not for: building the list of companies in the first place. To walk a Clutch category or location directory and collect every agency on it, use the companion `apify-marketing-agency-database` skill, built on the same Actor in directory mode. See `references/actor-index.md`.1920## What you get2122One dataset row per company. `result_type` separates `profile` rows from `review` and `error` rows. The `companies` dataset view shows the profile columns; the `reviews` view shows review rows.2324Profile fields:2526- `name`, `slug`, `profile_url`, `website` (the real homepage, with tracking parameters stripped)27- `rating`, `review_count`, `is_verified`, `verification` (badge list)28- `min_project_size`, `hourly_rate`, `employees`, `founded_year`29- `headquarters`, `locations` (every office, with a headquarters flag), `languages`, `timezones`30- `service_lines`, `focus_areas`, `industries`, `clients`: each a list of name plus percentage31- `cost_rating`, `most_common_project_size`, `pricing_by_service`, `packages`32- `review_ratings` (quality, schedule, cost, willing_to_refer), `top_mentions`33- `markdown` (Clutch's own LLM-ready rendering, default add-on), `html` (opt-in)34- `fetched_at`3536Review rows (when `includeReviews` is on) carry `title`, `rating`, the quality/schedule/cost/willing-to-refer breakdown, `project_services`, `project_size`, `project_length`, `reviewer`, `reviewer_industry`, and Clutch's project and feedback summaries.3738## Prerequisites3940- Apify account (sign up at https://apify.com?fpr=9n7kx3&fp_sid=skillrepo).41- Authentication via `apify login`, or an `APIFY_TOKEN` environment variable (Apify Console, Settings, Integrations).4243## The Actor4445- Store page: https://apify.com/johnvc/clutch-agency-api?fpr=9n7kx3&fp_sid=skillrepo46- Actor ID: `johnvc/clutch-agency-api`47- Pricing: pay per event, no start fee. See the cost section below and `references/gotchas.md` for the live-price command.4849## Run it with the Apify CLI5051Three company profiles as JSON plus markdown, reviews off for lean records:5253```bash54apify actors call "johnvc/clutch-agency-api" -i '{"mode":"profiles","profileUrls":["ignite-visibility","lounge-lizard","geniusee"],"includeReviews":false,"outputFormats":["json","markdown"],"maxItems":10}' \55 --json \56 --user-agent apify-awesome-skills/apify-company-data-api \57 2>/dev/null58```5960One company with its full firmographics and every verified review, capped:6162```bash63apify actors call "johnvc/clutch-agency-api" -i '{"mode":"profiles","profileUrls":["https://clutch.co/profile/ignite-visibility"],"includeReviews":true,"maxReviewsPerProfile":50,"maxItems":100}' \64 --json \65 --user-agent apify-awesome-skills/apify-company-data-api \66 2>/dev/null67```6869Confirm the live schema and prices before a large batch:7071```bash72apify actors info "johnvc/clutch-agency-api" --input --json \73 --user-agent apify-awesome-skills/apify-company-data-api \74 2>/dev/null75```7677Read the rows back from a finished run:7879```bash80apify datasets get-items <DATASET_ID> --format json \81 --user-agent apify-awesome-skills/apify-company-data-api \82 2>/dev/null83```8485Every call carries the three flags this repo expects: `--json` (or `--format json`), `--user-agent apify-awesome-skills/apify-company-data-api`, and `2>/dev/null`.8687## Run it from Claude or another AI agent (MCP)8889The Actor is MCP-ready. Add the hosted server URL:9091`https://mcp.apify.com/?tools=actors,docs,johnvc/clutch-agency-api`9293Then ask, for example: "Pull the full company records for ignite-visibility and geniusee from Clutch, with service mix and pricing bands, and give me the websites and hourly rates." MCP setup docs: https://docs.apify.com/platform/integrations/mcp9495## Workflow96971. Start with one or two profiles and reviews off. Look at the row shape before you pay for a wide batch.982. A bare slug works as input. `ignite-visibility` and `https://clutch.co/profile/ignite-visibility` mean the same thing.993. Keep `outputFormats` at `["json"]` for CRM fields; add `"markdown"` for a RAG pipeline (it costs nothing extra) and `"html"` only when you need the raw page (it costs a second request).1004. Turn `includeReviews` on only when you want the review rows; each review is its own billed row, so `maxReviewsPerProfile` is your cap.1015. Map `name`, `website`, `headquarters`, `employees`, and `min_project_size` straight onto CRM fields. Every row is flat JSON.1026. Check `result_type` before treating a row as a company. An `error` row carries `error_message` and `error_type`.1037. `maxItems` is the hard spend ceiling for the whole run, reviews included.104105## Inputs106107- `mode` (enum `directory`, `profiles`, `search`): use `profiles` for this workflow.108- `profileUrls` (array): company profile URLs or bare slugs, mixed freely.109- `includeReviews` (boolean, default true): return every verified review as its own row.110- `maxReviewsPerProfile` (integer): cap on reviews per company; reviews paginate until this or the declared total.111- `outputFormats` (array of `json`, `markdown`, `html`, default `["json","markdown"]`): `html` costs a second fetch.112- `maxItems` (integer): the hard delivery ceiling for the run. Use it as a spend cap.113114Thin profiles are common: a large share of Clutch companies have no reviews and little published detail, so those rows return what exists rather than guessing.115116## Cost117118Billing is pay per event with no start fee, so a run that returns nothing costs almost nothing. Confirm live prices with the info command above rather than trusting a number copied here.119120The `profile-scraped` event fires once per company record delivered. `review-scraped` fires once per verified review row, only when `includeReviews` is on. There is no charge for the markdown add-on. A company that appears more than once in your input is de-duplicated and billed once.121122Suggested confirmation thresholds: mention the estimate under about $5, warn the user over about $5, get explicit confirmation over about $20. Present cost as "around $X", never as a guarantee.123124## Honest limits125126- Many Clutch profiles are genuinely thin. `has_reviews` is decided by real review entries, not by the boilerplate reviews heading, so a company with no reviews returns a short record honestly.127- Reviews come only from what Clutch publishes; nothing is inferred by a model.128- Public profile data only. No emails scraped from behind a login, no private contact data.129- The website is the company's real homepage with referral tracking parameters removed, so it is safe as a dedupe key.130131## Troubleshooting132133- Zero rows and no error row: check `result_type`. A `profiles` run with a bad slug returns an `error` row rather than silently dropping it.134- A profile with very few fields: that company's Clutch page is genuinely thin, not a parse failure.135- Duplicates across runs: dedupe downstream on `profile_url` or `slug`, never on `name`.136- Reviews look short: raise `maxReviewsPerProfile`; page one already carries the first block.137138See `references/gotchas.md` for cost guardrails and error recovery, and `references/actor-index.md` for the Actor routing table.139140## Related Actors141142- Clutch.co Agency API (this Actor, directory mode): build the list of agencies first. https://apify.com/johnvc/clutch-agency-api?fpr=9n7kx3&fp_sid=skillrepo143- LinkedIn Company API: firmographics and headcount for a named company. https://apify.com/johnvc/linkedin-company-api?fpr=9n7kx3&fp_sid=skillrepo144- Crunchbase Company API: funding and investor data. https://apify.com/johnvc/crunchbase-company-api?fpr=9n7kx3&fp_sid=skillrepo145- G2 Reviews API: the B2B software counterpart to Clutch. https://apify.com/johnvc/g2-reviews-api?fpr=9n7kx3&fp_sid=skillrepo