# Waterfall ICP Search

> Waterfall ICP Search is a paid API for AI agents from agents.blitz-api.ai, paid per call via MPP, price unknown, status unknown (last checked 2026-10-14).

Finds the best-matching decision-maker at a target company by searching through a prioritized cascade of job title tiers, returning the top people from the highest-priority tier with results.

## Facts

- Endpoint: POST https://agents.blitz-api.ai/v2/search/waterfall-icp-keyword?utm_source=zero.xyz
- Price: price unknown
- Payment: MPP
- Status: unknown
- Last checked: 2026-10-14
- Activations on Zero: 0
- Provider: agents.blitz-api.ai
- Website: https://agents.blitz-api.ai
- Canonical page: https://www.zero.xyz/c/agents-blitz-api-ai-waterfall-icp-search-16e9dfc8
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_Kc7ahJhmWgxo79IUm3Vw-

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability agents-blitz-api-ai-waterfall-icp-search-16e9dfc8 -d '<json body>'
```

Example prompt: Find the best decision-maker at Salesforce (https://www.linkedin.com/company/salesforce/) using this priority list: first look for a Chief Marketing Officer or VP Marketing, then fall back to a Marketing Director or Head of Marketing, then a Marketing Manager — return up to 3 contacts.

## When to prefer this

Choose this endpoint when you already know the target company and want the single best-matching decision-maker from a ranked list of acceptable job titles — it is purpose-built for account-based outreach where you have a preferred ICP title hierarchy. Use it instead of general People Search when you need the highest-priority matching contact at one specific company, not a broad list across many companies. It is especially valuable when your ICP has a fallback logic (e.g., prefer CMO, but accept VP Marketing if no CMO exists).

## Known failure modes

- Company LinkedIn URL not found or invalid — returns empty results array
- No people match any tier in the cascade — returns empty results array
- All matching people already excluded by exclude_title filters — returns fewer results than max_results
- Cascade tiers all have very broad titles leading to unexpected matches
- Rate limiting or authentication errors if API key is missing or exhausted credits

## How this service works

Find the best decision-maker at a target company using a prioritized cascade hierarchy.

## Output

Returns an array of matched professional profiles, each tagged with the cascade tier (ICP index) that matched them. Each profile includes full name, LinkedIn URL, constructed headline, current and past work experiences (with job titles, company names, dates, and location), location details, skills, education history, about/bio text, and certifications. Results are ordered by cascade tier priority, with higher-priority tier matches appearing first.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "company_linkedin_url",
  "cascade"
 ],
 "properties": {
  "cascade": {
   "type": "array",
   "items": {
    "type": "object",
    "required": [
     "include_title"
    ],
    "properties": {
     "location": {
      "type": "array",
      "items": {
       "type": "string"
      },
      "default": [
       "WORLD"
      ],
      "example": [
       "WORLD"
      ],
      "maxItems": 50,
      "description": "Country codes of the person (not the company headquarters). Use 'WORLD' or an empty list for no restriction (up to 50 values)."
     },
     "exclude_title": {
      "type": "array",
      "items": {
       "type": "string"
      },
      "example": [
       "assistant",
       "intern",
       "junior"
      ],
      "maxItems": 50,
      "description": "Job title phrases that disqualify a person, with the same matching rules as `include_title` (up to 50). Also checked against the LinkedIn headline when `include_headline_search` is `true`."
     },
     "include_title": {
      "type": "array",
      "items": {
       "type": "string"
      },
      "example": [
       "Marketing Director",
       "Head Marketing",
       "Chief Marketing Officer"
      ],
      "maxItems": 50,
      "minItems": 1,
      "description": "Job title phrases to match, OR'd together (1 to 50). All words of a phrase must be in the title, in any order, as whole words, with no stemming or synonyms. Wrap a phrase in square brackets for an exact match. See [Keyword Filters](/guide/reference/normalization/filters)."
     },
     "include_headline_search": {
      "type": "boolean",
      "default": false,
      "example": false,
      "description": "When true, also searches the LinkedIn headline (not the About section) in addition to the job title. The person must still hold a current role at the company."
     }
    },
    "additionalProperties": false
   },
   "maxItems": 10,
   "minItems": 1,
   "description": "Ordered list of search tiers (1 to 10). Tier 1 fills `max_results` first. If it finds fewer people than `max_results`, the next tier fills the slots that are left, and so on, until `max_results` is reached or no tiers are left. People already found in an earlier tier are not returned twice."
  },
  "max_results": {
   "type": "number",
   "default": 10,
   "example": 10,
   "maximum": 100,
   "minimum": 1,
   "description": "Maximum number of results to return."
  },
  "company_linkedin_url": {
   "type": "string",
   "example
… (truncated)
```

## Response schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "results": {
   "type": "array",
   "items": {
    "type": "object",
    "properties": {
     "icp": {
      "type": "number",
      "description": "Index (1-based) of the cascade tier that matched this result."
     },
     "person": {
      "type": "object",
      "properties": {
       "skills": {
        "type": "array",
        "items": {
         "type": "string"
        }
       },
       "about_me": {
        "type": [
         "string",
         "null"
        ]
       },
       "headline": {
        "type": [
         "string",
         "null"
        ],
        "description": "Built from the person's first position as \"<job title> | @<employer>\", not the free-text headline on the LinkedIn profile."
       },
       "location": {
        "type": "object",
        "properties": {
         "city": {
          "type": [
           "string",
           "null"
          ]
         },
         "continent": {
          "type": [
           "string",
           "null"
          ]
         },
         "state_code": {
          "type": [
           "string",
           "null"
          ]
         },
         "postal_code": {
          "type": [
           "string",
           "null"
          ]
         },
         "country_code": {
          "type": [
           "string",
           "null"
          ]
         },
         "street_address": {
          "type": [
           "string",
           "null"
          ]
         }
        }
       },
       "nickname": {
        "type": [
         "string",
         "null"
        ]
       },
       "education": {
        "type": "array",
        "items": {
         "type": "object",
         "properties": {
          "degree": {
           "type": "string"
          },
          "end_date": {
           "type": [
            "string",
            "null"
           ],
           "format": "date"
          },
          "start_date": {
           "type": [
            "string",
            "null"
           ],
           "format": "date"
          },
          "school_name": {
           "type": [
            "string",
            "null"
           ]
          }
         }
        }
       },
       "full_name": {
        "type": "string"
       },
       "last_name": {
        "type": "string"
       },
       "first_name": {
        "type": "string"
       },
       "experiences": {
        "type": "array",
        "items": {
         "type": "object",
         "properties
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/agents-blitz-api-ai-waterfall-icp-search-16e9dfc8/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from agents.blitz-api.ai](https://www.zero.xyz/host/agents.blitz-api.ai/llms.txt)
