> ## Documentation Index
> Fetch the complete documentation index at: https://docs.fuseai.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Create a saved search

> Store a search under a name. `type` picks the kind — `people` (the default) or `company` — and decides which language `filters` must speak: people filters are the keys POST /prospects/search takes, company filters the keys POST /companies/search takes. Either way the search opens identically in the product UI, and the created row comes back with its filters in that same search vocabulary, ready to re-send.

Exactly two of the 46 people filter fields cannot round-trip through the product's filter rail — `first_name` and `last_name` — and are rejected with 422 SAVED_SEARCH_FILTERS_UNSUPPORTED naming the field, rather than stored in a form the app cannot reopen. Every other field stores, `work_email`, `mobile_phone`, `personal_emails`, `linkedin_url`, `github_url` and `facebook_url` included. `type` is immutable: PATCH can change the title and the filters, never the kind. Titles need not be unique, but a title shared by two searches can no longer be used as `savedSearchName`.

Errors:
- `422` `VALIDATION_FAILED` — The request failed the declared schema; `param` names the offending key and `message` quotes the rule it broke.
- `422` `SAVED_SEARCH_FILTERS_UNSUPPORTED` — `filters` names `first_name` or `last_name` — the only two people filter fields with no saved-search equivalent; `param` names the field.
- `429` `RATE_LIMITED` — Per-token rate limit for this bucket exhausted; retry after the window in the RateLimit-Reset header.
- `500` `UNEXPECTED_ERROR` — The request failed inside the service; nothing was billed and the request_id identifies the failure.

Requires one of the following token scopes: search.



## OpenAPI

````yaml /openapi.json post /business/saved-searches
openapi: 3.1.0
info:
  title: Fuse Business API
  version: 1.0.0
  description: >-
    External API for lists, campaigns, prospect search and contacts.
    Authenticate with your API token as HTTP Basic. All paths are under /api/v1.
servers:
  - url: https://api.tryfuse.ai/api/v1
    description: Production
security:
  - basicAuth: []
tags:
  - name: Lists
  - name: Custom columns
  - name: Smart columns
  - name: Exports
  - name: Campaigns
  - name: Knowledge hubs
  - name: Analytics
  - name: Website intent
  - name: Account
  - name: Prospect search
  - name: Campaign steps
  - name: Scheduled sends
  - name: Campaign templates
  - name: Agents
  - name: Research
  - name: Company search
  - name: Saved searches
  - name: Folders
  - name: Contacts
paths:
  /business/saved-searches:
    post:
      tags:
        - Saved searches
      summary: Create a saved search
      description: >-
        Store a search under a name. `type` picks the kind — `people` (the
        default) or `company` — and decides which language `filters` must speak:
        people filters are the keys POST /prospects/search takes, company
        filters the keys POST /companies/search takes. Either way the search
        opens identically in the product UI, and the created row comes back with
        its filters in that same search vocabulary, ready to re-send.


        Exactly two of the 46 people filter fields cannot round-trip through the
        product's filter rail — `first_name` and `last_name` — and are rejected
        with 422 SAVED_SEARCH_FILTERS_UNSUPPORTED naming the field, rather than
        stored in a form the app cannot reopen. Every other field stores,
        `work_email`, `mobile_phone`, `personal_emails`, `linkedin_url`,
        `github_url` and `facebook_url` included. `type` is immutable: PATCH can
        change the title and the filters, never the kind. Titles need not be
        unique, but a title shared by two searches can no longer be used as
        `savedSearchName`.


        Errors:

        - `422` `VALIDATION_FAILED` — The request failed the declared schema;
        `param` names the offending key and `message` quotes the rule it broke.

        - `422` `SAVED_SEARCH_FILTERS_UNSUPPORTED` — `filters` names
        `first_name` or `last_name` — the only two people filter fields with no
        saved-search equivalent; `param` names the field.

        - `429` `RATE_LIMITED` — Per-token rate limit for this bucket exhausted;
        retry after the window in the RateLimit-Reset header.

        - `500` `UNEXPECTED_ERROR` — The request failed inside the service;
        nothing was billed and the request_id identifies the failure.


        Requires one of the following token scopes: search.
      operationId: createSavedSearch
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                title:
                  type: string
                  minLength: 1
                  maxLength: 255
                  description: >-
                    Display name of the saved search (1-255 chars); need not be
                    unique, but a shared title cannot be referenced as
                    `savedSearchName` later.
                type:
                  type: string
                  enum:
                    - people
                    - company
                  default: people
                  description: >-
                    Kind of search the filters describe: `people` (default) or
                    `company`; immutable after creation.
                filters:
                  anyOf:
                    - type: object
                      properties:
                        nameLike:
                          type: array
                          items:
                            type: string
                            maxLength: 500
                          description: >-
                            Free text: company-name fragments of at most 500
                            chars each, matched fuzzily against the company NAME
                            only (never the description). Several fragments are
                            OR-joined (provider `nameLike.anyOf`); resolve a
                            real company to its canonical name with GET
                            /companies/autocomplete?field=company.
                        domains:
                          type: array
                          items:
                            type: string
                          description: >-
                            Free text: exact website hosts (e.g. stripe.com),
                            forwarded to the provider unchanged — unlike the
                            people search this filter does NOT strip a scheme, a
                            www. prefix or a path, so send the bare host or it
                            matches nothing. Several domains are OR-joined.
                        keywords:
                          type: array
                          items:
                            type: string
                          description: >-
                            Free-text keywords matched against company names and
                            descriptions; any may match.
                        status:
                          type: array
                          items:
                            type: object
                            properties:
                              value:
                                type: string
                                description: >-
                                  The filter value — see the field's own
                                  description for its vocabulary.
                              label:
                                type: string
                                description: >-
                                  Display label for the value (required; repeat
                                  the value when you have no label).
                              status:
                                type: string
                                enum:
                                  - include
                                  - exclude
                                description: >-
                                  `include` matches the value; `exclude` removes
                                  companies carrying it (includes OR together,
                                  every exclude applies).
                            required:
                              - value
                              - label
                              - status
                          description: >-
                            Operating-status entries whose `value` is one of
                            exactly: active, acquired, closed. An off-list value
                            is not rejected by this API: the search comes back
                            empty (or fails upstream) with no error naming the
                            field, so check the value against the list first.
                            Include values are OR-joined (provider `anyOf`) and
                            every exclude value is removed (`noneOf`); this
                            filter ANDs with the others.
                        tags:
                          type: array
                          items:
                            type: object
                            properties:
                              value:
                                type: string
                                description: >-
                                  The filter value — see the field's own
                                  description for its vocabulary.
                              label:
                                type: string
                                description: >-
                                  Display label for the value (required; repeat
                                  the value when you have no label).
                              status:
                                type: string
                                enum:
                                  - include
                                  - exclude
                                description: >-
                                  `include` matches the value; `exclude` removes
                                  companies carrying it (includes OR together,
                                  every exclude applies).
                            required:
                              - value
                              - label
                              - status
                          description: >-
                            Company-tag entries whose `value` is a slug from
                            `companyTags` in GET /companies/filter-options:
                            raised-from-top-vc, venture-backed-startup,
                            is-government, is-school. An off-list value is not
                            rejected by this API: the search comes back empty
                            (or fails upstream) with no error naming the field,
                            so check the value against the list first. Include
                            values are OR-joined (provider `anyOf`) and every
                            exclude value is removed (`noneOf`); this filter
                            ANDs with the others.
                        industriesV2:
                          type: array
                          items:
                            type: object
                            properties:
                              value:
                                type: string
                                description: >-
                                  The filter value — see the field's own
                                  description for its vocabulary.
                              label:
                                type: string
                                description: >-
                                  Display label for the value (required; repeat
                                  the value when you have no label).
                              status:
                                type: string
                                enum:
                                  - include
                                  - exclude
                                description: >-
                                  `include` matches the value; `exclude` removes
                                  companies carrying it (includes OR together,
                                  every exclude applies).
                            required:
                              - value
                              - label
                              - status
                          description: >-
                            Industry entries whose `value` is one of the
                            `fiberIndustries` values in GET
                            /companies/filter-options, copied exactly as listed
                            (e.g. Software, Finance). An off-list value is not
                            rejected by this API: the search comes back empty
                            (or fails upstream) with no error naming the field,
                            so check the value against the list first. Include
                            values are OR-joined (provider `anyOf`) and every
                            exclude value is removed (`noneOf`); this filter
                            ANDs with the others.
                        linkedinIndustries:
                          type: array
                          items:
                            type: object
                            properties:
                              value:
                                type: string
                                description: >-
                                  The filter value — see the field's own
                                  description for its vocabulary.
                              label:
                                type: string
                                description: >-
                                  Display label for the value (required; repeat
                                  the value when you have no label).
                              status:
                                type: string
                                enum:
                                  - include
                                  - exclude
                                description: >-
                                  `include` matches the value; `exclude` removes
                                  companies carrying it (includes OR together,
                                  every exclude applies).
                            required:
                              - value
                              - label
                              - status
                          description: >-
                            LinkedIn-industry entries whose `value` is one of
                            the `linkedinIndustries` values in GET
                            /companies/filter-options, copied exactly as listed
                            (e.g. Software Development) — a much finer taxonomy
                            than `industriesV2`. An off-list value is not
                            rejected by this API: the search comes back empty
                            (or fails upstream) with no error naming the field,
                            so check the value against the list first. Include
                            values are OR-joined (provider `anyOf`) and every
                            exclude value is removed (`noneOf`); this filter
                            ANDs with the others.
                        crunchbaseCategories:
                          type: array
                          items:
                            type: object
                            properties:
                              value:
                                type: string
                                description: >-
                                  The filter value — see the field's own
                                  description for its vocabulary.
                              label:
                                type: string
                                description: >-
                                  Display label for the value (required; repeat
                                  the value when you have no label).
                              status:
                                type: string
                                enum:
                                  - include
                                  - exclude
                                description: >-
                                  `include` matches the value; `exclude` removes
                                  companies carrying it (includes OR together,
                                  every exclude applies).
                            required:
                              - value
                              - label
                              - status
                          description: >-
                            Crunchbase-category entries whose `value` is one of
                            the `crunchbaseIndustries` values in GET
                            /companies/filter-options, copied exactly as listed
                            (e.g. Financial Services). An off-list value is not
                            rejected by this API: the search comes back empty
                            (or fails upstream) with no error naming the field,
                            so check the value against the list first. Include
                            values are OR-joined (provider `anyOf`) and every
                            exclude value is removed (`noneOf`); this filter
                            ANDs with the others.
                        crunchbaseCategoryGroups:
                          type: array
                          items:
                            type: string
                          description: >-
                            Crunchbase category groups as plain strings copied
                            verbatim (case-sensitive) from
                            `crunchbaseCategoryGroups` in GET
                            /companies/filter-options (e.g. Financial Services)
                            — the broad parent of `crunchbaseCategories`. An
                            off-list value is not rejected by this API: the
                            search comes back empty (or fails upstream) with no
                            error naming the field, so check the value against
                            the list first. Several groups are OR-joined
                            (provider `anyOf`); this filter has no exclude form.
                        naicsCodes:
                          type: array
                          items:
                            type: object
                            properties:
                              value:
                                type: string
                                description: >-
                                  The filter value — see the field's own
                                  description for its vocabulary.
                              label:
                                type: string
                                description: >-
                                  Display label for the value (required; repeat
                                  the value when you have no label).
                              status:
                                type: string
                                enum:
                                  - include
                                  - exclude
                                description: >-
                                  `include` matches the value; `exclude` removes
                                  companies carrying it (includes OR together,
                                  every exclude applies).
                            required:
                              - value
                              - label
                              - status
                          description: >-
                            NAICS entries whose `value` is the code, not the
                            title (`naicsCodes[].code` in GET
                            /companies/filter-options, e.g. 513210 for Software
                            Publishers; 2- to 6-digit codes are all accepted, a
                            shorter code being the broader sector). An off-list
                            value is not rejected by this API: the search comes
                            back empty (or fails upstream) with no error naming
                            the field, so check the value against the list
                            first. Include values are OR-joined (provider
                            `anyOf`) and every exclude value is removed
                            (`noneOf`); this filter ANDs with the others.
                        headquartersCountryCode:
                          type: array
                          items:
                            type: object
                            properties:
                              value:
                                type: string
                                description: >-
                                  The filter value — see the field's own
                                  description for its vocabulary.
                              label:
                                type: string
                                description: >-
                                  Display label for the value (required; repeat
                                  the value when you have no label).
                              status:
                                type: string
                                enum:
                                  - include
                                  - exclude
                                description: >-
                                  `include` matches the value; `exclude` removes
                                  companies carrying it (includes OR together,
                                  every exclude applies).
                            required:
                              - value
                              - label
                              - status
                          description: >-
                            Headquarters-country entries whose `value` is the
                            country's three-letter `apiCode` from `countries` in
                            GET /companies/filter-options (e.g. USA, DEU). The
                            two-letter `isoCodeAlpha2` in the same row (US, DE)
                            is NOT accepted — the provider rejects it and the
                            whole search fails. Include values are OR-joined
                            (provider `anyOf`) and every exclude value is
                            removed (`noneOf`); this filter ANDs with the
                            others.
                        headquartersStateName:
                          type: array
                          items:
                            type: object
                            properties:
                              value:
                                type: string
                                description: >-
                                  The filter value — see the field's own
                                  description for its vocabulary.
                              label:
                                type: string
                                description: >-
                                  Display label for the value (required; repeat
                                  the value when you have no label).
                              status:
                                type: string
                                enum:
                                  - include
                                  - exclude
                                description: >-
                                  `include` matches the value; `exclude` removes
                                  companies carrying it (includes OR together,
                                  every exclude applies).
                            required:
                              - value
                              - label
                              - status
                          description: >-
                            Headquarters state/province entries whose `value` is
                            the full state or province name (e.g. Florida,
                            California).
                        headquartersCity:
                          type: array
                          items:
                            type: string
                            minLength: 1
                            maxLength: 200
                          maxItems: 25
                          description: >-
                            Up to 25 fully qualified place names from GET
                            /companies/autocomplete?field=location (e.g. Dallas,
                            Texas, United States); each is geocoded
                            independently to its city bounds and the areas are
                            OR-ed together (no exclusion). A name that geocodes
                            to nothing is dropped and the search runs on the
                            names that did resolve — take the values from the
                            typeahead so every one of them counts — and only
                            when NOT ONE of them resolves is the search refused
                            rather than run worldwide (422
                            CITY_FILTER_UNRESOLVED).
                        employeeCountV2:
                          type: object
                          properties:
                            min:
                              type: number
                              description: >-
                                Lower bound, inclusive — except on
                                `employeeCountV2`, whose lower bound is
                                exclusive (see that field).
                            max:
                              type: number
                              description: Inclusive upper bound.
                          description: >-
                            Headcount range `{ min?, max? }`; any whole number
                            is taken, but each bound snaps to one of the
                            accepted values 0, 1, 10, 50, 200, 500, 1000, 5000,
                            10000 (min rounds down, max rounds up). The lower
                            bound is then EXCLUSIVE and the upper bound
                            inclusive, so `{ min: 50 }` matches companies with
                            MORE than 50 employees; pass the bucket below the
                            headcount you want to keep.
                        revenueUSD:
                          type: object
                          properties:
                            min:
                              type: number
                              description: >-
                                Lower bound, inclusive — except on
                                `employeeCountV2`, whose lower bound is
                                exclusive (see that field).
                            max:
                              type: number
                              description: Inclusive upper bound.
                          description: >-
                            Estimated annual revenue range `{ min?, max? }`; the
                            accepted values are whole US dollars, not millions
                            (5000000 means $5M), and both bounds are inclusive.
                        totalFundingUSD:
                          type: object
                          properties:
                            min:
                              type: number
                              description: >-
                                Lower bound, inclusive — except on
                                `employeeCountV2`, whose lower bound is
                                exclusive (see that field).
                            max:
                              type: number
                              description: Inclusive upper bound.
                          description: >-
                            Total funding raised range `{ min?, max? }`; the
                            accepted values are whole US dollars, not millions
                            (5000000 means $5M), and both bounds are inclusive.
                        lastFundingUSD:
                          type: object
                          properties:
                            min:
                              type: number
                              description: >-
                                Lower bound, inclusive — except on
                                `employeeCountV2`, whose lower bound is
                                exclusive (see that field).
                            max:
                              type: number
                              description: Inclusive upper bound.
                          description: >-
                            Size range of the most recent funding round `{ min?,
                            max? }`; the accepted values are whole US dollars,
                            not millions (5000000 means $5M), and both bounds
                            are inclusive.
                        stage:
                          type: array
                          items:
                            type: object
                            properties:
                              value:
                                type: string
                                description: >-
                                  The filter value — see the field's own
                                  description for its vocabulary.
                              label:
                                type: string
                                description: >-
                                  Display label for the value (required; repeat
                                  the value when you have no label).
                              status:
                                type: string
                                enum:
                                  - include
                                  - exclude
                                description: >-
                                  `include` matches the value; `exclude` removes
                                  companies carrying it (includes OR together,
                                  every exclude applies).
                            required:
                              - value
                              - label
                              - status
                          description: >-
                            Funding-stage entries whose `value` is one of
                            exactly: pre_seed, seed, series_a, series_b,
                            series_c, series_d, series_e, series_f, series_g,
                            series_h, series_i, series_j, public, acquired,
                            closed, private_equity, venture_other,
                            no_funding_yet, unknown. No endpoint serves this
                            list — it is fixed here. An off-list value is not
                            rejected by this API: the search comes back empty
                            (or fails upstream) with no error naming the field,
                            so check the value against the list first. Include
                            values are OR-joined (provider `anyOf`) and every
                            exclude value is removed (`noneOf`); this filter
                            ANDs with the others.
                        technologies:
                          type: array
                          items:
                            type: object
                            properties:
                              value:
                                type: string
                                description: >-
                                  The filter value — see the field's own
                                  description for its vocabulary.
                              label:
                                type: string
                                description: >-
                                  Display label for the value (required; repeat
                                  the value when you have no label).
                              status:
                                type: string
                                enum:
                                  - include
                                  - exclude
                                description: >-
                                  `include` matches the value; `exclude` removes
                                  companies carrying it (includes OR together,
                                  every exclude applies).
                            required:
                              - value
                              - label
                              - status
                          description: >-
                            Technology-in-use entries whose `value` is a name
                            from the provider's predefined technology
                            vocabulary, forwarded verbatim, so it must carry the
                            product's own spelling and casing — e.g. Salesforce,
                            Kubernetes, Next.js, Google Analytics, and `AWS` for
                            Amazon Web Services. No endpoint serves this
                            vocabulary yet; the product's own picker offers a
                            curated 141-name subset. An off-list value is not
                            rejected by this API: the search comes back empty
                            (or fails upstream) with no error naming the field,
                            so check the value against the list first. Include
                            values are OR-joined (provider `anyOf`) and every
                            exclude value is removed (`noneOf`); this filter
                            ANDs with the others.
                        investors:
                          type: array
                          items:
                            type: object
                            properties:
                              value:
                                type: string
                                description: >-
                                  The filter value — see the field's own
                                  description for its vocabulary.
                              label:
                                type: string
                                description: >-
                                  Display label for the value (required; repeat
                                  the value when you have no label).
                              status:
                                type: string
                                enum:
                                  - include
                                  - exclude
                                description: >-
                                  `include` matches the value; `exclude` removes
                                  companies carrying it (includes OR together,
                                  every exclude applies).
                            required:
                              - value
                              - label
                              - status
                          description: >-
                            Investor entries whose `value` is the investor's
                            website domain — resolve names with GET
                            /companies/autocomplete?field=company&orgType=investor
                            and send the `domain` from that response, never the
                            investor's name. An off-list value is not rejected
                            by this API: the search comes back empty (or fails
                            upstream) with no error naming the field, so check
                            the value against the list first. Include values are
                            OR-joined (provider `anyOf`) and every exclude value
                            is removed (`noneOf`); this filter ANDs with the
                            others.
                        foundedOn:
                          type: object
                          properties:
                            start:
                              type: string
                              description: Earliest date, ISO-8601 (e.g. 2020-01-01).
                            end:
                              type: string
                              description: Latest date, ISO-8601 (e.g. 2024-12-31).
                          description: >-
                            Founding-date range `{ start?, end? }` as ISO-8601
                            dates.
                        lastFundedOn:
                          type: object
                          properties:
                            start:
                              type: string
                              description: Earliest date, ISO-8601 (e.g. 2020-01-01).
                            end:
                              type: string
                              description: Latest date, ISO-8601 (e.g. 2024-12-31).
                          description: >-
                            Date range of the most recent funding round, `{
                            start?, end? }` as ISO-8601 dates.
                        acceleratorsV2:
                          type: array
                          items:
                            type: object
                            properties:
                              value:
                                type: string
                                description: >-
                                  The filter value — see the field's own
                                  description for its vocabulary.
                              label:
                                type: string
                                description: >-
                                  Display label for the value (required; repeat
                                  the value when you have no label).
                              status:
                                type: string
                                enum:
                                  - include
                                  - exclude
                                description: >-
                                  `include` matches the value; `exclude` removes
                                  companies carrying it (includes OR together,
                                  every exclude applies).
                            required:
                              - value
                              - label
                              - status
                          description: >-
                            Accelerator entries whose `value` is the
                            `acceleratorSlug` from `accelerators` in GET
                            /companies/filter-options (e.g. ycombinator,
                            techstars); the `acceleratorName` in the same row is
                            NOT accepted. An off-list value is not rejected by
                            this API: the search comes back empty (or fails
                            upstream) with no error naming the field, so check
                            the value against the list first. Include values are
                            OR-joined (provider `anyOf`) and every exclude value
                            is removed (`noneOf`); this filter ANDs with the
                            others.
                        fortuneRankings:
                          type: array
                          items:
                            type: object
                            properties:
                              value:
                                type: string
                                description: >-
                                  The filter value — see the field's own
                                  description for its vocabulary.
                              label:
                                type: string
                                description: >-
                                  Display label for the value (required; repeat
                                  the value when you have no label).
                              status:
                                type: string
                                enum:
                                  - include
                                  - exclude
                                description: >-
                                  `include` matches the value; `exclude` removes
                                  companies carrying it (includes OR together,
                                  every exclude applies).
                            required:
                              - value
                              - label
                              - status
                          description: >-
                            Fortune-list entries whose `value` is one of
                            exactly: fortune-500, fortune-1000 (fortune-1000
                            contains fortune-500). Any other value is silently
                            DROPPED and the whole filter disappears, so the
                            search then runs with no ranking constraint at all
                            rather than returning nothing. Include values are
                            OR-joined (provider `anyOf`) and every exclude value
                            is removed (`noneOf`); this filter ANDs with the
                            others.
                        officeLocationsV2:
                          type: array
                          items:
                            type: object
                            properties:
                              value:
                                type: string
                                description: >-
                                  The filter value — see the field's own
                                  description for its vocabulary.
                              label:
                                type: string
                                description: >-
                                  Display label for the value (required; repeat
                                  the value when you have no label).
                              status:
                                type: string
                                enum:
                                  - include
                                  - exclude
                                description: >-
                                  `include` matches the value; `exclude` removes
                                  companies carrying it (includes OR together,
                                  every exclude applies).
                            required:
                              - value
                              - label
                              - status
                          description: >-
                            Office-location entries whose `value` is a country's
                            three-letter `apiCode` from `countries` in GET
                            /companies/filter-options (e.g. USA) — the same
                            vocabulary as `headquartersCountryCode`, but
                            matching ANY office rather than only the
                            headquarters. An off-list value is not rejected by
                            this API: the search comes back empty (or fails
                            upstream) with no error naming the field, so check
                            the value against the list first. Include values are
                            OR-joined (provider `anyOf`) and every exclude value
                            is removed (`noneOf`); this filter ANDs with the
                            others.
                        linkedinSlugs:
                          type: array
                          items:
                            type: string
                          description: >-
                            Free text: LinkedIn company slugs — only the part
                            after linkedin.com/company/ (e.g. stripe), forwarded
                            unchanged, so a full URL matches nothing. Several
                            slugs are OR-joined.
                      description: >-
                        Company filters in the search vocabulary:
                        include/exclude fields take `[{ status, value, label }]`
                        entries (`label` is required), list fields arrays of
                        strings, ranges `{ min, max }` and date ranges `{ start,
                        end }` — enum vocabularies come from GET
                        /companies/filter-options, names and places from GET
                        /companies/autocomplete. Must contain at least one
                        non-empty value.
                    - type: object
                      properties:
                        industry:
                          type: array
                          items:
                            type: object
                            properties:
                              status:
                                type: string
                                enum:
                                  - include
                                  - exclude
                                description: >-
                                  `include` matches the value; `exclude` removes
                                  profiles carrying it (includes OR together,
                                  every exclude applies).
                              value:
                                type: string
                                maxLength: 500
                                description: >-
                                  The filter value (max 500 chars); for
                                  enum-backed fields use a value GET
                                  /prospects/filter-options lists for the field
                                  — other values match nothing.
                              label:
                                type: string
                                maxLength: 500
                                description: >-
                                  Optional display label as returned by GET
                                  /prospects/filter-options; accepted and
                                  ignored.
                            required:
                              - status
                              - value
                          maxItems: 1000
                          description: >-
                            Industry of the person themselves; include/exclude
                            entries whose `value` is one of the 147 `industry`
                            values from GET /prospects/filter-options (e.g.
                            financial services). Include values are OR-joined
                            and every exclude applies; at most 1000 entries.
                        job_title_levels:
                          type: array
                          items:
                            type: object
                            properties:
                              status:
                                type: string
                                enum:
                                  - include
                                  - exclude
                                description: >-
                                  `include` matches the value; `exclude` removes
                                  profiles carrying it (includes OR together,
                                  every exclude applies).
                              value:
                                type: string
                                maxLength: 500
                                description: >-
                                  The filter value (max 500 chars); for
                                  enum-backed fields use a value GET
                                  /prospects/filter-options lists for the field
                                  — other values match nothing.
                              label:
                                type: string
                                maxLength: 500
                                description: >-
                                  Optional display label as returned by GET
                                  /prospects/filter-options; accepted and
                                  ignored.
                            required:
                              - status
                              - value
                          maxItems: 1000
                          description: >-
                            Seniority of the current job title; entries with
                            `value` one of exactly: cxo, vp, director, manager,
                            senior, entry, owner, partner, training, unpaid (the
                            `job_title_levels` list in GET
                            /prospects/filter-options). Include values are
                            OR-joined and every exclude applies; at most 1000
                            entries.
                        job_title_role:
                          type: array
                          items:
                            type: object
                            properties:
                              status:
                                type: string
                                enum:
                                  - include
                                  - exclude
                                description: >-
                                  `include` matches the value; `exclude` removes
                                  profiles carrying it (includes OR together,
                                  every exclude applies).
                              value:
                                type: string
                                maxLength: 500
                                description: >-
                                  The filter value (max 500 chars); for
                                  enum-backed fields use a value GET
                                  /prospects/filter-options lists for the field
                                  — other values match nothing.
                              label:
                                type: string
                                maxLength: 500
                                description: >-
                                  Optional display label as returned by GET
                                  /prospects/filter-options; accepted and
                                  ignored.
                            required:
                              - status
                              - value
                          maxItems: 1000
                          description: >-
                            Department of the current job title; entries with
                            `value` one of the 24 `job_title_role` values in GET
                            /prospects/filter-options (e.g. engineering, sales,
                            finance) — `jobTitleRoleToSubRole` in the same
                            response lists each role's sub-roles. Include values
                            are OR-joined and every exclude applies; at most
                            1000 entries.
                        job_title_sub_role:
                          type: array
                          items:
                            type: object
                            properties:
                              status:
                                type: string
                                enum:
                                  - include
                                  - exclude
                                description: >-
                                  `include` matches the value; `exclude` removes
                                  profiles carrying it (includes OR together,
                                  every exclude applies).
                              value:
                                type: string
                                maxLength: 500
                                description: >-
                                  The filter value (max 500 chars); for
                                  enum-backed fields use a value GET
                                  /prospects/filter-options lists for the field
                                  — other values match nothing.
                              label:
                                type: string
                                maxLength: 500
                                description: >-
                                  Optional display label as returned by GET
                                  /prospects/filter-options; accepted and
                                  ignored.
                            required:
                              - status
                              - value
                          maxItems: 1000
                          description: >-
                            Sub-department of the current job title; entries
                            with `value` one of the 106 `job_title_sub_role`
                            values in GET /prospects/filter-options (e.g.
                            software, account_executive, data_science). Include
                            values are OR-joined and every exclude applies; at
                            most 1000 entries.
                        job_company_size:
                          type: array
                          items:
                            type: object
                            properties:
                              status:
                                type: string
                                enum:
                                  - include
                                  - exclude
                                description: >-
                                  `include` matches the value; `exclude` removes
                                  profiles carrying it (includes OR together,
                                  every exclude applies).
                              value:
                                type: string
                                maxLength: 500
                                description: >-
                                  The filter value (max 500 chars); for
                                  enum-backed fields use a value GET
                                  /prospects/filter-options lists for the field
                                  — other values match nothing.
                              label:
                                type: string
                                maxLength: 500
                                description: >-
                                  Optional display label as returned by GET
                                  /prospects/filter-options; accepted and
                                  ignored.
                            required:
                              - status
                              - value
                          maxItems: 1000
                          description: >-
                            Headcount bracket of the current employer; entries
                            with `value` one of exactly: 1-10, 11-50, 51-200,
                            201-500, 501-1000, 1001-5000, 5001-10000, 10001+ —
                            brackets only, so use
                            `rangeInputs.job_company_employee_count` for an
                            arbitrary headcount range. Include values are
                            OR-joined and every exclude applies; at most 1000
                            entries.
                        job_company_inferred_revenue:
                          type: array
                          items:
                            type: object
                            properties:
                              status:
                                type: string
                                enum:
                                  - include
                                  - exclude
                                description: >-
                                  `include` matches the value; `exclude` removes
                                  profiles carrying it (includes OR together,
                                  every exclude applies).
                              value:
                                type: string
                                maxLength: 500
                                description: >-
                                  The filter value (max 500 chars); for
                                  enum-backed fields use a value GET
                                  /prospects/filter-options lists for the field
                                  — other values match nothing.
                              label:
                                type: string
                                maxLength: 500
                                description: >-
                                  Optional display label as returned by GET
                                  /prospects/filter-options; accepted and
                                  ignored.
                            required:
                              - status
                              - value
                          maxItems: 1000
                          description: >-
                            Inferred annual revenue bracket of the current
                            employer; entries with `value` one of exactly:
                            $0-$1m, $1m-$10m, $10m-$25m, $25m-$50m, $50m-$100m,
                            $100m-$250m, $250m-$500m, $500m-$1b, $1b-$10b, $10b+
                            (matched case-insensitively, so $1M-$10M also
                            works). Include values are OR-joined and every
                            exclude applies; at most 1000 entries.
                        job_company_industry:
                          type: array
                          items:
                            type: object
                            properties:
                              status:
                                type: string
                                enum:
                                  - include
                                  - exclude
                                description: >-
                                  `include` matches the value; `exclude` removes
                                  profiles carrying it (includes OR together,
                                  every exclude applies).
                              value:
                                type: string
                                maxLength: 500
                                description: >-
                                  The filter value (max 500 chars); for
                                  enum-backed fields use a value GET
                                  /prospects/filter-options lists for the field
                                  — other values match nothing.
                              label:
                                type: string
                                maxLength: 500
                                description: >-
                                  Optional display label as returned by GET
                                  /prospects/filter-options; accepted and
                                  ignored.
                            required:
                              - status
                              - value
                          maxItems: 1000
                          description: >-
                            Industry of the current employer; entries with
                            `value` one of the same 147 industry values, listed
                            under `job_company_industry` in GET
                            /prospects/filter-options. Include values are
                            OR-joined and every exclude applies; at most 1000
                            entries.
                        job_company_location_country:
                          type: array
                          items:
                            type: object
                            properties:
                              status:
                                type: string
                                enum:
                                  - include
                                  - exclude
                                description: >-
                                  `include` matches the value; `exclude` removes
                                  profiles carrying it (includes OR together,
                                  every exclude applies).
                              value:
                                type: string
                                maxLength: 500
                                description: >-
                                  The filter value (max 500 chars); for
                                  enum-backed fields use a value GET
                                  /prospects/filter-options lists for the field
                                  — other values match nothing.
                              label:
                                type: string
                                maxLength: 500
                                description: >-
                                  Optional display label as returned by GET
                                  /prospects/filter-options; accepted and
                                  ignored.
                            required:
                              - status
                              - value
                          maxItems: 1000
                          description: >-
                            Country of the current employer's headquarters;
                            entries with a lower-case `value` from the 249
                            `job_company_location_country` values in GET
                            /prospects/filter-options (e.g. united states,
                            germany) — country NAMES, never ISO codes. Include
                            values are OR-joined and every exclude applies; at
                            most 1000 entries.
                        job_company_location_region:
                          type: array
                          items:
                            type: object
                            properties:
                              status:
                                type: string
                                enum:
                                  - include
                                  - exclude
                                description: >-
                                  `include` matches the value; `exclude` removes
                                  profiles carrying it (includes OR together,
                                  every exclude applies).
                              value:
                                type: string
                                maxLength: 500
                                description: >-
                                  The filter value (max 500 chars); for
                                  enum-backed fields use a value GET
                                  /prospects/filter-options lists for the field
                                  — other values match nothing.
                              label:
                                type: string
                                maxLength: 500
                                description: >-
                                  Optional display label as returned by GET
                                  /prospects/filter-options; accepted and
                                  ignored.
                            required:
                              - status
                              - value
                          maxItems: 1000
                          description: >-
                            Region or state of the current employer's
                            headquarters; entries with a free-text lower-case
                            `value` such as california — resolve names with GET
                            /prospects/autocomplete?field=region.
                        job_company_location_continent:
                          type: array
                          items:
                            type: object
                            properties:
                              status:
                                type: string
                                enum:
                                  - include
                                  - exclude
                                description: >-
                                  `include` matches the value; `exclude` removes
                                  profiles carrying it (includes OR together,
                                  every exclude applies).
                              value:
                                type: string
                                maxLength: 500
                                description: >-
                                  The filter value (max 500 chars); for
                                  enum-backed fields use a value GET
                                  /prospects/filter-options lists for the field
                                  — other values match nothing.
                              label:
                                type: string
                                maxLength: 500
                                description: >-
                                  Optional display label as returned by GET
                                  /prospects/filter-options; accepted and
                                  ignored.
                            required:
                              - status
                              - value
                          maxItems: 1000
                          description: >-
                            Continent of the current employer's headquarters;
                            entries with `value` one of exactly: africa,
                            antarctica, asia, europe, north america, oceania,
                            south america. Include values are OR-joined and
                            every exclude applies; at most 1000 entries.
                        experience.company.location.continent:
                          type: array
                          items:
                            type: object
                            properties:
                              status:
                                type: string
                                enum:
                                  - include
                                  - exclude
                                description: >-
                                  `include` matches the value; `exclude` removes
                                  profiles carrying it (includes OR together,
                                  every exclude applies).
                              value:
                                type: string
                                maxLength: 500
                                description: >-
                                  The filter value (max 500 chars); for
                                  enum-backed fields use a value GET
                                  /prospects/filter-options lists for the field
                                  — other values match nothing.
                              label:
                                type: string
                                maxLength: 500
                                description: >-
                                  Optional display label as returned by GET
                                  /prospects/filter-options; accepted and
                                  ignored.
                            required:
                              - status
                              - value
                          maxItems: 1000
                          description: >-
                            Continent of the headquarters of any PAST employer;
                            entries with `value` one of exactly: africa,
                            antarctica, asia, europe, north america, oceania,
                            south america. Include values are OR-joined and
                            every exclude applies; at most 1000 entries.
                        experience.title.levels:
                          type: array
                          items:
                            type: object
                            properties:
                              status:
                                type: string
                                enum:
                                  - include
                                  - exclude
                                description: >-
                                  `include` matches the value; `exclude` removes
                                  profiles carrying it (includes OR together,
                                  every exclude applies).
                              value:
                                type: string
                                maxLength: 500
                                description: >-
                                  The filter value (max 500 chars); for
                                  enum-backed fields use a value GET
                                  /prospects/filter-options lists for the field
                                  — other values match nothing.
                              label:
                                type: string
                                maxLength: 500
                                description: >-
                                  Optional display label as returned by GET
                                  /prospects/filter-options; accepted and
                                  ignored.
                            required:
                              - status
                              - value
                          maxItems: 1000
                          description: >-
                            Seniority of any past job title; entries with
                            `value` one of exactly: cxo, vp, director, manager,
                            senior, entry, owner, partner, training, unpaid.
                            Include values are OR-joined and every exclude
                            applies; at most 1000 entries.
                        experience.title.role:
                          type: array
                          items:
                            type: object
                            properties:
                              status:
                                type: string
                                enum:
                                  - include
                                  - exclude
                                description: >-
                                  `include` matches the value; `exclude` removes
                                  profiles carrying it (includes OR together,
                                  every exclude applies).
                              value:
                                type: string
                                maxLength: 500
                                description: >-
                                  The filter value (max 500 chars); for
                                  enum-backed fields use a value GET
                                  /prospects/filter-options lists for the field
                                  — other values match nothing.
                              label:
                                type: string
                                maxLength: 500
                                description: >-
                                  Optional display label as returned by GET
                                  /prospects/filter-options; accepted and
                                  ignored.
                            required:
                              - status
                              - value
                          maxItems: 1000
                          description: >-
                            Department of any past job title; entries with
                            `value` one of the 24 `experience.title.role` values
                            in GET /prospects/filter-options — the same list as
                            `job_title_role`. Include values are OR-joined and
                            every exclude applies; at most 1000 entries.
                        experience.title.sub_role:
                          type: array
                          items:
                            type: object
                            properties:
                              status:
                                type: string
                                enum:
                                  - include
                                  - exclude
                                description: >-
                                  `include` matches the value; `exclude` removes
                                  profiles carrying it (includes OR together,
                                  every exclude applies).
                              value:
                                type: string
                                maxLength: 500
                                description: >-
                                  The filter value (max 500 chars); for
                                  enum-backed fields use a value GET
                                  /prospects/filter-options lists for the field
                                  — other values match nothing.
                              label:
                                type: string
                                maxLength: 500
                                description: >-
                                  Optional display label as returned by GET
                                  /prospects/filter-options; accepted and
                                  ignored.
                            required:
                              - status
                              - value
                          maxItems: 1000
                          description: >-
                            Sub-department of any past job title; entries with
                            `value` one of the 106 `experience.title.sub_role`
                            values in GET /prospects/filter-options — the same
                            list as `job_title_sub_role`. Include values are
                            OR-joined and every exclude applies; at most 1000
                            entries.
                        experience.company.location.country:
                          type: array
                          items:
                            type: object
                            properties:
                              status:
                                type: string
                                enum:
                                  - include
                                  - exclude
                                description: >-
                                  `include` matches the value; `exclude` removes
                                  profiles carrying it (includes OR together,
                                  every exclude applies).
                              value:
                                type: string
                                maxLength: 500
                                description: >-
                                  The filter value (max 500 chars); for
                                  enum-backed fields use a value GET
                                  /prospects/filter-options lists for the field
                                  — other values match nothing.
                              label:
                                type: string
                                maxLength: 500
                                description: >-
                                  Optional display label as returned by GET
                                  /prospects/filter-options; accepted and
                                  ignored.
                            required:
                              - status
                              - value
                          maxItems: 1000
                          description: >-
                            Country of the headquarters of any past employer;
                            entries with a lower-case `value` from the 249
                            `experience.company.location.country` values in GET
                            /prospects/filter-options (e.g. united states) —
                            country NAMES, never ISO codes. Include values are
                            OR-joined and every exclude applies; at most 1000
                            entries.
                        experience.company.industry:
                          type: array
                          items:
                            type: object
                            properties:
                              status:
                                type: string
                                enum:
                                  - include
                                  - exclude
                                description: >-
                                  `include` matches the value; `exclude` removes
                                  profiles carrying it (includes OR together,
                                  every exclude applies).
                              value:
                                type: string
                                maxLength: 500
                                description: >-
                                  The filter value (max 500 chars); for
                                  enum-backed fields use a value GET
                                  /prospects/filter-options lists for the field
                                  — other values match nothing.
                              label:
                                type: string
                                maxLength: 500
                                description: >-
                                  Optional display label as returned by GET
                                  /prospects/filter-options; accepted and
                                  ignored.
                            required:
                              - status
                              - value
                          maxItems: 1000
                          description: >-
                            Industry of any past employer; entries with `value`
                            one of the same 147 industry values, listed under
                            `experience.company.industry` in GET
                            /prospects/filter-options. Include values are
                            OR-joined and every exclude applies; at most 1000
                            entries.
                        languages.name:
                          type: array
                          items:
                            type: object
                            properties:
                              status:
                                type: string
                                enum:
                                  - include
                                  - exclude
                                description: >-
                                  `include` matches the value; `exclude` removes
                                  profiles carrying it (includes OR together,
                                  every exclude applies).
                              value:
                                type: string
                                maxLength: 500
                                description: >-
                                  The filter value (max 500 chars); for
                                  enum-backed fields use a value GET
                                  /prospects/filter-options lists for the field
                                  — other values match nothing.
                              label:
                                type: string
                                maxLength: 500
                                description: >-
                                  Optional display label as returned by GET
                                  /prospects/filter-options; accepted and
                                  ignored.
                            required:
                              - status
                              - value
                          maxItems: 1000
                          description: >-
                            Languages the person lists; entries with a
                            lower-case `value` from the 526 `languages.name`
                            values in GET /prospects/filter-options (e.g.
                            english, german) — language NAMES, never ISO codes.
                            Include values are OR-joined and every exclude
                            applies; at most 1000 entries.
                        location_continent:
                          type: array
                          items:
                            type: object
                            properties:
                              status:
                                type: string
                                enum:
                                  - include
                                  - exclude
                                description: >-
                                  `include` matches the value; `exclude` removes
                                  profiles carrying it (includes OR together,
                                  every exclude applies).
                              value:
                                type: string
                                maxLength: 500
                                description: >-
                                  The filter value (max 500 chars); for
                                  enum-backed fields use a value GET
                                  /prospects/filter-options lists for the field
                                  — other values match nothing.
                              label:
                                type: string
                                maxLength: 500
                                description: >-
                                  Optional display label as returned by GET
                                  /prospects/filter-options; accepted and
                                  ignored.
                            required:
                              - status
                              - value
                          maxItems: 1000
                          description: >-
                            Continent the person lives in; entries with `value`
                            one of exactly: africa, antarctica, asia, europe,
                            north america, oceania, south america. Include
                            values are OR-joined and every exclude applies; at
                            most 1000 entries.
                        location_country:
                          type: array
                          items:
                            type: object
                            properties:
                              status:
                                type: string
                                enum:
                                  - include
                                  - exclude
                                description: >-
                                  `include` matches the value; `exclude` removes
                                  profiles carrying it (includes OR together,
                                  every exclude applies).
                              value:
                                type: string
                                maxLength: 500
                                description: >-
                                  The filter value (max 500 chars); for
                                  enum-backed fields use a value GET
                                  /prospects/filter-options lists for the field
                                  — other values match nothing.
                              label:
                                type: string
                                maxLength: 500
                                description: >-
                                  Optional display label as returned by GET
                                  /prospects/filter-options; accepted and
                                  ignored.
                            required:
                              - status
                              - value
                          maxItems: 1000
                          description: >-
                            Country the person lives in; entries with a
                            lower-case `value` from the 249 `location_country`
                            values in GET /prospects/filter-options (e.g. united
                            states, united kingdom) — country NAMES, never ISO
                            codes. Include values are OR-joined and every
                            exclude applies; at most 1000 entries.
                        location_region:
                          type: array
                          items:
                            type: object
                            properties:
                              status:
                                type: string
                                enum:
                                  - include
                                  - exclude
                                description: >-
                                  `include` matches the value; `exclude` removes
                                  profiles carrying it (includes OR together,
                                  every exclude applies).
                              value:
                                type: string
                                maxLength: 500
                                description: >-
                                  The filter value (max 500 chars); for
                                  enum-backed fields use a value GET
                                  /prospects/filter-options lists for the field
                                  — other values match nothing.
                              label:
                                type: string
                                maxLength: 500
                                description: >-
                                  Optional display label as returned by GET
                                  /prospects/filter-options; accepted and
                                  ignored.
                            required:
                              - status
                              - value
                          maxItems: 1000
                          description: >-
                            Region or state the person lives in; entries with a
                            free-text lower-case `value` such as california —
                            resolve names with GET
                            /prospects/autocomplete?field=region.
                        education.degrees:
                          type: array
                          items:
                            type: object
                            properties:
                              status:
                                type: string
                                enum:
                                  - include
                                  - exclude
                                description: >-
                                  `include` matches the value; `exclude` removes
                                  profiles carrying it (includes OR together,
                                  every exclude applies).
                              value:
                                type: string
                                maxLength: 500
                                description: >-
                                  The filter value (max 500 chars); for
                                  enum-backed fields use a value GET
                                  /prospects/filter-options lists for the field
                                  — other values match nothing.
                              label:
                                type: string
                                maxLength: 500
                                description: >-
                                  Optional display label as returned by GET
                                  /prospects/filter-options; accepted and
                                  ignored.
                            required:
                              - status
                              - value
                          maxItems: 1000
                          description: >-
                            Degrees held; entries with `value` one of the 171
                            `education.degrees` values in GET
                            /prospects/filter-options (e.g. bachelors, masters,
                            master of business administration). Include values
                            are OR-joined and every exclude applies; at most
                            1000 entries.
                        experience.company.type:
                          type: array
                          items:
                            type: object
                            properties:
                              status:
                                type: string
                                enum:
                                  - include
                                  - exclude
                                description: >-
                                  `include` matches the value; `exclude` removes
                                  profiles carrying it (includes OR together,
                                  every exclude applies).
                              value:
                                type: string
                                maxLength: 500
                                description: >-
                                  The filter value (max 500 chars); for
                                  enum-backed fields use a value GET
                                  /prospects/filter-options lists for the field
                                  — other values match nothing.
                              label:
                                type: string
                                maxLength: 500
                                description: >-
                                  Optional display label as returned by GET
                                  /prospects/filter-options; accepted and
                                  ignored.
                            required:
                              - status
                              - value
                          maxItems: 1000
                          description: >-
                            Type of any past employer; entries with `value` one
                            of exactly: educational, government, nonprofit,
                            private, public, public_subsidiary. Include values
                            are OR-joined and every exclude applies; at most
                            1000 entries.
                        job_company_name:
                          anyOf:
                            - type: string
                              maxLength: 500
                            - type: array
                              items:
                                anyOf:
                                  - type: string
                                    maxLength: 500
                                  - type: object
                                    properties:
                                      status:
                                        type: string
                                        enum:
                                          - include
                                          - exclude
                                        description: >-
                                          `include` matches the value; `exclude`
                                          removes profiles carrying it (includes
                                          OR together, every exclude applies).
                                      value:
                                        type: string
                                        maxLength: 500
                                        description: >-
                                          The filter value (max 500 chars); for
                                          enum-backed fields use a value GET
                                          /prospects/filter-options lists for the
                                          field — other values match nothing.
                                      label:
                                        type: string
                                        maxLength: 500
                                        description: >-
                                          Optional display label as returned by
                                          GET /prospects/filter-options; accepted
                                          and ignored.
                                    required:
                                      - status
                                      - value
                              maxItems: 1000
                          description: >-
                            Name of the current employer, lower-case (e.g.
                            stripe); include/exclude entries, a bare string, or
                            an array of strings (bare strings are includes) —
                            resolve names with GET
                            /prospects/autocomplete?field=company.
                        job_company_website:
                          anyOf:
                            - type: string
                              maxLength: 500
                            - type: array
                              items:
                                anyOf:
                                  - type: string
                                    maxLength: 500
                                  - type: object
                                    properties:
                                      status:
                                        type: string
                                        enum:
                                          - include
                                          - exclude
                                        description: >-
                                          `include` matches the value; `exclude`
                                          removes profiles carrying it (includes
                                          OR together, every exclude applies).
                                      value:
                                        type: string
                                        maxLength: 500
                                        description: >-
                                          The filter value (max 500 chars); for
                                          enum-backed fields use a value GET
                                          /prospects/filter-options lists for the
                                          field — other values match nothing.
                                      label:
                                        type: string
                                        maxLength: 500
                                        description: >-
                                          Optional display label as returned by
                                          GET /prospects/filter-options; accepted
                                          and ignored.
                                    required:
                                      - status
                                      - value
                              maxItems: 1000
                          description: >-
                            Website domain of the current employer (e.g.
                            stripe.com — scheme, www and trailing slash are
                            stripped); same value shapes as `job_company_name`;
                            resolve with GET
                            /prospects/autocomplete?field=website.
                        full_name:
                          anyOf:
                            - type: string
                            - type: number
                            - type: boolean
                            - type: array
                              items:
                                type: string
                          description: >-
                            Free text, but matched as an EXACT lower-case term
                            against the stored full name (e.g. ada nwosu): there
                            is no partial matching, so a differently cased or
                            partial name is accepted and silently matches
                            nothing. A string, or an array of names that are
                            OR-joined (the provider caps a terms list at 1000).
                        first_name:
                          anyOf:
                            - type: string
                            - type: number
                            - type: boolean
                            - type: array
                              items:
                                type: string
                          description: >-
                            Free text, matched as an EXACT lower-case term: a
                            different case or a nickname is accepted and
                            silently matches nothing. A string, or an array of
                            names that are OR-joined. Cannot be stored in a
                            saved search (422 SAVED_SEARCH_FILTERS_UNSUPPORTED).
                        last_name:
                          anyOf:
                            - type: string
                            - type: number
                            - type: boolean
                            - type: array
                              items:
                                type: string
                          description: >-
                            Free text, matched as an EXACT lower-case term: a
                            different case or spelling is accepted and silently
                            matches nothing. A string, or an array of names that
                            are OR-joined. Cannot be stored in a saved search
                            (422 SAVED_SEARCH_FILTERS_UNSUPPORTED).
                        sex:
                          anyOf:
                            - type: string
                            - type: number
                            - type: boolean
                            - type: array
                              items:
                                type: string
                          description: >-
                            One of exactly: female, male. A string, or an array
                            of both (OR-joined).
                        work_email:
                          anyOf:
                            - type: string
                            - type: number
                            - type: boolean
                            - type: array
                              items:
                                type: string
                          description: >-
                            Free text, matched as an EXACT lower-case term
                            against the stored work email: a different case or
                            an alias is accepted and silently matches nothing. A
                            string, or an array of addresses that are OR-joined.
                        mobile_phone:
                          anyOf:
                            - type: string
                            - type: number
                            - type: boolean
                            - type: array
                              items:
                                type: string
                          description: >-
                            Free text, matched as an EXACT term, so send E.164
                            with the leading + (e.g. +14155552671); any other
                            formatting is accepted and silently matches nothing.
                            A string, or an array of numbers that are OR-joined.
                        personal_emails:
                          anyOf:
                            - type: string
                            - type: number
                            - type: boolean
                            - type: array
                              items:
                                type: string
                          description: >-
                            Free text, matched as an EXACT lower-case term
                            against every personal email on the profile: any
                            other spelling is accepted and silently matches
                            nothing. A string, or an array of addresses that are
                            OR-joined.
                        job_title:
                          anyOf:
                            - type: string
                            - type: number
                            - type: boolean
                            - type: array
                              items:
                                type: string
                          description: >-
                            Exact lower-case current job title (e.g. chief
                            financial officer); a string or an array of titles —
                            use `keywords` for partial matches and GET
                            /prospects/autocomplete?field=title for suggestions.
                        job_company_location_name:
                          anyOf:
                            - type: string
                            - type: number
                            - type: boolean
                            - type: array
                              items:
                                type: string
                          description: >-
                            Locality of the current employer's headquarters as a
                            PDL location name (e.g. san francisco, california,
                            united states); resolve with GET
                            /prospects/autocomplete?field=location.
                        location_name:
                          anyOf:
                            - type: string
                            - type: number
                            - type: boolean
                            - type: array
                              items:
                                type: string
                          description: >-
                            Where the person lives, as a PDL location name (e.g.
                            london, greater london, united kingdom); resolve
                            with GET /prospects/autocomplete?field=location.
                        linkedin_url:
                          anyOf:
                            - type: string
                            - type: number
                            - type: boolean
                            - type: array
                              items:
                                type: string
                          description: >-
                            Free text, matched as an EXACT term in the stored
                            form linkedin.com/in/<slug> — no scheme, no www., no
                            trailing slash; anything else is accepted and
                            silently matches nothing. Prefer the top-level
                            `linkedinUrl`, which IS normalised before matching.
                            A string, or an array of URLs that are OR-joined.
                        github_url:
                          anyOf:
                            - type: string
                            - type: number
                            - type: boolean
                            - type: array
                              items:
                                type: string
                          description: >-
                            Free text, matched as an EXACT term in the stored
                            form github.com/<username> — no scheme, no trailing
                            slash; anything else is accepted and silently
                            matches nothing. A string, or an array of URLs that
                            are OR-joined.
                        github_username:
                          anyOf:
                            - type: string
                            - type: number
                            - type: boolean
                            - type: array
                              items:
                                type: string
                          description: >-
                            Free text, matched as an EXACT lower-case term
                            against the stored GitHub username: a different case
                            is accepted and silently matches nothing. A string,
                            or an array of usernames that are OR-joined.
                        facebook_url:
                          anyOf:
                            - type: string
                            - type: number
                            - type: boolean
                            - type: array
                              items:
                                type: string
                          description: >-
                            Free text, matched as an EXACT term in the stored
                            form facebook.com/<slug> — no scheme, no trailing
                            slash; anything else is accepted and silently
                            matches nothing. A string, or an array of URLs that
                            are OR-joined.
                        education.school.name:
                          anyOf:
                            - type: string
                            - type: number
                            - type: boolean
                            - type: array
                              items:
                                type: string
                          description: >-
                            Lower-case name of a school attended (e.g. stanford
                            university); resolve with GET
                            /prospects/autocomplete?field=school.
                        experience.title.name:
                          anyOf:
                            - type: string
                            - type: number
                            - type: boolean
                            - type: array
                              items:
                                type: string
                          description: >-
                            Exact lower-case title held at any past job; a
                            string or an array of titles.
                        experience.company.name:
                          anyOf:
                            - type: string
                            - type: number
                            - type: boolean
                            - type: array
                              items:
                                type: string
                          description: >-
                            Lower-case name of any past employer; a string or an
                            array — resolve with GET
                            /prospects/autocomplete?field=company.
                        experience.company.website:
                          anyOf:
                            - type: string
                            - type: number
                            - type: boolean
                            - type: array
                              items:
                                type: string
                          description: >-
                            Free text: the website host of any past employer
                            (e.g. stripe.com). The scheme, www. and a trailing
                            slash are stripped and both the host+path and
                            host-only forms are tried, so a full URL still
                            matches; a host the provider does not store matches
                            nothing. A string, or an array of hosts that are
                            OR-joined.
                        job_start_date:
                          anyOf:
                            - type: string
                            - type: number
                            - type: boolean
                            - type: array
                              items:
                                type: string
                          description: >-
                            Free text, matched as an EXACT term and NOT as a
                            range: the stored start date of the current job,
                            YYYY-MM or YYYY-MM-DD exactly as stored (most
                            profiles store YYYY-MM), so 2023-05-01 does not
                            match a profile stored as 2023-05. A string, or an
                            array of dates that are OR-joined.
                        skills:
                          anyOf:
                            - type: string
                            - type: number
                            - type: boolean
                            - type: array
                              items:
                                type: string
                          description: >-
                            Lower-case skill (e.g. python); a string, or an
                            array of skills any of which may match — resolve
                            with GET /prospects/autocomplete?field=skill.
                        certifications.name:
                          anyOf:
                            - type: string
                            - type: number
                            - type: boolean
                            - type: array
                              items:
                                type: string
                          description: >-
                            Lower-case certification name (e.g. pmp); a string
                            or an array.
                        experience.company.location.name:
                          anyOf:
                            - type: string
                            - type: number
                            - type: boolean
                            - type: array
                              items:
                                type: string
                          description: >-
                            Locality of any past employer's headquarters as a
                            PDL location name.
                        keywords:
                          type: array
                          items:
                            type: string
                            maxLength: 200
                          maxItems: 25
                          description: >-
                            Free text: up to 25 terms (200 chars each), each
                            matched as a wildcard *term* against the current job
                            title only and OR-joined, so any one may match. A
                            term you write with your own * or ? wildcard is
                            passed through unchanged and is not lower-cased.
                            This is the costliest filter the provider serves, so
                            keep the list short.
                        rangeInputs:
                          type: object
                          properties:
                            job_company_employee_count:
                              type: object
                              properties:
                                min:
                                  type: number
                                  description: >-
                                    Inclusive lower bound (0 is treated as no
                                    bound).
                                max:
                                  type: number
                                  description: Inclusive upper bound.
                              description: >-
                                Headcount of the current employer; accepted
                                values are whole numbers and both bounds are
                                inclusive. A min of 0 is ignored rather than
                                applied, so cap headcount with max alone.
                            inferred_years_experience:
                              type: object
                              properties:
                                min:
                                  type: number
                                  description: >-
                                    Inclusive lower bound (0 is treated as no
                                    bound).
                                max:
                                  type: number
                                  description: Inclusive upper bound.
                              description: >-
                                Total years of professional experience; accepted
                                values are whole numbers of years and both
                                bounds are inclusive. A min of 0 is ignored
                                rather than applied.
                            job_company_total_funding_raised:
                              type: object
                              properties:
                                min:
                                  type: number
                                  description: >-
                                    Inclusive lower bound (0 is treated as no
                                    bound).
                                max:
                                  type: number
                                  description: Inclusive upper bound.
                              description: >-
                                Total funding raised by the current employer;
                                accepted values are whole US dollars, not
                                millions (10000000 means $10M), and both bounds
                                are inclusive. A min of 0 is ignored rather than
                                applied.
                          description: >-
                            Numeric range filters, each key one of exactly:
                            `job_company_employee_count`,
                            `inferred_years_experience`,
                            `job_company_total_funding_raised` (any other key is
                            rejected). Each value is `{ min?, max? }` with at
                            least one bound and min <= max; several ranges AND
                            with each other and with every other filter.
                      description: >-
                        People filters in the search vocabulary: include/exclude
                        fields take `[{ status, value }]` entries, term fields a
                        string or an array of strings, `rangeInputs` `{ min, max
                        }` ranges — every field and its accepted values are
                        listed by GET /prospects/filter-options. On this
                        endpoint a value outside a field's listed vocabulary is
                        refused with 422 VALIDATION_FAILED, naming the field and
                        the value, before anything is billed. Must contain at
                        least one non-empty value.
                  description: >-
                    Filters in the vocabulary of `type`: people filters as POST
                    /prospects/search takes them (`first_name` / `last_name`
                    cannot be stored and answer 422
                    SAVED_SEARCH_FILTERS_UNSUPPORTED), company filters as POST
                    /companies/search takes them; at least one non-empty value
                    either way.
              required:
                - title
              description: >-
                A `title` plus `filters` written in the vocabulary of `type`
                (`people` by default); the search then opens identically in the
                product UI.
      responses:
        '201':
          description: Success
          headers:
            RateLimit-Limit:
              schema:
                type: integer
              description: Requests permitted in the current window.
            RateLimit-Remaining:
              schema:
                type: integer
              description: Requests remaining in the current window.
            RateLimit-Reset:
              schema:
                type: integer
              description: Seconds until the current window resets.
          content:
            application/json:
              schema:
                type: object
                required:
                  - savedSearch
                properties:
                  savedSearch:
                    type: object
                    required:
                      - id
                      - title
                      - filters
                      - ignoredFilterKeys
                      - searchType
                      - createdAt
                      - updatedAt
                    properties:
                      id:
                        type: string
                      title:
                        type: string
                      filters:
                        type:
                          - object
                          - 'null'
                        additionalProperties: true
                        description: >-
                          Filters in the vocabulary of `searchType`; null only
                          when a stored people blob could not be translated at
                          all.
                      ignoredFilterKeys:
                        type: array
                        items:
                          type: string
                        description: >-
                          Stored keys with no equivalent search field, dropped
                          from `filters` (always empty for company searches).
                      searchType:
                        type: string
                        enum:
                          - people
                          - company
                      createdAt:
                        type:
                          - string
                          - 'null'
                        format: date-time
                      updatedAt:
                        type:
                          - string
                          - 'null'
                        format: date-time
              example:
                savedSearch:
                  id: 6a8de3161ea5e58766c32c88
                  title: CoStar Group CXOs (US)
                  createdAt: '2026-08-25T18:46:46.159Z'
                  updatedAt: '2026-08-25T18:46:46.159Z'
                  filters:
                    job_title_levels:
                      - status: include
                        value: cxo
                    location_country:
                      - status: include
                        value: united states
                    job_company_name:
                      - status: include
                        value: costar group
                  ignoredFilterKeys: []
                  searchType: people
        '400':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '402':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '409':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '422':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - basicAuth: []
components:
  schemas:
    Error:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
            message:
              type: string
            param:
              type:
                - string
                - 'null'
            doc_url:
              type:
                - string
                - 'null'
            request_id:
              type:
                - string
                - 'null'
          required:
            - code
            - message
      required:
        - error
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic
      description: >-
        Your API token (`af_…`) as the Basic-auth username, with an empty
        password.

````