Score ICP Fit
score_icp_fitScore a company against your ideal customer profile using weighted signals. Get a 0-100 ICP score, A-D tier, and per-signal breakdown as Clay-ready JSON.
Instructions
Score a company against your ideal customer profile (ICP) using weighted signals. Returns a 0 to 100 icp_score, an A to D icp_tier, and a per-signal breakdown as a flat, Clay-ready JSON row. Define your ICP with a template, scoring_config, or plain-English icp_description (which requires llm_api_key). Reads public data and writes nothing; requires an APIFY_TOKEN and consumes Apify credits per call.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| industry | No | The company's industry (from the Company Firmographic Enricher, Actor ID YlUtLWjfPpqykmB8g). | |
| template | No | Name of a prebuilt scoring config. | |
| headcount | No | Current employee headcount. Accepts a numeric string (e.g. "3000"). Sent as a string for Clay compatibility and coerced to integer at runtime. | |
| job_count | No | Number of open jobs found, from the Job Board Keyword Signal Scanner (Actor ID 4DvqpvhMR74NLcDDY). Scores via active_hiring_volume when at or above min_job_count (default 3). Accepts a numeric string. | |
| uses_clay | No | Whether the company uses Clay. Accepts a boolean-like string ("true"/"false"). Sent as a string for Clay compatibility and coerced to boolean at runtime. | |
| tech_stack | No | Comma-separated list of technologies. Used to auto-detect CRM/sequencing tools if booleans are not set. | |
| has_twitter | No | Whether a company X/Twitter profile was found, from the Company Social Presence Mapper (Actor ID 4k6CCemkgBDz18m2h). Contributes to social_presence. Accepts a boolean-like string. | |
| hq_location | No | Headquarters location from the Company Firmographic Enricher (Actor ID YlUtLWjfPpqykmB8g). Carried for reference; not currently scored. | |
| llm_api_key | No | Your OpenAI or Anthropic key, used only with icp_description. | |
| company_name | No | Optional display name of the company. | |
| crm_detected | No | Whether any CRM was detected. Accepts a boolean-like string ("true"/"false") or any non-empty CRM name (e.g. "Salesforce"). Sent as a string for Clay compatibility and coerced to boolean at runtime. Auto-derived from uses_hubspot/uses_salesforce if not set. | |
| founded_year | No | Year the company was founded, from the Company Firmographic Enricher (Actor ID YlUtLWjfPpqykmB8g). Carried for reference; not currently scored. Accepts a numeric string (e.g. "2015"). | |
| has_linkedin | No | Whether a company LinkedIn page was found, from the Company Social Presence Mapper (Actor ID 4k6CCemkgBDz18m2h) or the Domain to LinkedIn URL Resolver (Actor ID 3HtnSaqPHOg1Qg5gx). Contributes to social_presence. Accepts a boolean-like string. | |
| llm_provider | No | LLM provider for icp_description: openai or anthropic. | |
| uses_hubspot | No | Whether the company uses HubSpot. Accepts a boolean-like string ("true"/"false"). Sent as a string for Clay compatibility and coerced to boolean at runtime. | |
| employee_band | No | Firmographic employee band from the Company Firmographic Enricher (Actor ID YlUtLWjfPpqykmB8g), e.g. "201-500". Scores via employee_band_match when it is in target_employee_bands. | |
| fetch_signals | No | If true, the actor runs the GTM Hiring Signal Scraper and the GTM Tech Stack Signal Scraper for this company before scoring and fills any hiring or tech stack signal not supplied. Both bill your Apify account at their own Store prices. If a lookup fails, the row is marked degraded and names the missing signals. | |
| funding_stage | No | Funding stage (e.g. seed, series_a, series_b, growth). Used to infer recently_funded. | |
| headcount_max | No | Maximum headcount for the headcount_in_range signal. | |
| headcount_min | No | Minimum headcount for the headcount_in_range signal. | |
| company_domain | Yes | The primary domain of the company to score, e.g. clay.com | |
| gtm_role_count | No | Number of open GTM/sales roles. Scores via the gtm_role_count_strong signal when at or above min_gtm_roles (default 2). Accepts a numeric string (e.g. "8"). Sent as a string for Clay compatibility and coerced to integer at runtime. | |
| industry_match | No | Override: whether the company's industry matches your target list. | |
| max_charge_usd | No | Optional spending cap for this call, in USD, passed to the actor as max_charge_usd. The run stops before any charge that would take it past this amount and keeps every row already charged. Leave empty to rely only on the maximum charge per run set on your Apify account. | |
| previous_score | No | Previous ICP score for this company. If provided, output includes score_change and score_trend fields. | |
| scoring_config | No | JSON object of scoring weights. | |
| icp_description | No | Plain-English ICP description. Requires llm_api_key. | |
| recently_funded | No | Override: whether the company was recently funded (within funded_within_days, default 540). | |
| tier_thresholds | No | Optional. Minimum score for each tier as { "tier_a": number, "tier_b": number, "tier_c": number }. Scores at or above tier_a are A, tier_b are B, tier_c are C, else D. Defaults to 80 / 60 / 40. | |
| total_followers | No | Total social followers across platforms, from the Company Social Presence Mapper (Actor ID 4k6CCemkgBDz18m2h). Scores via strong_social_following when at or above min_total_followers (default 1000). Accepts a numeric string. | |
| uses_salesforce | No | Whether the company uses Salesforce. Accepts a boolean-like string ("true"/"false"). Sent as a string for Clay compatibility and coerced to boolean at runtime. | |
| revenue_estimate | No | Estimated annual revenue in dollars from the Company Firmographic Enricher (Actor ID YlUtLWjfPpqykmB8g). Scores via revenue_in_range. Accepts a numeric string (e.g. "50000000"). Coerced to integer at runtime. | |
| gtm_hiring_signal | No | Whether the company is actively hiring for GTM/sales roles. Accepts a boolean-like string ("true"/"false"). Sent as a string for Clay compatibility and coerced to boolean at runtime. | |
| last_funding_date | No | ISO date of last funding round (legacy field; latest_funding_date is preferred). Used to auto-detect recently_funded if the boolean is not set. | |
| seq_tool_detected | No | Whether a sales sequencing tool (Outreach, SalesLoft, Apollo, Lemlist) was detected. Accepts a boolean-like string ("true"/"false") or any non-empty tool name (e.g. "Outreach"). Sent as a string for Clay compatibility and coerced to boolean at runtime. | |
| target_industries | No | Comma-separated list of target industries for the industry_match signal. | |
| funded_within_days | No | Optional. How recent a funding round must be to count for the recently_funded signal, in days. Defaults to 540 (18 months). | |
| headcount_in_range | No | Override: whether headcount is in your target range. | |
| include_explanation | No | If true, adds a score_explanation string to the output. | |
| keyword_match_count | No | Number of target-keyword matches found, from the Job Board Keyword Signal Scanner (Actor ID 4DvqpvhMR74NLcDDY). Scores via keyword_signal_match when at or above min_keyword_matches (default 1). Accepts a numeric string. | |
| latest_funding_date | No | ISO date of the latest funding round (from C1 Funding & Press Signal Scanner when it ships). Drives recently_funded against funded_within_days. | |
| min_score_to_output | No | If set, rows scoring below this threshold are skipped from output (not pushed to dataset). Skipped rows are logged only. | |
| latest_funding_amount | No | Dollar amount of the latest funding round (from C1 when it ships). Scores via well_funded when at or above min_funding_amount (default 1000000). Accepts a numeric string (e.g. "50000000"). | |
| social_platforms_found | No | Number of official social platforms found, from the Company Social Presence Mapper (Actor ID 4k6CCemkgBDz18m2h). Scores via social_presence when at or above min_social_platforms (default 2). Accepts a numeric string. |