Matches Icp
matches_icpRuns the two mechanical checks — employee-count band and funding-stage
normalized membership, both include-on-null — and combines them with the
caller's industry and location judgments. Industry fit and location are NOT
decided here: the agent judges both and passes its verdicts in.
{passed, location_ok, size_ok, size_null_included, size_contested,
industry_ok, funding_stage_ok, funding_stage_null_included}. passed is
the AND of location_ok, size_ok, industry_ok, funding_stage_ok.
Size is not a pure hard gate — it includes-on-uncertain-data like funding, because Apollo undercounts privately-held / industrial firms:
size_null_includedTrue → Apollo had no headcount; included anyway.size_contestedTrue → Apollo's count is below the smallest band floor (probably an undercount); included anyway. Either flag → score that Company-size evaluation 5 (amber "verify"), not
A count in a gap between bands or above the ceiling is a confident mismatch → size_ok False (drop). Score Industry from
industry_verdict(fit → 10, uncertain → 5) and Location fromlocation_verdict(in → 10, uncertain → 5).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| employee_count | No | Candidate headcount. None when unknown. | |
| industry_verdict | Yes | The agent's industry judgment — 'fit' (confidently in an ICP industry), 'uncertain' (plausibly in, but signals thin or conflicting — kept and flagged), or 'off' (drop). | |
| location_verdict | Yes | The agent's judgment of whether the candidate's HQ lies within the configured ICP locations — 'in', 'uncertain' (plausibly in, but the location data is partial or it sits just outside a listed place — kept and flagged), or 'out' (drop). | |
| icp_funding_stages | No | Configured funding stages — optional; unset or empty makes the funding check a no-op (everything passes it). | |
| latest_funding_stage | No | Apollo's title-case stage string ('Series B', 'Seed'); None/absent under patchy coverage. | |
| icp_employee_count_ranges | Yes | Configured size ranges, each a 'min,max' pair ('25,200'), an empty side meaning unbounded ('500,', ',50'). |