{
  "id": "contactout.v1.people.count",
  "object": "tool",
  "name": "Count Matching Profiles",
  "summary": "Count profiles matching search filters, with contact-coverage estimates; free.",
  "description": "Free sizing probe for a people search: takes the same filter set (title, company, skills, location, industry, and the rest) and returns total_results plus estimated_personal_emails, estimated_work_emails, and estimated_phones. Suited for checking whether a filter combination is worth paying to page through, and for tuning filters before the paid search (work-email or personal-email variant of Search People).\n\nRaw contactout#v1/people/count endpoint: input is { body, queryParams, pathParams } as the provider documents them (https://api.contactout.com/#people-count-api).",
  "category": "lookup",
  "hosted_by": "ContactOut",
  "runtime": "partner",
  "side_effects": false,
  "status": "live",
  "credits": 0,
  "price": "$0.0000",
  "providers": [
    {
      "id": "contactout",
      "name": "ContactOut",
      "price": "$0.0000"
    }
  ],
  "mcp_name": "contactout_v1_people_count",
  "input_schema": {
    "type": "object",
    "properties": {
      "body": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "Name of the person."
          },
          "job_title": {
            "maxItems": 50,
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "description": "Job titles to match (any one). Supports boolean equations with capitalized AND/OR/NOT, e.g. '(CTO OR VP Engineering) NOT consultant'."
          },
          "past_job_title": {
            "maxItems": 50,
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "description": "Job titles held in past (non-current) roles. Supports boolean equations."
          },
          "exclude_job_titles": {
            "maxItems": 50,
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "description": "Job titles to exclude from results."
          },
          "job_function": {
            "maxItems": 50,
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "description": "Functional areas, e.g. Engineering, Sales, Finance, Marketing, Human Resources, Product Management, Operations."
          },
          "seniority": {
            "maxItems": 50,
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "description": "Seniority levels: Owner / Founder, CXO, Partner, VP, Head, Director, Manager, Senior, Entry, Intern."
          },
          "current_titles_only": {
            "type": "boolean",
            "description": "Default true — match current job titles only; false also matches past titles."
          },
          "include_related_job_titles": {
            "type": "boolean",
            "description": "Include profiles with related job titles. Default false."
          },
          "match_experience": {
            "type": "string",
            "enum": [
              "current",
              "past",
              "both"
            ],
            "description": "Require job_title and company to match within the SAME experience entry. Cannot be combined with current_titles_only or company_filter."
          },
          "skills": {
            "maxItems": 50,
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "description": "Skills to match. Supports boolean equations."
          },
          "languages": {
            "maxItems": 50,
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "language": {
                  "type": "string",
                  "minLength": 1,
                  "description": "Language name, e.g. 'english'."
                },
                "proficiency": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "enum": [
                      "elementary",
                      "full_professional",
                      "limited_working",
                      "native_or_bilingual",
                      "professional_working"
                    ]
                  },
                  "description": "Accepted proficiency levels; omit for any."
                }
              },
              "required": [
                "language"
              ],
              "additionalProperties": false
            },
            "description": "Language requirements, each optionally narrowed by proficiency."
          },
          "education": {
            "maxItems": 50,
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "description": "Schools or degrees. Supports boolean equations."
          },
          "educations": {
            "maxItems": 50,
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "type": "object",
                  "properties": {
                    "school_name": {
                      "type": "string",
                      "minLength": 1
                    },
                    "field_of_study": {
                      "type": "string",
                      "minLength": 1
                    },
                    "location": {
                      "type": "string",
                      "minLength": 1
                    }
                  },
                  "required": [
                    "school_name"
                  ],
                  "additionalProperties": false
                },
                {
                  "type": "object",
                  "properties": {
                    "school_name": {
                      "type": "string",
                      "minLength": 1
                    },
                    "field_of_study": {
                      "type": "string",
                      "minLength": 1
                    },
                    "location": {
                      "type": "string",
                      "minLength": 1
                    }
                  },
                  "required": [
                    "field_of_study"
                  ],
                  "additionalProperties": false
                },
                {
                  "type": "object",
                  "properties": {
                    "school_name": {
                      "type": "string",
                      "minLength": 1
                    },
                    "field_of_study": {
                      "type": "string",
                      "minLength": 1
                    },
                    "location": {
                      "type": "string",
                      "minLength": 1
                    }
                  },
                  "required": [
                    "location"
                  ],
                  "additionalProperties": false
                }
              ],
              "description": "Provide at least one education field."
            },
            "description": "Structured education filters."
          },
          "location": {
            "maxItems": 50,
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "description": "Locations of the person."
          },
          "location_radius": {
            "type": "integer",
            "minimum": 1,
            "maximum": 500,
            "description": "Search radius in miles around the given location (city/area only)."
          },
          "current_work_location": {
            "maxItems": 50,
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "description": "Cities or countries where the person currently works."
          },
          "past_work_location": {
            "maxItems": 50,
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "description": "Cities or countries where the person previously worked."
          },
          "company": {
            "maxItems": 50,
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "description": "Company names."
          },
          "past_company": {
            "maxItems": 50,
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "description": "Companies from past (non-current) roles."
          },
          "company_filter": {
            "type": "string",
            "enum": [
              "current",
              "past",
              "past_only",
              "both"
            ],
            "description": "How company names match: current employer (default), any past employer, past only, or both."
          },
          "current_company_only": {
            "type": "boolean",
            "description": "Default true — match the current company only."
          },
          "is_currently_working": {
            "type": "boolean",
            "description": "true → only profiles with an active current role; false → only profiles without one; omit for both."
          },
          "exclude_companies": {
            "maxItems": 50,
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "description": "Company names to exclude from results."
          },
          "exclude_companies_filter": {
            "type": "string",
            "enum": [
              "current",
              "past",
              "both"
            ],
            "description": "Where the exclusion applies: current employer, past roles, or both (default)."
          },
          "domain": {
            "maxItems": 50,
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "description": "Company domains."
          },
          "industry": {
            "maxItems": 50,
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "description": "Industries (LinkedIn vocabulary, e.g. 'Computer Software'). Prefix a value with NOT to exclude it."
          },
          "keyword": {
            "type": "string",
            "minLength": 1,
            "description": "Keyword matched anywhere in the profile. Supports boolean equations."
          },
          "company_size": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "10001",
                "1_10",
                "11_50",
                "51_200",
                "201_500",
                "501_1000",
                "1001_5000",
                "5001_10000"
              ]
            },
            "description": "Employer headcount ranges."
          },
          "years_of_experience": {
            "type": "array",
            "items": {
              "type": "string",
              "pattern": "^\\d+(_\\d+)?$",
              "description": "Total years of experience. Format X_Y (min_max years), or a bare number for the open-ended top bucket; e.g. 0_1, 1_2, 3_5, 6_10, 10."
            },
            "description": "Total-experience ranges to match (any one)."
          },
          "years_in_current_role": {
            "type": "array",
            "items": {
              "type": "string",
              "pattern": "^\\d+(_\\d+)?$",
              "description": "Years in the current role. Format X_Y (min_max years), or a bare number for the open-ended top bucket; e.g. 0_2, 2_4, 4_6, 6_8, 8_10, 10."
            },
            "description": "Cannot be combined with recently_changed_jobs."
          },
          "recently_changed_jobs": {
            "type": "boolean",
            "description": "true → only profiles whose current job started within the last 3 months. Cannot be combined with years_in_current_role."
          }
        },
        "additionalProperties": false
      }
    },
    "required": [],
    "additionalProperties": false
  },
  "kind": "endpoint"
}