Run Prospect Engine
run_prospect_engineEnrich companies, discover job postings, find contacts, or run a full ICP-gated outreach workflow for B2B lead generation.
Instructions
A composed prospecting actor with four modes. enrich_companies resolves identity, firmographics, LinkedIn and social for each domain or company name you supply, and needs no vendor key at all. discover_jobs finds who is hiring for your keywords and resolves the real employer behind each posting, including postings a job board placed on an employer's behalf. find_contacts finds people at the companies you name, with optional email discovery and verification. full runs discovery, enrichment, ICP scoring and then contact discovery, passing only the companies at or above min_icp_score through to the contact stage. Every row comes back flat and Clay ready with per field provenance. Vendor keys are yours: you supply them, those vendors bill you directly, and the per event price covers the actor only. discover_jobs and full require a SerpApi key, which is a different vendor from the Serper key that powers people search. Note that this actor is a pass through wrapper over the live actor, so any classification behavior you see is the actor's own. Requires an APIFY_TOKEN and consumes Apify credits. Read only: it enriches and discovers, it writes nothing.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | What to run. enrich_companies resolves identity, firmographics, LinkedIn and social for each company. discover_jobs finds who is hiring for your keywords and resolves the real employer from the job description. find_contacts finds people at each company. full chains all three. Default: "enrich_companies". | |
| country | No | Two letter country code for job search, for example us or gb. Default: "us". | |
| domains | No | One domain per line. Used by enrich_companies and find_contacts. | |
| keywords | No | Roles to search for. Used by discover_jobs and full. Example: copy editor, proofreader, content editor. Default: ["copy editor", "proofreader", "content editor"]. | |
| location | No | Optional location filter for job search, for example New York. | |
| max_pages | No | 1 to 5. Each page is one SerpAPI call, so this is the main cost dial on discovery. Default: "1". | |
| score_icp | No | true to score every row against the ICP rules and tier it A to D. Default: "true". | |
| seniority | No | c_level, vp, director, manager, senior. | |
| icp_preset | No | Which scoring model to apply. "proofed_editorial" scores for a seller of managed copy editing and proofreading. "generic_b2b" scores on hiring intent, employer resolvability and headcount with no service-specific vocabulary. Default: "proofed_editorial". | |
| job_titles | No | Titles to search for when finding contacts. | |
| skip_cache | No | true to ignore the 7 day cross-run cache and recompute everything. Default: "false". | |
| departments | No | marketing, sales, engineering, product, finance, hr, operations, legal. | |
| max_results | No | Cap on postings returned per run. Keeps a broad keyword set from running away. Default: "25". | |
| remote_only | No | true to keep only postings flagged remote by the board. Default: "false". | |
| serpapi_key | No | Your SerpApi key. Required by discover_jobs and full. Distinct from a Serper key: different vendor. | |
| verify_email | No | true to verify each address. Needs a Reoon or BounceBan key. Default: "true". | |
| company_names | No | One name per line. Used when you have a name but no domain. | |
| include_email | No | true to run the email waterfall. Needs an Icypeas or Prospeo key, which you supply and are billed for directly. Default: "false". | |
| lookback_days | No | Drop postings older than this many days. Sent as a string because Clay sends every field as a string. Default: "30". | |
| min_icp_score | No | In full mode, only companies scoring at or above this go on to contact discovery. Default 45: at 25 the filter passed every keyword-discovered editorial posting, because 25 is the floor such a posting can score. Default: "45". | |
| reoon_api_key | No | Your Reoon key. First email verification provider. | |
| include_social | No | true to resolve Facebook, Instagram, X and YouTube alongside LinkedIn. Default: "true". | |
| serper_api_key | No | Your Serper.dev key. Powers people search in find_contacts, which is the highest-coverage layer. Without it the free fallback is measurably poor. | |
| icypeas_api_key | No | Your Icypeas key. Runs on Findymail misses. | |
| prospeo_api_key | No | Your Prospeo key. Runs on the residual after Findymail and Icypeas. | |
| signal_taxonomy | No | Override the default signal types. Each entry is an object with type, strength, title_keywords, and optional also_keywords and description_keywords. | |
| target_contacts | No | 1 to 25. Default: "3". | |
| company_size_max | No | Drop companies above this headcount. Same condition as the minimum. | |
| company_size_min | No | Drop companies below this headcount. Only takes effect once headcount is known, so it applies in full mode and to any discovery row that carried an employee count. Discovery alone does not enrich. | |
| exclude_staffing | No | true to drop postings from staffing and recruitment agencies. Default: "true". | |
| bounceban_api_key | No | Your BounceBan key. Second verifier, used for the catch-all case. | |
| findymail_api_key | No | Your Findymail key. First provider in the email waterfall. | |
| new_postings_only | No | true to return only postings not seen in a previous run. Default: "false". | |
| previous_run_date | No | YYYY-MM-DD watermark for delta detection when the cross-run cache is unavailable. | |
| extra_marketplaces | No | Additional marketplace names to filter out. | |
| fetch_posting_page | No | true to open the job posting when the description alone does not identify the employer. Slower, and it is what catches a job board posting on an employer's behalf. Default: "true". | |
| extra_exclude_names | No | Any company whose name contains one of these is excluded. | |
| source_timeout_secs | No | 5 to 120. A source that exceeds this is marked degraded and the run continues. Default: "30". | |
| exclude_marketplaces | No | true to drop Upwork, Fiverr, Freelancer and similar gig listings. Default: "true". |