Skip to main content
Glama

contacts-search

Search for contacts by person, role, tenure, industry, company headcount, company type, or recent job change using the API key owner's Sales Navigator connection.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
__requestBodyYesRequest body

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / __requestBody / allOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "companyHeadcounts": {
      -        "description": "Current company headcount ranges. Multiple values are OR'd together. Combined with other filters via AND.\n",
      -        "example": [
      -          "51-200",
      -          "201-500"
      -        ],
      -        "items": {
      -          "enum": [
      -            "Self-employed",
      -            "1-10",
      -            "11-50",
      -            "51-200",
      -            "201-500",
      -            "501-1,000",
      -            "1,001-5,000",
      -            "5,001-10,000",
      -            "10,001+"
      -          ],
      -          "type": "string"
      -        },
      -        "maxItems": 9,
      -        "minItems": 1,
      -        "type": "array"
      -      },
      -      "companyLinkedInUrls": {
      -        "description": "LinkedIn company URLs to scope the search (note: plural — pass an array even for a single company). Supports multiple companies; results are merged and deduplicated. Omit to search across all companies.\n",
      -        "example": [
      -          "https://linkedin.com/company/google"
      -        ],
      -        "items": {
      -          "format": "uri",
      -          "type": "string"
      -        },
      -        "type": "array"
      -      },
      -      "companyTypes": {
      -        "description": "Current company types. Multiple values are OR'd together. Combined with other filters via AND.\n",
      -        "example": [
      -          "Privately Held"
      -        ],
      -        "items": {
      -          "enum": [
      -            "Public Company",
      -            "Privately Held",
      -            "Non Profit",
      -            "Educational Institution",
      -            "Partnership",
      -            "Self Employed",
      -            "Self Owned",
      -            "Government Agency"
      -          ],
      -          "type": "string"
      -        },
      -        "maxItems": 8,
      -        "minItems": 1,
      -        "type": "array"
      -      },
      -      "countries": {
      -        "description": "Countries to filter contacts by location. Must be ISO 3166-1 alpha-2 codes (e.g., \"US\", \"GB\", \"DE\") — full country names are not accepted.",
      -        "example": [
      -          "US",
      -          "GB",
      -          "DE"
      -        ],
      -        "items": {
      -          "maxLength": 2,
      -          "minLength": 2,
      -          "pattern": "^[A-Za-z]{2}$",
      -          "type": "string"
      -        },
      -        "type": "array"
      -      },
      -      "cursor": {
      -        "description": "Paging handle from the previous response's `nextCursor`. The documented way to fetch the next page; mutually exclusive with `offset`. Never construct one yourself, and pass it back with the same `limit` it was issued for — the cursor marks where the next page starts, so a different `limit` shifts the window.\n",
      -        "maxLength": 100,
      -        "type": "string"
      -      },
      -      "departments": {
      -        "description": "Department (function) filter using LinkedIn Sales Navigator taxonomy. Multiple values are OR'd together. Combined with other filters via AND. All values are treated as INCLUDED — exclusion is not currently supported. This filter matches the person. For a person with several current positions, it does not identify which position matched.\n",
      -        "example": [
      -          "Sales",
      -          "Marketing"
      -        ],
      -        "items": {
      -          "enum": [
      -            "Accounting",
      -            "Administrative",
      -            "Arts and Design",
      -            "Business Development",
      -            "Community and Social Services",
      -            "Consulting",
      -            "Customer Success and Support",
      -            "Education",
      -            "Engineering",
      -            "Entrepreneurship",
      -            "Finance",
      -            "Healthcare Services",
      -            "Human Resources",
      -            "Information Technology",
      -            "Legal",
      -            "Marketing",
      -            "Media and Communication",
      -            "Military and Protective Services",
      -            "Operations",
      -            "Product Management",
      -            "Program and Project Management",
      -            "Purchasing",
      -            "Quality Assurance",
      -            "Real Estate",
      -            "Research",
      -            "Sales"
      -          ],
      -          "type": "string"
      -        },
      -        "type": "array"
      -      },
      -      "firstName": {
      -        "description": "First name of the contact to search for",
      -        "example": "John",
      -        "maxLength": 100,
      -        "type": "string"
      -      },
      -      "industries": {
      -        "description": "Current LinkedIn Sales Navigator industry display names. Letter case and surrounding whitespace are normalized. Multiple values are OR'd together. Combined with other filters via AND. See https://docs.saber.app/contacts/industry-values for the canonical values.\n",
      -        "example": [
      -          "Software Development"
      -        ],
      -        "items": {
      -          "maxLength": 200,
      -          "type": "string"
      -        },
      -        "maxItems": 20,
      -        "minItems": 1,
      -        "type": "array"
      -      },
      -      "jobTitles": {
      -        "description": "Job titles to search for (plural — pass an array)",
      -        "example": [
      -          "Engineering Manager",
      -          "VP Engineering"
      -        ],
      -        "items": {
      -          "maxLength": 200,
      -          "type": "string"
      -        },
      -        "type": "array"
      -      },
      -      "keywords": {
      -        "description": "Keywords to search for in contact profiles (e.g., skills, technologies)",
      -        "example": "Kubernetes, DevOps",
      -        "maxLength": 500,
      -        "type": "string"
      -      },
      -      "lastName": {
      -        "description": "Last name of the contact to search for",
      -        "example": "Doe",
      -        "maxLength": 100,
      -        "type": "string"
      -      },
      -      "limit": {
      -        "default": 25,
      -        "description": "Maximum number of contacts to return per page",
      -        "example": 25,
      -        "maximum": 100,
      -        "minimum": 1,
      -        "type": "integer"
      -      },
      -      "offset": {
      -        "default": 0,
      -        "description": "Zero-based offset for pagination. Mutually exclusive with `cursor` — provide one or the other. Pages starting at or past the 1000-result search ceiling are rejected with 422 and error code `PAGE_BEYOND_CEILING` (distinct from the connector-required 422); a page that merely runs past it is clamped to the remaining rows.\n",
      -        "example": 0,
      -        "maximum": 9007199254740991,
      -        "minimum": 0,
      -        "type": "integer"
      -      },
      -      "recentlyChangedJobs": {
      -        "description": "When true, uses Sales Navigator's Changed jobs filter. LinkedIn controls this rolling window and has no caller-selected start date. Approximately 90 days is an unverified working assumption.\n",
      -        "example": true,
      -        "type": "boolean"
      -      },
      -      "seniorityLevels": {
      -        "description": "Seniority level filter using LinkedIn Sales Navigator taxonomy. Multiple values are OR'd together. Combined with other filters via AND. All values are treated as INCLUDED — exclusion is not currently supported. This filter matches the person. For a person with several current positions, it does not identify which position matched.\n",
      -        "example": [
      -          "CXO",
      -          "Vice President",
      -          "Director"
      -        ],
      -        "items": {
      -          "enum": [
      -            "Owner / Partner",
      -            "CXO",
      -            "Vice President",
      -            "Director",
      -            "Experienced Manager",
      -            "Entry Level Manager",
      -            "Strategic",
      -            "Senior",
      -            "Entry Level",
      -            "In Training"
      -          ],
      -          "type": "string"
      -        },
      -        "type": "array"
      -      },
      -      "yearsAtCurrentCompany": {
      -        "description": "Sales Navigator's Years at current company ranges. Multiple values are OR'd together. Combined with other filters via AND. This filter matches the person. For a person with several current positions, it does not identify which position matched.\n",
      -        "example": [
      -          "3 to 5 years"
      -        ],
      -        "items": {
      -          "enum": [
      -            "Less than 1 year",
      -            "1 to 2 years",
      -            "3 to 5 years",
      -            "6 to 10 years",
      -            "More than 10 years"
      -          ],
      -          "type": "string"
      -        },
      -        "maxItems": 5,
      -        "minItems": 1,
      -        "type": "array"
      -      },
      -      "yearsInCurrentPosition": {
      -        "description": "Sales Navigator's Years in current position ranges. Multiple values are OR'd together. Combined with other filters via AND. This filter matches the person. For a person with several current positions, it does not identify which position matched.\n",
      -        "example": [
      -          "Less than 1 year"
      -        ],
      -        "items": {
      -          "enum": [
      -            "Less than 1 year",
      -            "1 to 2 years",
      -            "3 to 5 years",
      -            "6 to 10 years",
      -            "More than 10 years"
      -          ],
      -          "type": "string"
      -        },
      -        "maxItems": 5,
      -        "minItems": 1,
      -        "type": "array"
      -      }
      -    },
      -    "type": "object"
      -  },
      -  {
      -    "anyOf": [
      -      {},
      -      {},
      -      {},
      -      {},
      -      {},
      -      {},
      -      {},
      -      {},
      -      {},
      -      {},
      -      {},
      -      {},
      -      {},
      -      {}
      -    ]
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "companyHeadcounts": {
      +        "description": "Current company headcount ranges. Multiple values are OR'd together. Combined with other filters via AND.\n",
      +        "example": [
      +          "51-200",
      +          "201-500"
      +        ],
      +        "items": {
      +          "enum": [
      +            "Self-employed",
      +            "1-10",
      +            "11-50",
      +            "51-200",
      +            "201-500",
      +            "501-1,000",
      +            "1,001-5,000",
      +            "5,001-10,000",
      +            "10,001+"
      +          ],
      +          "type": "string"
      +        },
      +        "maxItems": 9,
      +        "minItems": 1,
      +        "type": "array"
      +      },
      +      "companyLinkedInUrls": {
      +        "description": "LinkedIn company URLs to scope the search (note: plural — pass an array even for a single company). Supports multiple companies; results are merged and deduplicated. Omit to search across all companies.\n",
      +        "example": [
      +          "https://linkedin.com/company/google"
      +        ],
      +        "items": {
      +          "format": "uri",
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "companyTypes": {
      +        "description": "Current company types. Multiple values are OR'd together. Combined with other filters via AND.\n",
      +        "example": [
      +          "Privately Held"
      +        ],
      +        "items": {
      +          "enum": [
      +            "Public Company",
      +            "Privately Held",
      +            "Non Profit",
      +            "Educational Institution",
      +            "Partnership",
      +            "Self Employed",
      +            "Self Owned",
      +            "Government Agency"
      +          ],
      +          "type": "string"
      +        },
      +        "maxItems": 8,
      +        "minItems": 1,
      +        "type": "array"
      +      },
      +      "countries": {
      +        "description": "Countries to filter contacts by location. Must be ISO 3166-1 alpha-2 codes (e.g., \"US\", \"GB\", \"DE\") — full country names are not accepted.",
      +        "example": [
      +          "US",
      +          "GB",
      +          "DE"
      +        ],
      +        "items": {
      +          "maxLength": 2,
      +          "minLength": 2,
      +          "pattern": "^[A-Za-z]{2}$",
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "cursor": {
      +        "description": "Paging handle from the previous response's `nextCursor`. The documented way to fetch the next page; mutually exclusive with `offset`. Never construct one yourself. Pass it back with the same filters and `limit`. The cursor keeps the pagination session on the connector that served its first page. If that connector becomes unavailable, restart from page 1. Invalid, expired, and older cursor formats return `422 INVALID_CURSOR`.\n",
      +        "maxLength": 100,
      +        "type": "string"
      +      },
      +      "departments": {
      +        "description": "Department (function) filter using LinkedIn Sales Navigator taxonomy. Multiple values are OR'd together. Combined with other filters via AND. All values are treated as INCLUDED — exclusion is not currently supported. This filter matches the person. For a person with several current positions, it does not identify which position matched.\n",
      +        "example": [
      +          "Sales",
      +          "Marketing"
      +        ],
      +        "items": {
      +          "enum": [
      +            "Accounting",
      +            "Administrative",
      +            "Arts and Design",
      +            "Business Development",
      +            "Community and Social Services",
      +            "Consulting",
      +            "Customer Success and Support",
      +            "Education",
      +            "Engineering",
      +            "Entrepreneurship",
      +            "Finance",
      +            "Healthcare Services",
      +            "Human Resources",
      +            "Information Technology",
      +            "Legal",
      +            "Marketing",
      +            "Media and Communication",
      +            "Military and Protective Services",
      +            "Operations",
      +            "Product Management",
      +            "Program and Project Management",
      +            "Purchasing",
      +            "Quality Assurance",
      +            "Real Estate",
      +            "Research",
      +            "Sales"
      +          ],
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "firstName": {
      +        "description": "First name of the contact to search for",
      +        "example": "John",
      +        "maxLength": 100,
      +        "type": "string"
      +      },
      +      "industries": {
      +        "description": "Current LinkedIn Sales Navigator industry display names. Letter case and surrounding whitespace are normalized. Multiple values are OR'd together. Combined with other filters via AND. See https://docs.saber.app/contacts/industry-values for the canonical values.\n",
      +        "example": [
      +          "Software Development"
      +        ],
      +        "items": {
      +          "maxLength": 200,
      +          "type": "string"
      +        },
      +        "maxItems": 20,
      +        "minItems": 1,
      +        "type": "array"
      +      },
      +      "jobTitles": {
      +        "description": "Job titles to search for (plural — pass an array)",
      +        "example": [
      +          "Engineering Manager",
      +          "VP Engineering"
      +        ],
      +        "items": {
      +          "maxLength": 200,
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "keywords": {
      +        "description": "Keywords to search for in contact profiles (e.g., skills, technologies)",
      +        "example": "Kubernetes, DevOps",
      +        "maxLength": 500,
      +        "type": "string"
      +      },
      +      "lastName": {
      +        "description": "Last name of the contact to search for",
      +        "example": "Doe",
      +        "maxLength": 100,
      +        "type": "string"
      +      },
      +      "limit": {
      +        "default": 25,
      +        "description": "Maximum number of contacts to return per page",
      +        "example": 25,
      +        "maximum": 100,
      +        "minimum": 1,
      +        "type": "integer"
      +      },
      +      "offset": {
      +        "default": 0,
      +        "description": "Zero-based offset for pagination. Mutually exclusive with `cursor` — provide one or the other. Pages starting at or past the 1000-result search ceiling are rejected with 422 and error code `PAGE_BEYOND_CEILING` (distinct from the connector-required 422); a page that merely runs past it is clamped to the remaining rows. This compatibility field does not keep successive requests on one Sales Navigator connector. Use `cursor` for safe pagination.\n",
      +        "example": 0,
      +        "maximum": 9007199254740991,
      +        "minimum": 0,
      +        "type": "integer"
      +      },
      +      "recentlyChangedJobs": {
      +        "description": "When true, uses Sales Navigator's Changed jobs filter. LinkedIn controls this rolling window and has no caller-selected start date. Approximately 90 days is an unverified working assumption.\n",
      +        "example": true,
      +        "type": "boolean"
      +      },
      +      "seniorityLevels": {
      +        "description": "Seniority level filter using LinkedIn Sales Navigator taxonomy. Multiple values are OR'd together. Combined with other filters via AND. All values are treated as INCLUDED — exclusion is not currently supported. This filter matches the person. For a person with several current positions, it does not identify which position matched.\n",
      +        "example": [
      +          "CXO",
      +          "Vice President",
      +          "Director"
      +        ],
      +        "items": {
      +          "enum": [
      +            "Owner / Partner",
      +            "CXO",
      +            "Vice President",
      +            "Director",
      +            "Experienced Manager",
      +            "Entry Level Manager",
      +            "Strategic",
      +            "Senior",
      +            "Entry Level",
      +            "In Training"
      +          ],
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "yearsAtCurrentCompany": {
      +        "description": "Sales Navigator's Years at current company ranges. Multiple values are OR'd together. Combined with other filters via AND. This filter matches the person. For a person with several current positions, it does not identify which position matched.\n",
      +        "example": [
      +          "3 to 5 years"
      +        ],
      +        "items": {
      +          "enum": [
      +            "Less than 1 year",
      +            "1 to 2 years",
      +            "3 to 5 years",
      +            "6 to 10 years",
      +            "More than 10 years"
      +          ],
      +          "type": "string"
      +        },
      +        "maxItems": 5,
      +        "minItems": 1,
      +        "type": "array"
      +      },
      +      "yearsInCurrentPosition": {
      +        "description": "Sales Navigator's Years in current position ranges. Multiple values are OR'd together. Combined with other filters via AND. This filter matches the person. For a person with several current positions, it does not identify which position matched.\n",
      +        "example": [
      +          "Less than 1 year"
      +        ],
      +        "items": {
      +          "enum": [
      +            "Less than 1 year",
      +            "1 to 2 years",
      +            "3 to 5 years",
      +            "6 to 10 years",
      +            "More than 10 years"
      +          ],
      +          "type": "string"
      +        },
      +        "maxItems": 5,
      +        "minItems": 1,
      +        "type": "array"
      +      }
      +    },
      +    "type": "object"
      +  },
      +  {
      +    "anyOf": [
      +      {},
      +      {},
      +      {},
      +      {},
      +      {},
      +      {},
      +      {},
      +      {},
      +      {},
      +      {},
      +      {},
      +      {},
      +      {},
      +      {}
      +    ]
      +  }
      +]
  2. Changed1 schema field changed
    • changedInput schema / properties / __requestBody / allOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "companyHeadcounts": {
      -        "description": "Current company headcount ranges. Multiple values are OR'd together. Combined with other filters via AND.\n",
      -        "example": [
      -          "51-200",
      -          "201-500"
      -        ],
      -        "items": {
      -          "enum": [
      -            "Self-employed",
      -            "1-10",
      -            "11-50",
      -            "51-200",
      -            "201-500",
      -            "501-1,000",
      -            "1,001-5,000",
      -            "5,001-10,000",
      -            "10,001+"
      -          ],
      -          "type": "string"
      -        },
      -        "maxItems": 9,
      -        "minItems": 1,
      -        "type": "array"
      -      },
      -      "companyLinkedInUrls": {
      -        "description": "LinkedIn company URLs to scope the search (note: plural — pass an array even for a single company). Supports multiple companies; results are merged and deduplicated. Omit to search across all companies.\n",
      -        "example": [
      -          "https://linkedin.com/company/google"
      -        ],
      -        "items": {
      -          "format": "uri",
      -          "type": "string"
      -        },
      -        "type": "array"
      -      },
      -      "companyTypes": {
      -        "description": "Current company types. Multiple values are OR'd together. Combined with other filters via AND.\n",
      -        "example": [
      -          "Privately Held"
      -        ],
      -        "items": {
      -          "enum": [
      -            "Public Company",
      -            "Privately Held",
      -            "Non Profit",
      -            "Educational Institution",
      -            "Partnership",
      -            "Self Employed",
      -            "Self Owned",
      -            "Government Agency"
      -          ],
      -          "type": "string"
      -        },
      -        "maxItems": 8,
      -        "minItems": 1,
      -        "type": "array"
      -      },
      -      "countries": {
      -        "description": "Countries to filter contacts by location. Must be ISO 3166-1 alpha-2 codes (e.g., \"US\", \"GB\", \"DE\") — full country names are not accepted.",
      -        "example": [
      -          "US",
      -          "GB",
      -          "DE"
      -        ],
      -        "items": {
      -          "maxLength": 2,
      -          "minLength": 2,
      -          "pattern": "^[A-Za-z]{2}$",
      -          "type": "string"
      -        },
      -        "type": "array"
      -      },
      -      "cursor": {
      -        "description": "Paging handle from the previous response's `nextCursor`. The documented way to fetch the next page; mutually exclusive with `offset`. Never construct one yourself, and pass it back with the same `limit` it was issued for — the cursor marks where the next page starts, so a different `limit` shifts the window.\n",
      -        "maxLength": 100,
      -        "type": "string"
      -      },
      -      "departments": {
      -        "description": "Department (function) filter using LinkedIn Sales Navigator taxonomy. Multiple values are OR'd together. Combined with other filters via AND. All values are treated as INCLUDED — exclusion is not currently supported.\n",
      -        "example": [
      -          "Sales",
      -          "Marketing"
      -        ],
      -        "items": {
      -          "enum": [
      -            "Accounting",
      -            "Administrative",
      -            "Arts and Design",
      -            "Business Development",
      -            "Community and Social Services",
      -            "Consulting",
      -            "Customer Success and Support",
      -            "Education",
      -            "Engineering",
      -            "Entrepreneurship",
      -            "Finance",
      -            "Healthcare Services",
      -            "Human Resources",
      -            "Information Technology",
      -            "Legal",
      -            "Marketing",
      -            "Media and Communication",
      -            "Military and Protective Services",
      -            "Operations",
      -            "Product Management",
      -            "Program and Project Management",
      -            "Purchasing",
      -            "Quality Assurance",
      -            "Real Estate",
      -            "Research",
      -            "Sales"
      -          ],
      -          "type": "string"
      -        },
      -        "type": "array"
      -      },
      -      "firstName": {
      -        "description": "First name of the contact to search for",
      -        "example": "John",
      -        "maxLength": 100,
      -        "type": "string"
      -      },
      -      "industries": {
      -        "description": "Current LinkedIn Sales Navigator industry display names. Letter case and surrounding whitespace are normalized. Multiple values are OR'd together. Combined with other filters via AND. See https://docs.saber.app/contacts/industry-values for the canonical values.\n",
      -        "example": [
      -          "Software Development"
      -        ],
      -        "items": {
      -          "maxLength": 200,
      -          "type": "string"
      -        },
      -        "maxItems": 20,
      -        "minItems": 1,
      -        "type": "array"
      -      },
      -      "jobTitles": {
      -        "description": "Job titles to search for (plural — pass an array)",
      -        "example": [
      -          "Engineering Manager",
      -          "VP Engineering"
      -        ],
      -        "items": {
      -          "maxLength": 200,
      -          "type": "string"
      -        },
      -        "type": "array"
      -      },
      -      "keywords": {
      -        "description": "Keywords to search for in contact profiles (e.g., skills, technologies)",
      -        "example": "Kubernetes, DevOps",
      -        "maxLength": 500,
      -        "type": "string"
      -      },
      -      "lastName": {
      -        "description": "Last name of the contact to search for",
      -        "example": "Doe",
      -        "maxLength": 100,
      -        "type": "string"
      -      },
      -      "limit": {
      -        "default": 25,
      -        "description": "Maximum number of contacts to return per page",
      -        "example": 25,
      -        "maximum": 100,
      -        "minimum": 1,
      -        "type": "integer"
      -      },
      -      "offset": {
      -        "default": 0,
      -        "description": "Zero-based offset for pagination. Mutually exclusive with `cursor` — provide one or the other. Pages starting at or past the 1000-result search ceiling are rejected with 422 and error code `PAGE_BEYOND_CEILING` (distinct from the connector-required 422); a page that merely runs past it is clamped to the remaining rows.\n",
      -        "example": 0,
      -        "maximum": 9007199254740991,
      -        "minimum": 0,
      -        "type": "integer"
      -      },
      -      "recentlyChangedJobs": {
      -        "description": "When true, uses Sales Navigator's Changed jobs filter. LinkedIn controls this rolling window and has no caller-selected start date. Approximately 90 days is an unverified working assumption.\n",
      -        "example": true,
      -        "type": "boolean"
      -      },
      -      "seniorityLevels": {
      -        "description": "Seniority level filter using LinkedIn Sales Navigator taxonomy. Multiple values are OR'd together. Combined with other filters via AND. All values are treated as INCLUDED — exclusion is not currently supported.\n",
      -        "example": [
      -          "CXO",
      -          "Vice President",
      -          "Director"
      -        ],
      -        "items": {
      -          "enum": [
      -            "Owner / Partner",
      -            "CXO",
      -            "Vice President",
      -            "Director",
      -            "Experienced Manager",
      -            "Entry Level Manager",
      -            "Strategic",
      -            "Senior",
      -            "Entry Level",
      -            "In Training"
      -          ],
      -          "type": "string"
      -        },
      -        "type": "array"
      -      },
      -      "yearsAtCurrentCompany": {
      -        "description": "Sales Navigator's Years at current company ranges. Multiple values are OR'd together. Combined with other filters via AND.\n",
      -        "example": [
      -          "3 to 5 years"
      -        ],
      -        "items": {
      -          "enum": [
      -            "Less than 1 year",
      -            "1 to 2 years",
      -            "3 to 5 years",
      -            "6 to 10 years",
      -            "More than 10 years"
      -          ],
      -          "type": "string"
      -        },
      -        "maxItems": 5,
      -        "minItems": 1,
      -        "type": "array"
      -      },
      -      "yearsInCurrentPosition": {
      -        "description": "Sales Navigator's Years in current position ranges. Multiple values are OR'd together. Combined with other filters via AND.\n",
      -        "example": [
      -          "Less than 1 year"
      -        ],
      -        "items": {
      -          "enum": [
      -            "Less than 1 year",
      -            "1 to 2 years",
      -            "3 to 5 years",
      -            "6 to 10 years",
      -            "More than 10 years"
      -          ],
      -          "type": "string"
      -        },
      -        "maxItems": 5,
      -        "minItems": 1,
      -        "type": "array"
      -      }
      -    },
      -    "type": "object"
      -  },
      -  {
      -    "anyOf": [
      -      {},
      -      {},
      -      {},
      -      {},
      -      {},
      -      {},
      -      {},
      -      {},
      -      {},
      -      {},
      -      {},
      -      {},
      -      {},
      -      {}
      -    ]
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "companyHeadcounts": {
      +        "description": "Current company headcount ranges. Multiple values are OR'd together. Combined with other filters via AND.\n",
      +        "example": [
      +          "51-200",
      +          "201-500"
      +        ],
      +        "items": {
      +          "enum": [
      +            "Self-employed",
      +            "1-10",
      +            "11-50",
      +            "51-200",
      +            "201-500",
      +            "501-1,000",
      +            "1,001-5,000",
      +            "5,001-10,000",
      +            "10,001+"
      +          ],
      +          "type": "string"
      +        },
      +        "maxItems": 9,
      +        "minItems": 1,
      +        "type": "array"
      +      },
      +      "companyLinkedInUrls": {
      +        "description": "LinkedIn company URLs to scope the search (note: plural — pass an array even for a single company). Supports multiple companies; results are merged and deduplicated. Omit to search across all companies.\n",
      +        "example": [
      +          "https://linkedin.com/company/google"
      +        ],
      +        "items": {
      +          "format": "uri",
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "companyTypes": {
      +        "description": "Current company types. Multiple values are OR'd together. Combined with other filters via AND.\n",
      +        "example": [
      +          "Privately Held"
      +        ],
      +        "items": {
      +          "enum": [
      +            "Public Company",
      +            "Privately Held",
      +            "Non Profit",
      +            "Educational Institution",
      +            "Partnership",
      +            "Self Employed",
      +            "Self Owned",
      +            "Government Agency"
      +          ],
      +          "type": "string"
      +        },
      +        "maxItems": 8,
      +        "minItems": 1,
      +        "type": "array"
      +      },
      +      "countries": {
      +        "description": "Countries to filter contacts by location. Must be ISO 3166-1 alpha-2 codes (e.g., \"US\", \"GB\", \"DE\") — full country names are not accepted.",
      +        "example": [
      +          "US",
      +          "GB",
      +          "DE"
      +        ],
      +        "items": {
      +          "maxLength": 2,
      +          "minLength": 2,
      +          "pattern": "^[A-Za-z]{2}$",
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "cursor": {
      +        "description": "Paging handle from the previous response's `nextCursor`. The documented way to fetch the next page; mutually exclusive with `offset`. Never construct one yourself, and pass it back with the same `limit` it was issued for — the cursor marks where the next page starts, so a different `limit` shifts the window.\n",
      +        "maxLength": 100,
      +        "type": "string"
      +      },
      +      "departments": {
      +        "description": "Department (function) filter using LinkedIn Sales Navigator taxonomy. Multiple values are OR'd together. Combined with other filters via AND. All values are treated as INCLUDED — exclusion is not currently supported. This filter matches the person. For a person with several current positions, it does not identify which position matched.\n",
      +        "example": [
      +          "Sales",
      +          "Marketing"
      +        ],
      +        "items": {
      +          "enum": [
      +            "Accounting",
      +            "Administrative",
      +            "Arts and Design",
      +            "Business Development",
      +            "Community and Social Services",
      +            "Consulting",
      +            "Customer Success and Support",
      +            "Education",
      +            "Engineering",
      +            "Entrepreneurship",
      +            "Finance",
      +            "Healthcare Services",
      +            "Human Resources",
      +            "Information Technology",
      +            "Legal",
      +            "Marketing",
      +            "Media and Communication",
      +            "Military and Protective Services",
      +            "Operations",
      +            "Product Management",
      +            "Program and Project Management",
      +            "Purchasing",
      +            "Quality Assurance",
      +            "Real Estate",
      +            "Research",
      +            "Sales"
      +          ],
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "firstName": {
      +        "description": "First name of the contact to search for",
      +        "example": "John",
      +        "maxLength": 100,
      +        "type": "string"
      +      },
      +      "industries": {
      +        "description": "Current LinkedIn Sales Navigator industry display names. Letter case and surrounding whitespace are normalized. Multiple values are OR'd together. Combined with other filters via AND. See https://docs.saber.app/contacts/industry-values for the canonical values.\n",
      +        "example": [
      +          "Software Development"
      +        ],
      +        "items": {
      +          "maxLength": 200,
      +          "type": "string"
      +        },
      +        "maxItems": 20,
      +        "minItems": 1,
      +        "type": "array"
      +      },
      +      "jobTitles": {
      +        "description": "Job titles to search for (plural — pass an array)",
      +        "example": [
      +          "Engineering Manager",
      +          "VP Engineering"
      +        ],
      +        "items": {
      +          "maxLength": 200,
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "keywords": {
      +        "description": "Keywords to search for in contact profiles (e.g., skills, technologies)",
      +        "example": "Kubernetes, DevOps",
      +        "maxLength": 500,
      +        "type": "string"
      +      },
      +      "lastName": {
      +        "description": "Last name of the contact to search for",
      +        "example": "Doe",
      +        "maxLength": 100,
      +        "type": "string"
      +      },
      +      "limit": {
      +        "default": 25,
      +        "description": "Maximum number of contacts to return per page",
      +        "example": 25,
      +        "maximum": 100,
      +        "minimum": 1,
      +        "type": "integer"
      +      },
      +      "offset": {
      +        "default": 0,
      +        "description": "Zero-based offset for pagination. Mutually exclusive with `cursor` — provide one or the other. Pages starting at or past the 1000-result search ceiling are rejected with 422 and error code `PAGE_BEYOND_CEILING` (distinct from the connector-required 422); a page that merely runs past it is clamped to the remaining rows.\n",
      +        "example": 0,
      +        "maximum": 9007199254740991,
      +        "minimum": 0,
      +        "type": "integer"
      +      },
      +      "recentlyChangedJobs": {
      +        "description": "When true, uses Sales Navigator's Changed jobs filter. LinkedIn controls this rolling window and has no caller-selected start date. Approximately 90 days is an unverified working assumption.\n",
      +        "example": true,
      +        "type": "boolean"
      +      },
      +      "seniorityLevels": {
      +        "description": "Seniority level filter using LinkedIn Sales Navigator taxonomy. Multiple values are OR'd together. Combined with other filters via AND. All values are treated as INCLUDED — exclusion is not currently supported. This filter matches the person. For a person with several current positions, it does not identify which position matched.\n",
      +        "example": [
      +          "CXO",
      +          "Vice President",
      +          "Director"
      +        ],
      +        "items": {
      +          "enum": [
      +            "Owner / Partner",
      +            "CXO",
      +            "Vice President",
      +            "Director",
      +            "Experienced Manager",
      +            "Entry Level Manager",
      +            "Strategic",
      +            "Senior",
      +            "Entry Level",
      +            "In Training"
      +          ],
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "yearsAtCurrentCompany": {
      +        "description": "Sales Navigator's Years at current company ranges. Multiple values are OR'd together. Combined with other filters via AND. This filter matches the person. For a person with several current positions, it does not identify which position matched.\n",
      +        "example": [
      +          "3 to 5 years"
      +        ],
      +        "items": {
      +          "enum": [
      +            "Less than 1 year",
      +            "1 to 2 years",
      +            "3 to 5 years",
      +            "6 to 10 years",
      +            "More than 10 years"
      +          ],
      +          "type": "string"
      +        },
      +        "maxItems": 5,
      +        "minItems": 1,
      +        "type": "array"
      +      },
      +      "yearsInCurrentPosition": {
      +        "description": "Sales Navigator's Years in current position ranges. Multiple values are OR'd together. Combined with other filters via AND. This filter matches the person. For a person with several current positions, it does not identify which position matched.\n",
      +        "example": [
      +          "Less than 1 year"
      +        ],
      +        "items": {
      +          "enum": [
      +            "Less than 1 year",
      +            "1 to 2 years",
      +            "3 to 5 years",
      +            "6 to 10 years",
      +            "More than 10 years"
      +          ],
      +          "type": "string"
      +        },
      +        "maxItems": 5,
      +        "minItems": 1,
      +        "type": "array"
      +      }
      +    },
      +    "type": "object"
      +  },
      +  {
      +    "anyOf": [
      +      {},
      +      {},
      +      {},
      +      {},
      +      {},
      +      {},
      +      {},
      +      {},
      +      {},
      +      {},
      +      {},
      +      {},
      +      {},
      +      {}
      +    ]
      +  }
      +]
  3. Changed1 schema field changed
    • changedInput schema / properties / __requestBody / allOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "companyLinkedInUrls": {
      -        "description": "LinkedIn company URLs to scope the search (note: plural — pass an array even for a single company). Supports multiple companies; results are merged and deduplicated. Omit to search across all companies.\n",
      -        "example": [
      -          "https://linkedin.com/company/google"
      -        ],
      -        "items": {
      -          "format": "uri",
      -          "type": "string"
      -        },
      -        "type": "array"
      -      },
      -      "countries": {
      -        "description": "Countries to filter contacts by location. Must be ISO 3166-1 alpha-2 codes (e.g., \"US\", \"GB\", \"DE\") — full country names are not accepted.",
      -        "example": [
      -          "US",
      -          "GB",
      -          "DE"
      -        ],
      -        "items": {
      -          "maxLength": 2,
      -          "minLength": 2,
      -          "pattern": "^[A-Za-z]{2}$",
      -          "type": "string"
      -        },
      -        "type": "array"
      -      },
      -      "cursor": {
      -        "description": "Paging handle from the previous response's `nextCursor`. The documented way to fetch the next page; mutually exclusive with `offset`. Never construct one yourself, and pass it back with the same `limit` it was issued for — the cursor marks where the next page starts, so a different `limit` shifts the window.\n",
      -        "maxLength": 100,
      -        "type": "string"
      -      },
      -      "departments": {
      -        "description": "Department (function) filter using LinkedIn Sales Navigator taxonomy. Multiple values are OR'd together. Combined with other filters via AND. All values are treated as INCLUDED — exclusion is not currently supported.\n",
      -        "example": [
      -          "Sales",
      -          "Marketing"
      -        ],
      -        "items": {
      -          "enum": [
      -            "Accounting",
      -            "Administrative",
      -            "Arts and Design",
      -            "Business Development",
      -            "Community and Social Services",
      -            "Consulting",
      -            "Customer Success and Support",
      -            "Education",
      -            "Engineering",
      -            "Entrepreneurship",
      -            "Finance",
      -            "Healthcare Services",
      -            "Human Resources",
      -            "Information Technology",
      -            "Legal",
      -            "Marketing",
      -            "Media and Communication",
      -            "Military and Protective Services",
      -            "Operations",
      -            "Product Management",
      -            "Program and Project Management",
      -            "Purchasing",
      -            "Quality Assurance",
      -            "Real Estate",
      -            "Research",
      -            "Sales"
      -          ],
      -          "type": "string"
      -        },
      -        "type": "array"
      -      },
      -      "firstName": {
      -        "description": "First name of the contact to search for",
      -        "example": "John",
      -        "maxLength": 100,
      -        "type": "string"
      -      },
      -      "jobTitles": {
      -        "description": "Job titles to search for (plural — pass an array)",
      -        "example": [
      -          "Engineering Manager",
      -          "VP Engineering"
      -        ],
      -        "items": {
      -          "maxLength": 200,
      -          "type": "string"
      -        },
      -        "type": "array"
      -      },
      -      "keywords": {
      -        "description": "Keywords to search for in contact profiles (e.g., skills, technologies)",
      -        "example": "Kubernetes, DevOps",
      -        "maxLength": 500,
      -        "type": "string"
      -      },
      -      "lastName": {
      -        "description": "Last name of the contact to search for",
      -        "example": "Doe",
      -        "maxLength": 100,
      -        "type": "string"
      -      },
      -      "limit": {
      -        "default": 25,
      -        "description": "Maximum number of contacts to return per page",
      -        "example": 25,
      -        "maximum": 100,
      -        "minimum": 1,
      -        "type": "integer"
      -      },
      -      "offset": {
      -        "default": 0,
      -        "description": "Zero-based offset for pagination. Mutually exclusive with `cursor` — provide one or the other. Pages starting at or past the 1000-result search ceiling are rejected with 422 and error code `PAGE_BEYOND_CEILING` (distinct from the connector-required 422); a page that merely runs past it is clamped to the remaining rows.\n",
      -        "example": 0,
      -        "maximum": 9007199254740991,
      -        "minimum": 0,
      -        "type": "integer"
      -      },
      -      "seniorityLevels": {
      -        "description": "Seniority level filter using LinkedIn Sales Navigator taxonomy. Multiple values are OR'd together. Combined with other filters via AND. All values are treated as INCLUDED — exclusion is not currently supported.\n",
      -        "example": [
      -          "CXO",
      -          "Vice President",
      -          "Director"
      -        ],
      -        "items": {
      -          "enum": [
      -            "Owner / Partner",
      -            "CXO",
      -            "Vice President",
      -            "Director",
      -            "Experienced Manager",
      -            "Entry Level Manager",
      -            "Strategic",
      -            "Senior",
      -            "Entry Level",
      -            "In Training"
      -          ],
      -          "type": "string"
      -        },
      -        "type": "array"
      -      }
      -    },
      -    "type": "object"
      -  },
      -  {
      -    "anyOf": [
      -      {},
      -      {},
      -      {},
      -      {},
      -      {},
      -      {},
      -      {},
      -      {}
      -    ]
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "companyHeadcounts": {
      +        "description": "Current company headcount ranges. Multiple values are OR'd together. Combined with other filters via AND.\n",
      +        "example": [
      +          "51-200",
      +          "201-500"
      +        ],
      +        "items": {
      +          "enum": [
      +            "Self-employed",
      +            "1-10",
      +            "11-50",
      +            "51-200",
      +            "201-500",
      +            "501-1,000",
      +            "1,001-5,000",
      +            "5,001-10,000",
      +            "10,001+"
      +          ],
      +          "type": "string"
      +        },
      +        "maxItems": 9,
      +        "minItems": 1,
      +        "type": "array"
      +      },
      +      "companyLinkedInUrls": {
      +        "description": "LinkedIn company URLs to scope the search (note: plural — pass an array even for a single company). Supports multiple companies; results are merged and deduplicated. Omit to search across all companies.\n",
      +        "example": [
      +          "https://linkedin.com/company/google"
      +        ],
      +        "items": {
      +          "format": "uri",
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "companyTypes": {
      +        "description": "Current company types. Multiple values are OR'd together. Combined with other filters via AND.\n",
      +        "example": [
      +          "Privately Held"
      +        ],
      +        "items": {
      +          "enum": [
      +            "Public Company",
      +            "Privately Held",
      +            "Non Profit",
      +            "Educational Institution",
      +            "Partnership",
      +            "Self Employed",
      +            "Self Owned",
      +            "Government Agency"
      +          ],
      +          "type": "string"
      +        },
      +        "maxItems": 8,
      +        "minItems": 1,
      +        "type": "array"
      +      },
      +      "countries": {
      +        "description": "Countries to filter contacts by location. Must be ISO 3166-1 alpha-2 codes (e.g., \"US\", \"GB\", \"DE\") — full country names are not accepted.",
      +        "example": [
      +          "US",
      +          "GB",
      +          "DE"
      +        ],
      +        "items": {
      +          "maxLength": 2,
      +          "minLength": 2,
      +          "pattern": "^[A-Za-z]{2}$",
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "cursor": {
      +        "description": "Paging handle from the previous response's `nextCursor`. The documented way to fetch the next page; mutually exclusive with `offset`. Never construct one yourself, and pass it back with the same `limit` it was issued for — the cursor marks where the next page starts, so a different `limit` shifts the window.\n",
      +        "maxLength": 100,
      +        "type": "string"
      +      },
      +      "departments": {
      +        "description": "Department (function) filter using LinkedIn Sales Navigator taxonomy. Multiple values are OR'd together. Combined with other filters via AND. All values are treated as INCLUDED — exclusion is not currently supported.\n",
      +        "example": [
      +          "Sales",
      +          "Marketing"
      +        ],
      +        "items": {
      +          "enum": [
      +            "Accounting",
      +            "Administrative",
      +            "Arts and Design",
      +            "Business Development",
      +            "Community and Social Services",
      +            "Consulting",
      +            "Customer Success and Support",
      +            "Education",
      +            "Engineering",
      +            "Entrepreneurship",
      +            "Finance",
      +            "Healthcare Services",
      +            "Human Resources",
      +            "Information Technology",
      +            "Legal",
      +            "Marketing",
      +            "Media and Communication",
      +            "Military and Protective Services",
      +            "Operations",
      +            "Product Management",
      +            "Program and Project Management",
      +            "Purchasing",
      +            "Quality Assurance",
      +            "Real Estate",
      +            "Research",
      +            "Sales"
      +          ],
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "firstName": {
      +        "description": "First name of the contact to search for",
      +        "example": "John",
      +        "maxLength": 100,
      +        "type": "string"
      +      },
      +      "industries": {
      +        "description": "Current LinkedIn Sales Navigator industry display names. Letter case and surrounding whitespace are normalized. Multiple values are OR'd together. Combined with other filters via AND. See https://docs.saber.app/contacts/industry-values for the canonical values.\n",
      +        "example": [
      +          "Software Development"
      +        ],
      +        "items": {
      +          "maxLength": 200,
      +          "type": "string"
      +        },
      +        "maxItems": 20,
      +        "minItems": 1,
      +        "type": "array"
      +      },
      +      "jobTitles": {
      +        "description": "Job titles to search for (plural — pass an array)",
      +        "example": [
      +          "Engineering Manager",
      +          "VP Engineering"
      +        ],
      +        "items": {
      +          "maxLength": 200,
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "keywords": {
      +        "description": "Keywords to search for in contact profiles (e.g., skills, technologies)",
      +        "example": "Kubernetes, DevOps",
      +        "maxLength": 500,
      +        "type": "string"
      +      },
      +      "lastName": {
      +        "description": "Last name of the contact to search for",
      +        "example": "Doe",
      +        "maxLength": 100,
      +        "type": "string"
      +      },
      +      "limit": {
      +        "default": 25,
      +        "description": "Maximum number of contacts to return per page",
      +        "example": 25,
      +        "maximum": 100,
      +        "minimum": 1,
      +        "type": "integer"
      +      },
      +      "offset": {
      +        "default": 0,
      +        "description": "Zero-based offset for pagination. Mutually exclusive with `cursor` — provide one or the other. Pages starting at or past the 1000-result search ceiling are rejected with 422 and error code `PAGE_BEYOND_CEILING` (distinct from the connector-required 422); a page that merely runs past it is clamped to the remaining rows.\n",
      +        "example": 0,
      +        "maximum": 9007199254740991,
      +        "minimum": 0,
      +        "type": "integer"
      +      },
      +      "recentlyChangedJobs": {
      +        "description": "When true, uses Sales Navigator's Changed jobs filter. LinkedIn controls this rolling window and has no caller-selected start date. Approximately 90 days is an unverified working assumption.\n",
      +        "example": true,
      +        "type": "boolean"
      +      },
      +      "seniorityLevels": {
      +        "description": "Seniority level filter using LinkedIn Sales Navigator taxonomy. Multiple values are OR'd together. Combined with other filters via AND. All values are treated as INCLUDED — exclusion is not currently supported.\n",
      +        "example": [
      +          "CXO",
      +          "Vice President",
      +          "Director"
      +        ],
      +        "items": {
      +          "enum": [
      +            "Owner / Partner",
      +            "CXO",
      +            "Vice President",
      +            "Director",
      +            "Experienced Manager",
      +            "Entry Level Manager",
      +            "Strategic",
      +            "Senior",
      +            "Entry Level",
      +            "In Training"
      +          ],
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "yearsAtCurrentCompany": {
      +        "description": "Sales Navigator's Years at current company ranges. Multiple values are OR'd together. Combined with other filters via AND.\n",
      +        "example": [
      +          "3 to 5 years"
      +        ],
      +        "items": {
      +          "enum": [
      +            "Less than 1 year",
      +            "1 to 2 years",
      +            "3 to 5 years",
      +            "6 to 10 years",
      +            "More than 10 years"
      +          ],
      +          "type": "string"
      +        },
      +        "maxItems": 5,
      +        "minItems": 1,
      +        "type": "array"
      +      },
      +      "yearsInCurrentPosition": {
      +        "description": "Sales Navigator's Years in current position ranges. Multiple values are OR'd together. Combined with other filters via AND.\n",
      +        "example": [
      +          "Less than 1 year"
      +        ],
      +        "items": {
      +          "enum": [
      +            "Less than 1 year",
      +            "1 to 2 years",
      +            "3 to 5 years",
      +            "6 to 10 years",
      +            "More than 10 years"
      +          ],
      +          "type": "string"
      +        },
      +        "maxItems": 5,
      +        "minItems": 1,
      +        "type": "array"
      +      }
      +    },
      +    "type": "object"
      +  },
      +  {
      +    "anyOf": [
      +      {},
      +      {},
      +      {},
      +      {},
      +      {},
      +      {},
      +      {},
      +      {},
      +      {},
      +      {},
      +      {},
      +      {},
      +      {},
      +      {}
      +    ]
      +  }
      +]
  4. Changed1 schema field changed
    • changedInput schema / properties / __requestBody / allOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "companyLinkedInUrls": {
      -        "description": "LinkedIn company URLs to scope the search (note: plural — pass an array even for a single company). Supports multiple companies; results are merged and deduplicated. Omit to search across all companies.\n",
      -        "example": [
      -          "https://linkedin.com/company/google"
      -        ],
      -        "items": {
      -          "format": "uri",
      -          "type": "string"
      -        },
      -        "type": "array"
      -      },
      -      "countries": {
      -        "description": "Countries to filter contacts by location. Must be ISO 3166-1 alpha-2 codes (e.g., \"US\", \"GB\", \"DE\") — full country names are not accepted.",
      -        "example": [
      -          "US",
      -          "GB",
      -          "DE"
      -        ],
      -        "items": {
      -          "maxLength": 2,
      -          "minLength": 2,
      -          "pattern": "^[A-Za-z]{2}$",
      -          "type": "string"
      -        },
      -        "type": "array"
      -      },
      -      "departments": {
      -        "description": "Department (function) filter using LinkedIn Sales Navigator taxonomy. Multiple values are OR'd together. Combined with other filters via AND. All values are treated as INCLUDED — exclusion is not currently supported.\n",
      -        "example": [
      -          "Sales",
      -          "Marketing"
      -        ],
      -        "items": {
      -          "enum": [
      -            "Accounting",
      -            "Administrative",
      -            "Arts and Design",
      -            "Business Development",
      -            "Community and Social Services",
      -            "Consulting",
      -            "Customer Success and Support",
      -            "Education",
      -            "Engineering",
      -            "Entrepreneurship",
      -            "Finance",
      -            "Healthcare Services",
      -            "Human Resources",
      -            "Information Technology",
      -            "Legal",
      -            "Marketing",
      -            "Media and Communication",
      -            "Military and Protective Services",
      -            "Operations",
      -            "Product Management",
      -            "Program and Project Management",
      -            "Purchasing",
      -            "Quality Assurance",
      -            "Real Estate",
      -            "Research",
      -            "Sales"
      -          ],
      -          "type": "string"
      -        },
      -        "type": "array"
      -      },
      -      "firstName": {
      -        "description": "First name of the contact to search for",
      -        "example": "John",
      -        "maxLength": 100,
      -        "type": "string"
      -      },
      -      "jobTitles": {
      -        "description": "Job titles to search for (plural — pass an array)",
      -        "example": [
      -          "Engineering Manager",
      -          "VP Engineering"
      -        ],
      -        "items": {
      -          "maxLength": 200,
      -          "type": "string"
      -        },
      -        "type": "array"
      -      },
      -      "keywords": {
      -        "description": "Keywords to search for in contact profiles (e.g., skills, technologies)",
      -        "example": "Kubernetes, DevOps",
      -        "maxLength": 500,
      -        "type": "string"
      -      },
      -      "lastName": {
      -        "description": "Last name of the contact to search for",
      -        "example": "Doe",
      -        "maxLength": 100,
      -        "type": "string"
      -      },
      -      "limit": {
      -        "default": 25,
      -        "description": "Maximum number of contacts to return per page",
      -        "example": 25,
      -        "maximum": 100,
      -        "minimum": 1,
      -        "type": "integer"
      -      },
      -      "offset": {
      -        "default": 0,
      -        "description": "Zero-based offset for pagination",
      -        "example": 0,
      -        "maximum": 9007199254740991,
      -        "minimum": 0,
      -        "type": "integer"
      -      },
      -      "seniorityLevels": {
      -        "description": "Seniority level filter using LinkedIn Sales Navigator taxonomy. Multiple values are OR'd together. Combined with other filters via AND. All values are treated as INCLUDED — exclusion is not currently supported.\n",
      -        "example": [
      -          "CXO",
      -          "Vice President",
      -          "Director"
      -        ],
      -        "items": {
      -          "enum": [
      -            "Owner / Partner",
      -            "CXO",
      -            "Vice President",
      -            "Director",
      -            "Experienced Manager",
      -            "Entry Level Manager",
      -            "Strategic",
      -            "Senior",
      -            "Entry Level",
      -            "In Training"
      -          ],
      -          "type": "string"
      -        },
      -        "type": "array"
      -      }
      -    },
      -    "type": "object"
      -  },
      -  {
      -    "anyOf": [
      -      {},
      -      {},
      -      {},
      -      {},
      -      {},
      -      {},
      -      {},
      -      {}
      -    ]
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "companyLinkedInUrls": {
      +        "description": "LinkedIn company URLs to scope the search (note: plural — pass an array even for a single company). Supports multiple companies; results are merged and deduplicated. Omit to search across all companies.\n",
      +        "example": [
      +          "https://linkedin.com/company/google"
      +        ],
      +        "items": {
      +          "format": "uri",
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "countries": {
      +        "description": "Countries to filter contacts by location. Must be ISO 3166-1 alpha-2 codes (e.g., \"US\", \"GB\", \"DE\") — full country names are not accepted.",
      +        "example": [
      +          "US",
      +          "GB",
      +          "DE"
      +        ],
      +        "items": {
      +          "maxLength": 2,
      +          "minLength": 2,
      +          "pattern": "^[A-Za-z]{2}$",
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "cursor": {
      +        "description": "Paging handle from the previous response's `nextCursor`. The documented way to fetch the next page; mutually exclusive with `offset`. Never construct one yourself, and pass it back with the same `limit` it was issued for — the cursor marks where the next page starts, so a different `limit` shifts the window.\n",
      +        "maxLength": 100,
      +        "type": "string"
      +      },
      +      "departments": {
      +        "description": "Department (function) filter using LinkedIn Sales Navigator taxonomy. Multiple values are OR'd together. Combined with other filters via AND. All values are treated as INCLUDED — exclusion is not currently supported.\n",
      +        "example": [
      +          "Sales",
      +          "Marketing"
      +        ],
      +        "items": {
      +          "enum": [
      +            "Accounting",
      +            "Administrative",
      +            "Arts and Design",
      +            "Business Development",
      +            "Community and Social Services",
      +            "Consulting",
      +            "Customer Success and Support",
      +            "Education",
      +            "Engineering",
      +            "Entrepreneurship",
      +            "Finance",
      +            "Healthcare Services",
      +            "Human Resources",
      +            "Information Technology",
      +            "Legal",
      +            "Marketing",
      +            "Media and Communication",
      +            "Military and Protective Services",
      +            "Operations",
      +            "Product Management",
      +            "Program and Project Management",
      +            "Purchasing",
      +            "Quality Assurance",
      +            "Real Estate",
      +            "Research",
      +            "Sales"
      +          ],
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "firstName": {
      +        "description": "First name of the contact to search for",
      +        "example": "John",
      +        "maxLength": 100,
      +        "type": "string"
      +      },
      +      "jobTitles": {
      +        "description": "Job titles to search for (plural — pass an array)",
      +        "example": [
      +          "Engineering Manager",
      +          "VP Engineering"
      +        ],
      +        "items": {
      +          "maxLength": 200,
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "keywords": {
      +        "description": "Keywords to search for in contact profiles (e.g., skills, technologies)",
      +        "example": "Kubernetes, DevOps",
      +        "maxLength": 500,
      +        "type": "string"
      +      },
      +      "lastName": {
      +        "description": "Last name of the contact to search for",
      +        "example": "Doe",
      +        "maxLength": 100,
      +        "type": "string"
      +      },
      +      "limit": {
      +        "default": 25,
      +        "description": "Maximum number of contacts to return per page",
      +        "example": 25,
      +        "maximum": 100,
      +        "minimum": 1,
      +        "type": "integer"
      +      },
      +      "offset": {
      +        "default": 0,
      +        "description": "Zero-based offset for pagination. Mutually exclusive with `cursor` — provide one or the other. Pages starting at or past the 1000-result search ceiling are rejected with 422 and error code `PAGE_BEYOND_CEILING` (distinct from the connector-required 422); a page that merely runs past it is clamped to the remaining rows.\n",
      +        "example": 0,
      +        "maximum": 9007199254740991,
      +        "minimum": 0,
      +        "type": "integer"
      +      },
      +      "seniorityLevels": {
      +        "description": "Seniority level filter using LinkedIn Sales Navigator taxonomy. Multiple values are OR'd together. Combined with other filters via AND. All values are treated as INCLUDED — exclusion is not currently supported.\n",
      +        "example": [
      +          "CXO",
      +          "Vice President",
      +          "Director"
      +        ],
      +        "items": {
      +          "enum": [
      +            "Owner / Partner",
      +            "CXO",
      +            "Vice President",
      +            "Director",
      +            "Experienced Manager",
      +            "Entry Level Manager",
      +            "Strategic",
      +            "Senior",
      +            "Entry Level",
      +            "In Training"
      +          ],
      +          "type": "string"
      +        },
      +        "type": "array"
      +      }
      +    },
      +    "type": "object"
      +  },
      +  {
      +    "anyOf": [
      +      {},
      +      {},
      +      {},
      +      {},
      +      {},
      +      {},
      +      {},
      +      {}
      +    ]
      +  }
      +]
  5. Changed1 schema field changed
    • changedInput schema / properties / __requestBody / allOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "companyLinkedInUrls": {
      -        "example": [
      -          "https://linkedin.com/company/google"
      -        ],
      -        "items": {
      -          "format": "uri",
      -          "type": "string"
      -        },
      -        "type": "array"
      -      },
      -      "countries": {
      -        "example": [
      -          "US",
      -          "GB",
      -          "DE"
      -        ],
      -        "items": {
      -          "maxLength": 2,
      -          "minLength": 2,
      -          "pattern": "^[A-Za-z]{2}$",
      -          "type": "string"
      -        },
      -        "type": "array"
      -      },
      -      "departments": {
      -        "example": [
      -          "Sales",
      -          "Marketing"
      -        ],
      -        "items": {
      -          "enum": [
      -            "Accounting",
      -            "Administrative",
      -            "Arts and Design",
      -            "Business Development",
      -            "Community and Social Services",
      -            "Consulting",
      -            "Customer Success and Support",
      -            "Education",
      -            "Engineering",
      -            "Entrepreneurship",
      -            "Finance",
      -            "Healthcare Services",
      -            "Human Resources",
      -            "Information Technology",
      -            "Legal",
      -            "Marketing",
      -            "Media and Communication",
      -            "Military and Protective Services",
      -            "Operations",
      -            "Product Management",
      -            "Program and Project Management",
      -            "Purchasing",
      -            "Quality Assurance",
      -            "Real Estate",
      -            "Research",
      -            "Sales"
      -          ],
      -          "type": "string"
      -        },
      -        "type": "array"
      -      },
      -      "firstName": {
      -        "example": "John",
      -        "maxLength": 100,
      -        "type": "string"
      -      },
      -      "jobTitles": {
      -        "example": [
      -          "Engineering Manager",
      -          "VP Engineering"
      -        ],
      -        "items": {
      -          "maxLength": 200,
      -          "type": "string"
      -        },
      -        "type": "array"
      -      },
      -      "keywords": {
      -        "example": "Kubernetes, DevOps",
      -        "maxLength": 500,
      -        "type": "string"
      -      },
      -      "lastName": {
      -        "example": "Doe",
      -        "maxLength": 100,
      -        "type": "string"
      -      },
      -      "limit": {
      -        "default": 25,
      -        "description": "Maximum number of contacts to return per page",
      -        "example": 25,
      -        "maximum": 100,
      -        "minimum": 1,
      -        "type": "integer"
      -      },
      -      "offset": {
      -        "default": 0,
      -        "description": "Zero-based offset for pagination",
      -        "example": 0,
      -        "maximum": 9007199254740991,
      -        "minimum": 0,
      -        "type": "integer"
      -      },
      -      "seniorityLevels": {
      -        "example": [
      -          "CXO",
      -          "Vice President",
      -          "Director"
      -        ],
      -        "items": {
      -          "enum": [
      -            "Owner / Partner",
      -            "CXO",
      -            "Vice President",
      -            "Director",
      -            "Experienced Manager",
      -            "Entry Level Manager",
      -            "Strategic",
      -            "Senior",
      -            "Entry Level",
      -            "In Training"
      -          ],
      -          "type": "string"
      -        },
      -        "type": "array"
      -      }
      -    },
      -    "type": "object"
      -  },
      -  {
      -    "anyOf": [
      -      {},
      -      {},
      -      {},
      -      {},
      -      {},
      -      {},
      -      {},
      -      {}
      -    ]
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "companyLinkedInUrls": {
      +        "description": "LinkedIn company URLs to scope the search (note: plural — pass an array even for a single company). Supports multiple companies; results are merged and deduplicated. Omit to search across all companies.\n",
      +        "example": [
      +          "https://linkedin.com/company/google"
      +        ],
      +        "items": {
      +          "format": "uri",
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "countries": {
      +        "description": "Countries to filter contacts by location. Must be ISO 3166-1 alpha-2 codes (e.g., \"US\", \"GB\", \"DE\") — full country names are not accepted.",
      +        "example": [
      +          "US",
      +          "GB",
      +          "DE"
      +        ],
      +        "items": {
      +          "maxLength": 2,
      +          "minLength": 2,
      +          "pattern": "^[A-Za-z]{2}$",
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "departments": {
      +        "description": "Department (function) filter using LinkedIn Sales Navigator taxonomy. Multiple values are OR'd together. Combined with other filters via AND. All values are treated as INCLUDED — exclusion is not currently supported.\n",
      +        "example": [
      +          "Sales",
      +          "Marketing"
      +        ],
      +        "items": {
      +          "enum": [
      +            "Accounting",
      +            "Administrative",
      +            "Arts and Design",
      +            "Business Development",
      +            "Community and Social Services",
      +            "Consulting",
      +            "Customer Success and Support",
      +            "Education",
      +            "Engineering",
      +            "Entrepreneurship",
      +            "Finance",
      +            "Healthcare Services",
      +            "Human Resources",
      +            "Information Technology",
      +            "Legal",
      +            "Marketing",
      +            "Media and Communication",
      +            "Military and Protective Services",
      +            "Operations",
      +            "Product Management",
      +            "Program and Project Management",
      +            "Purchasing",
      +            "Quality Assurance",
      +            "Real Estate",
      +            "Research",
      +            "Sales"
      +          ],
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "firstName": {
      +        "description": "First name of the contact to search for",
      +        "example": "John",
      +        "maxLength": 100,
      +        "type": "string"
      +      },
      +      "jobTitles": {
      +        "description": "Job titles to search for (plural — pass an array)",
      +        "example": [
      +          "Engineering Manager",
      +          "VP Engineering"
      +        ],
      +        "items": {
      +          "maxLength": 200,
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "keywords": {
      +        "description": "Keywords to search for in contact profiles (e.g., skills, technologies)",
      +        "example": "Kubernetes, DevOps",
      +        "maxLength": 500,
      +        "type": "string"
      +      },
      +      "lastName": {
      +        "description": "Last name of the contact to search for",
      +        "example": "Doe",
      +        "maxLength": 100,
      +        "type": "string"
      +      },
      +      "limit": {
      +        "default": 25,
      +        "description": "Maximum number of contacts to return per page",
      +        "example": 25,
      +        "maximum": 100,
      +        "minimum": 1,
      +        "type": "integer"
      +      },
      +      "offset": {
      +        "default": 0,
      +        "description": "Zero-based offset for pagination",
      +        "example": 0,
      +        "maximum": 9007199254740991,
      +        "minimum": 0,
      +        "type": "integer"
      +      },
      +      "seniorityLevels": {
      +        "description": "Seniority level filter using LinkedIn Sales Navigator taxonomy. Multiple values are OR'd together. Combined with other filters via AND. All values are treated as INCLUDED — exclusion is not currently supported.\n",
      +        "example": [
      +          "CXO",
      +          "Vice President",
      +          "Director"
      +        ],
      +        "items": {
      +          "enum": [
      +            "Owner / Partner",
      +            "CXO",
      +            "Vice President",
      +            "Director",
      +            "Experienced Manager",
      +            "Entry Level Manager",
      +            "Strategic",
      +            "Senior",
      +            "Entry Level",
      +            "In Training"
      +          ],
      +          "type": "string"
      +        },
      +        "type": "array"
      +      }
      +    },
      +    "type": "object"
      +  },
      +  {
      +    "anyOf": [
      +      {},
      +      {},
      +      {},
      +      {},
      +      {},
      +      {},
      +      {},
      +      {}
      +    ]
      +  }
      +]
  6. Changed4 schema fields changed
    • removedInput schema / properties / __requestBody / additionalProperties
      Removed value: -{}
    • addedInput schema / properties / __requestBody / allOf
      Added value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "companyLinkedInUrls": {
      +        "example": [
      +          "https://linkedin.com/company/google"
      +        ],
      +        "items": {
      +          "format": "uri",
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "countries": {
      +        "example": [
      +          "US",
      +          "GB",
      +          "DE"
      +        ],
      +        "items": {
      +          "maxLength": 2,
      +          "minLength": 2,
      +          "pattern": "^[A-Za-z]{2}$",
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "departments": {
      +        "example": [
      +          "Sales",
      +          "Marketing"
      +        ],
      +        "items": {
      +          "enum": [
      +            "Accounting",
      +            "Administrative",
      +            "Arts and Design",
      +            "Business Development",
      +            "Community and Social Services",
      +            "Consulting",
      +            "Customer Success and Support",
      +            "Education",
      +            "Engineering",
      +            "Entrepreneurship",
      +            "Finance",
      +            "Healthcare Services",
      +            "Human Resources",
      +            "Information Technology",
      +            "Legal",
      +            "Marketing",
      +            "Media and Communication",
      +            "Military and Protective Services",
      +            "Operations",
      +            "Product Management",
      +            "Program and Project Management",
      +            "Purchasing",
      +            "Quality Assurance",
      +            "Real Estate",
      +            "Research",
      +            "Sales"
      +          ],
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "firstName": {
      +        "example": "John",
      +        "maxLength": 100,
      +        "type": "string"
      +      },
      +      "jobTitles": {
      +        "example": [
      +          "Engineering Manager",
      +          "VP Engineering"
      +        ],
      +        "items": {
      +          "maxLength": 200,
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "keywords": {
      +        "example": "Kubernetes, DevOps",
      +        "maxLength": 500,
      +        "type": "string"
      +      },
      +      "lastName": {
      +        "example": "Doe",
      +        "maxLength": 100,
      +        "type": "string"
      +      },
      +      "limit": {
      +        "default": 25,
      +        "description": "Maximum number of contacts to return per page",
      +        "example": 25,
      +        "maximum": 100,
      +        "minimum": 1,
      +        "type": "integer"
      +      },
      +      "offset": {
      +        "default": 0,
      +        "description": "Zero-based offset for pagination",
      +        "example": 0,
      +        "maximum": 9007199254740991,
      +        "minimum": 0,
      +        "type": "integer"
      +      },
      +      "seniorityLevels": {
      +        "example": [
      +          "CXO",
      +          "Vice President",
      +          "Director"
      +        ],
      +        "items": {
      +          "enum": [
      +            "Owner / Partner",
      +            "CXO",
      +            "Vice President",
      +            "Director",
      +            "Experienced Manager",
      +            "Entry Level Manager",
      +            "Strategic",
      +            "Senior",
      +            "Entry Level",
      +            "In Training"
      +          ],
      +          "type": "string"
      +        },
      +        "type": "array"
      +      }
      +    },
      +    "type": "object"
      +  },
      +  {
      +    "anyOf": [
      +      {},
      +      {},
      +      {},
      +      {},
      +      {},
      +      {},
      +      {},
      +      {}
      +    ]
      +  }
      +]
    • removedInput schema / properties / __requestBody / properties
      Removed value: -{
      -  "companyLinkedInUrls": {
      -    "example": [
      -      "https://linkedin.com/company/google"
      -    ],
      -    "items": {
      -      "format": "uri",
      -      "type": "string"
      -    },
      -    "type": "array"
      -  },
      -  "countries": {
      -    "example": [
      -      "US",
      -      "GB",
      -      "DE"
      -    ],
      -    "items": {
      -      "maxLength": 100,
      -      "type": "string"
      -    },
      -    "type": "array"
      -  },
      -  "firstName": {
      -    "example": "John",
      -    "maxLength": 100,
      -    "type": "string"
      -  },
      -  "jobTitles": {
      -    "example": [
      -      "Engineering Manager",
      -      "VP Engineering"
      -    ],
      -    "items": {
      -      "maxLength": 200,
      -      "type": "string"
      -    },
      -    "type": "array"
      -  },
      -  "keywords": {
      -    "example": "Kubernetes, DevOps",
      -    "maxLength": 500,
      -    "type": "string"
      -  },
      -  "lastName": {
      -    "example": "Doe",
      -    "maxLength": 100,
      -    "type": "string"
      -  },
      -  "limit": {
      -    "default": 25,
      -    "description": "Maximum number of contacts to return per page",
      -    "example": 25,
      -    "maximum": 100,
      -    "minimum": 1,
      -    "type": "integer"
      -  },
      -  "offset": {
      -    "default": 0,
      -    "description": "Zero-based offset for pagination",
      -    "example": 0,
      -    "maximum": 9007199254740991,
      -    "minimum": 0,
      -    "type": "integer"
      -  }
      -}
    • removedInput schema / properties / __requestBody / type
      Removed value: -"object"
  7. Changed2 schema fields changed
    • addedInput schema / properties / __requestBody / properties / limit
      Added value: +{
      +  "default": 25,
      +  "description": "Maximum number of contacts to return per page",
      +  "example": 25,
      +  "maximum": 100,
      +  "minimum": 1,
      +  "type": "integer"
      +}
    • addedInput schema / properties / __requestBody / properties / offset
      Added value: +{
      +  "default": 0,
      +  "description": "Zero-based offset for pagination",
      +  "example": 0,
      +  "maximum": 9007199254740991,
      +  "minimum": 0,
      +  "type": "integer"
      +}
  8. Added

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds useful behavioral context by naming the backing data source and authorization scope ('API key owner's Sales Navigator connection'), which is not present in the annotations. It does not describe side effects, credit consumption, result boundaries, or behavior on connector failure; those details live in the parameter schema rather than the tool description.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with the verb and object front-loaded, followed by a compact list of filter dimensions and the key data-source constraint. There is no padding, no repetition of schema details, and every phrase contributes to selection and invocation understanding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex search tool with no output schema, the top-level description covers search scope and data source but omits what a response looks like, pagination behavior, and when to prefer a sibling contact tool. The rich input schema compensates for parameter-level detail, but the description alone is not fully self-sufficient for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the schema's parameter descriptions are unusually detailed, covering pagination cursor semantics, mutually exclusive fields, enum constraints, OR/AND filter behavior, and normalization rules. The tool description only lists coarse filter categories and therefore adds little meaning beyond the schema, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action ('Search for contacts'), identifies the resource clearly, and enumerates the main filter axes (person, role, tenure, industry, company headcount/type, recent job change). It stops short of a 5 because it does not explicitly name sibling tools or state what this search is not, leaving some differentiation to inference.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use the tool: when an agent needs to find contacts by the listed attributes. It also adds a relevant prerequisite by noting the search uses the API key owner's Sales Navigator connection, but it gives no explicit guidance about alternatives, exclusions, or situations where a different contact tool would be more appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources