Score ICP Fit
score_icp_fitScore a company against your ideal customer profile (ICP) using weighted signals to get a 0-100 fit score, tier, and per-signal breakdown.
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 prebuilt template, a JSON scoring_config, or a plain-English icp_description (which requires llm_api_key). Read-only; 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, one of the six the actor ships: full_signal, saas_outbound, b2b_services, fintech, smb_local, enterprise. Alternative to scoring_config or icp_description. Call list_icp_templates to see them. | |
| 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 API key. Required only when using 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 to use with 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 fetches hiring and tech-stack signals for the company automatically before scoring. | |
| 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. Example: 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. | |
| 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. Alternative to template or icp_description. | |
| icp_description | No | Plain-English description of your target ICP. Requires llm_api_key. Alternative to template or scoring_config. | |
| 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 describing how the score was derived. | |
| 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. |