Find and enrich B2B people, companies and job postings: search people by title, seniority and location, find work emails and phone numbers, enrich companies and break down their headcount, build target-company lists, and search the Blitz documentation.
Find and enrich B2B people, companies and job postings: search people by title, seniority and location, find work emails and phone numbers, enrich companies and break down their headcount, build target-company lists, and search the Blitz documentation.
Blitz | B2B people, company, and jobs data, plus the Blitz documentation. Two tool groups: 'docs_*' tools search and read the Blitz docs (learn how); the rest call the Blitz REST API (do it). Unsure which endpoint or parameters to use? Call docs_search first, then the matching API tool. Prefer using docs_* to build a Python/JS script that fetches and enriches data to a local destination over large direct API-tool calls, which return big payloads that fill context. The 'Blitz usage guide' and 'Using the Blitz MCP' skills are available as resources. API tools are named by what they return: 'people_*' find and enrich people, 'company_*' find and enrich companies (including TAM and headcount distribution), 'job_*' search job postings, then account/util meta tools. Each API tool maps to one Blitz REST endpoint. API calls are authenticated, rate-limited, and metered per your API key, and use records from your plan's fair-usage allowance as stated in each tool's description; docs tools use no records. Authenticate by sending your Blitz API key in the 'x-api-key' request header, or sign in with OAuth when your MCP client supports it ('Authorization: Bearer <access token>'). The Bearer [redacted] does not accept an API key. Search tools paginate in one of three ways: most take 'max_results' and a 'cursor' you send back until it is null, 'people_employee_finder' takes a 'page' number instead, and 'people_waterfall_icp' answers in one shot. Every search also has a depth ceiling: 50,000 records for the people, company and TAM searches, 5,000 for jobs, 10,000 for 'people_employee_finder'. The page that hits it looks like a clean end, so slice a bigger pull into filters that each stay under it. Results can be large, so request only what you need. A successful call returns the endpoint's JSON as a text block; a failure returns its JSON error body with isError set. Use send_feedback to report a bug, request a feature, or pass any feedback to the Blitz team.
Protocol
Pass100/10020 / 20 pts
Connection, authentication, and protocol compatibility.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description96/100
List the current employees of ONE company by seniority/function/geo — no free-text title, paged. Use for a company roster; use people_search for a title/ICP query across companies. Input: `company_linkedin_url` plus flat enum filters (`country_code`, `job_level`, `job_function`; `country_code` defaults to `WORLD` = no geo filter), `max_results`, `page`. Returns: `results` (people, each with name, headline, about, location, LinkedIn URL, connections count, `experiences`, education, skills and certifications; `experiences` holds the job at that company), `results_length`, `page`, `total_pages` and `company_linkedin_url`. No email or phone number is returned; use people_find_work_email or people_find_phone. Cost: 1 record per result.
The description explains the capability, when to use it, and what to expect.
Inputs98/100
Input documentation gives an agent enough context to populate the arguments.
company_linkedin_url
LinkedIn page URL of the company whose employees to list. Take it from the `linkedin_url` of a company search result, or copy it from the company's LinkedIn page.
Clear enough to supply this argument.
country_code
Country codes of where the employees live, such as `US` or `FR`. `WORLD` means no country filter.
Clear enough to supply this argument.
continent
Continents where the employees live. An employee matches when their location is on any of them.
Clear enough to supply this argument.
sales_region
Sales regions where the employees live. `NORAM` is North America, `LATAM` Latin America, `EMEA` Europe, Middle East and Africa, `APAC` Asia-Pacific.
Clear enough to supply this argument.
job_level
Job levels to keep. An employee matches when their current job at the company has any of the listed levels.
Clear enough to supply this argument.
job_function
Job functions to keep. An employee matches when their current job at the company has any of the listed functions.
Clear enough to supply this argument.
min_connections_count
Smallest number of LinkedIn connections an employee must have. 0 means no lower bound.
Clear enough to supply this argument.
is_recent_hire
Only people whose current job at the company started in the last 90 days. The job must also match job_level and job_function. A job with no start date never matches.
Clear enough to supply this argument.
max_results
How many results to return per page. Each result returned uses one record.
Clear enough to supply this argument.
page
Page number to fetch. Start at 1 and add one for each next page. The response gives `total_pages`. Results past the 10,000th cannot be reached.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "people_employee_finder",
"title": "Find a company's employees",
"description": "List the current employees of ONE company by seniority/function/geo — no free-text title, paged. Use for a company roster; use people_search for a title/ICP query across companies. Input: `company_linkedin_url` plus flat enum filters (`country_code`, `job_level`, `job_function`; `country_code` defaults to `WORLD` = no geo filter), `max_results`, `page`. Returns: `results` (people, each with name, headline, about, location, LinkedIn URL, connections count, `experiences`, education, skills and certifications; `experiences` holds the job at that company), `results_length`, `page`, `total_pages` and `company_linkedin_url`. No email or phone number is returned; use people_find_work_email or people_find_phone. Cost: 1 record per result.",
"inputSchema": {
"type": "object",
"required": [
"company_linkedin_url"
],
"properties": {
"page": {
"type": "number",
"default": 1,
"minimum": 1,
"examples": [
1
],
"description": "Page number to fetch. Start at 1 and add one for each next page. The response gives `total_pages`. Results past the 10,000th cannot be reached."
},
"continent": {
"type": "array",
"items": {
"enum": [
"Africa",
"Antarctica",
"Asia",
"Europe",
"North America",
"Oceania",
"South America"
],
"type": "string"
},
"maxItems": 50,
"description": "Continents where the employees live. An employee matches when their location is on any of them."
},
"job_level": {
"type": "array",
"items": {
"enum": [
"C-Team",
"Director",
"Manager",
"Other",
"Staff",
"VP"
],
"type": "string"
},
"maxItems": 50,
"description": "Job levels to keep. An employee matches when their current job at the company has any of the listed levels."
},
"max_results": {
"type": "number",
"default": 10,
"maximum": 50,
"minimum": 1,
"examples": [
3
],
"description": "How many results to return per page. Each result returned uses one record."
},
"country_code": {
"type": "array",
"items": {
"type": "string",
"minLength": 2
},
"default": [
"WORLD"
],
"maxItems": 50,
"description": "Country codes of where the employees live, such as `US` or `FR`. `WORLD` means no country filter."
},
"job_function": {
"type": "array",
"items": {
"enum": [
"Advertising & Marketing",
"Art, Culture and Creative Professionals",
"Construction",
"Customer/Client Service",
"Education",
"Engineering",
"Finance & Accounting",
"General Business & Management",
"Healthcare & Human Services",
"Human Resources",
"Information Technology",
"Legal",
"Manufacturing & Production",
"Operations",
"Other",
"Public Administration & Safety",
"Purchasing",
"Research & Development",
"Sales & Business Development",
"Science",
"Supply Chain & Logistics",
"Writing/Editing"
],
"type": "string"
},
"maxItems": 50,
"description": "Job functions to keep. An employee matches when their current job at the company has any of the listed functions."
},
"sales_region": {
"type": "array",
"items": {
"enum": [
"NORAM",
"LATAM",
"EMEA",
"APAC"
],
"type": "string"
},
"maxItems": 50,
"description": "Sales regions where the employees live. `NORAM` is North America, `LATAM` Latin America, `EMEA` Europe, Middle East and Africa, `APAC` Asia-Pacific."
},
"is_recent_hire": {
"type": "boolean",
"default": false,
"examples": [
false
],
"description": "Only people whose current job at the company started in the last 90 days. The job must also match job_level and job_function. A job with no start date never matches."
},
"company_linkedin_url": {
"type": "string",
"examples": [
"https://www.linkedin.com/company/openai"
],
"description": "LinkedIn page URL of the company whose employees to list. Take it from the `linkedin_url` of a company search result, or copy it from the company's LinkedIn page."
},
"min_connections_count": {
"type": "number",
"default": 0,
"maximum": 500,
"minimum": 0,
"description": "Smallest number of LinkedIn connections an employee must have. 0 means no lower bound."
}
},
"additionalProperties": false
},
"annotations": {
"title": "Find a company's employees",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description98/100
Get one person's profile and whole career history from their LinkedIn URL. Use for a single known person; use people_search to discover people by filters, or people_lookup_by_email / people_lookup_by_phone to start from a contact detail. Input: `person_linkedin_url`. Returns: a person. Cost: 1 record on success.
The description explains the capability, when to use it, and what to expect.
Inputs99/100
Input documentation gives an agent enough context to populate the arguments.
person_linkedin_url
LinkedIn profile URL of the person. Take it from the `linkedin_url` of a people search result, or copy it from the person's LinkedIn page.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "people_enrich",
"title": "Enrich one person",
"description": "Get one person's profile and whole career history from their LinkedIn URL. Use for a single known person; use people_search to discover people by filters, or people_lookup_by_email / people_lookup_by_phone to start from a contact detail. Input: `person_linkedin_url`. Returns: a person. Cost: 1 record on success.",
"inputSchema": {
"type": "object",
"required": [
"person_linkedin_url"
],
"properties": {
"person_linkedin_url": {
"type": "string",
"examples": [
"https://www.linkedin.com/in/antoine-blitz-5581b7373"
],
"description": "LinkedIn profile URL of the person. Take it from the `linkedin_url` of a people search result, or copy it from the person's LinkedIn page."
}
},
"additionalProperties": false
},
"annotations": {
"title": "Enrich one person",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description97/100
Find a person's mobile and direct phone numbers from their LinkedIn URL. US numbers only — skip non-US people. Inverse of people_lookup_by_phone. Input: `person_linkedin_url`. Returns: phone number(s). Cost: 1 record on success.
The description explains the capability, when to use it, and what to expect.
Inputs98/100
Input documentation gives an agent enough context to populate the arguments.
person_linkedin_url
LinkedIn profile URL of the person. Take it from the `linkedin_url` of a people search result, or copy it from the person's LinkedIn page.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "people_find_phone",
"title": "Find a person's phone",
"description": "Find a person's mobile and direct phone numbers from their LinkedIn URL. US numbers only — skip non-US people. Inverse of people_lookup_by_phone. Input: `person_linkedin_url`. Returns: phone number(s). Cost: 1 record on success.",
"inputSchema": {
"type": "object",
"required": [
"person_linkedin_url"
],
"properties": {
"person_linkedin_url": {
"type": "string",
"examples": [
"https://www.linkedin.com/in/antoine-blitz-5581b7373"
],
"description": "LinkedIn profile URL of the person. Take it from the `linkedin_url` of a people search result, or copy it from the person's LinkedIn page."
}
},
"additionalProperties": false
},
"annotations": {
"title": "Find a person's phone",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description96/100
Find a person's work email(s) from their LinkedIn URL. Inverse of people_lookup_by_email. Input: `person_linkedin_url`. Returns: email(s). Cost: 1 record on success.
The description explains the capability, when to use it, and what to expect.
Inputs99/100
Input documentation gives an agent enough context to populate the arguments.
person_linkedin_url
LinkedIn profile URL of the person. Take it from the `linkedin_url` of a people search result, or copy it from the person's LinkedIn page.
Clear enough to supply this argument.
Annotations100/100
All four behavior hints are declared.
{
"title": "Find a person's work email",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}
Output schema0/100
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "people_find_work_email",
"title": "Find a person's work email",
"description": "Find a person's work email(s) from their LinkedIn URL. Inverse of people_lookup_by_email. Input: `person_linkedin_url`. Returns: email(s). Cost: 1 record on success.",
"inputSchema": {
"type": "object",
"required": [
"person_linkedin_url"
],
"properties": {
"person_linkedin_url": {
"type": "string",
"examples": [
"https://www.linkedin.com/in/antoine-blitz-5581b7373"
],
"description": "LinkedIn profile URL of the person. Take it from the `linkedin_url` of a people search result, or copy it from the person's LinkedIn page."
}
},
"additionalProperties": false
},
"annotations": {
"title": "Find a person's work email",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description98/100
Reverse lookup: find the person behind an email address (inverse of people_find_work_email). Input: `email`. Returns: `found` and `person` (name, headline, about, location, LinkedIn URL, connections count, `experiences`, education, skills and certifications; `experiences` holds the full career), or `person: null` when no one matches. Cost: 1 record on success.
The description explains the capability, when to use it, and what to expect.
Inputs99/100
Input documentation gives an agent enough context to populate the arguments.
email
Full email address, such as `[email protected]`. A partial address does not match.
Clear enough to supply this argument.
Annotations100/100
All four behavior hints are declared.
{
"title": "Look up a person by email",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}
Output schema0/100
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "people_lookup_by_email",
"title": "Look up a person by email",
"description": "Reverse lookup: find the person behind an email address (inverse of people_find_work_email). Input: `email`. Returns: `found` and `person` (name, headline, about, location, LinkedIn URL, connections count, `experiences`, education, skills and certifications; `experiences` holds the full career), or `person: null` when no one matches. Cost: 1 record on success.",
"inputSchema": {
"type": "object",
"required": [
"email"
],
"properties": {
"email": {
"type": "string",
"examples": [
"[email protected]"
],
"description": "Full email address, such as `[email protected]`. A partial address does not match."
}
},
"additionalProperties": false
},
"annotations": {
"title": "Look up a person by email",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description97/100
Reverse lookup: find the person behind a phone number (inverse of people_find_phone). Input: `phone`. Returns: `found` and `person` (name, headline, about, location, LinkedIn URL, connections count, `experiences`, education, skills and certifications; `experiences` holds the full career), or `person: null` when no one matches. Cost: 1 record on success.
The description explains the capability, when to use it, and what to expect.
Inputs99/100
Input documentation gives an agent enough context to populate the arguments.
phone
Phone number of the person to find. Write it with the country code (`+14155550123`); a number with no country code is read as a US number. It is matched against the mobile and direct numbers Blitz has on file.
Clear enough to supply this argument.
Annotations100/100
All four behavior hints are declared.
{
"title": "Look up a person by phone",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}
Output schema0/100
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "people_lookup_by_phone",
"title": "Look up a person by phone",
"description": "Reverse lookup: find the person behind a phone number (inverse of people_find_phone). Input: `phone`. Returns: `found` and `person` (name, headline, about, location, LinkedIn URL, connections count, `experiences`, education, skills and certifications; `experiences` holds the full career), or `person: null` when no one matches. Cost: 1 record on success.",
"inputSchema": {
"type": "object",
"required": [
"phone"
],
"properties": {
"phone": {
"type": "string",
"examples": [
"+123456789"
],
"description": "Phone number of the person to find. Write it with the country code (`+14155550123`); a number with no country code is read as a US number. It is matched against the mobile and direct numbers Blitz has on file."
}
},
"additionalProperties": false
},
"annotations": {
"title": "Look up a person by phone",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description98/100
Find people across many companies by ICP filters (firmographic company filters plus person title/level/function/geo; free-text or `[exact]` titles). Use for a title/ICP query spanning companies; for one company's roster use people_employee_finder. Input: `company` and `people` filter blocks, `max_results`, `cursor`. Returns: `results` (people, each with name, headline, about, location, LinkedIn URL, connections count, `experiences`, education, skills and certifications; `experiences` holds the job that matched, not the whole career), `total_results`, `results_length`, `max_results` and a `cursor` for the next page (null at the end). No email or phone number is returned; use people_find_work_email or people_find_phone. Cost: 1 record per result.
The description explains the capability, when to use it, and what to expect.
Inputs78/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › linkedin_url
LinkedIn page URLs of the companies to search in. Use it to limit the search to companies you already know.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › name › include
Keywords to keep. A record matches when it has all the words of at least one keyword.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › name › exclude
Keywords to drop. A record is removed when it has all the words of any one keyword.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › industry › include
Industries to keep, as exact LinkedIn labels. `Unknown` also keeps a record with no industry on file.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › industry › exclude
Industries to drop, as exact LinkedIn labels. `Unknown` drops a record with no industry on file.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › type › include
Company types to keep. A company matches when its type is any listed value.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › type › exclude
Company types to drop. A company is removed when its type is any listed value.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › employee_range
Employee-count bands to keep. A company matches when its band is any of the listed ones. An empty list does not filter.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › employee_count › min
Lowest value to match. 0 means no lower bound.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › employee_count › max
Highest value to match. 0 means no upper bound.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › min_linkedin_followers
Smallest number of LinkedIn followers a company must have. 0 means no lower bound.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › revenue › min
Lowest value to match. 0 means no lower bound.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › revenue › max
Highest value to match. 0 means no upper bound.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › naics_code › include
NAICS codes to keep. A company matches when its code is any listed code.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › naics_code › exclude
NAICS codes to drop. A company is removed when its code is any listed code.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › sic_code › include
SIC codes to keep. A company matches when its code is any listed code.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › sic_code › exclude
SIC codes to drop. A company is removed when its code is any listed code.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › mx › provider › include
Mail providers to keep. Use `any` to keep every company that has MX data.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › mx › provider › exclude
Mail providers to drop. Use `any` to keep only companies that have no MX data.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › web_traffic › min
Lowest value to match. 0 means no lower bound.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › web_traffic › max
Highest value to match. 0 means no upper bound.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › ad_spend › min
Lowest monthly Google ad spend to match, inclusive. 0 means no lower bound.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › ad_spend › max
Highest monthly Google ad spend to match, inclusive. 0 means no upper bound.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › total_funding › min
Lowest value to match. 0 means no lower bound.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › total_funding › max
Highest value to match. 0 means no upper bound.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › last_funding_amount › min
Lowest value to match. 0 means no lower bound.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › last_funding_amount › max
Highest value to match. 0 means no upper bound.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › last_funding_year › min
Lowest value to match. 0 means no lower bound.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › last_funding_year › max
Highest value to match. 0 means no upper bound.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › last_funding_type › include
Funding round types to keep. A company matches when its last round is any listed type.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › last_funding_type › exclude
Funding round types to drop. A company is removed when its last round is any listed type.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › lead_investors › include
Keywords to keep. A record matches when it has all the words of at least one keyword.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › lead_investors › exclude
Keywords to drop. A record is removed when it has all the words of any one keyword.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › keywords › include
Keywords to keep. A record matches when it has all the words of at least one keyword.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › keywords › exclude
Keywords to drop. A record is removed when it has all the words of any one keyword.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › founded_year › min
Lowest value to match. 0 means no lower bound.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › founded_year › max
Highest value to match. 0 means no upper bound.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › hq › city › include
Keywords to keep. A record matches when it has all the words of at least one keyword.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › hq › city › exclude
Keywords to drop. A record is removed when it has all the words of any one keyword.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › hq › state › include
Keywords to keep. A record matches when it has all the words of at least one keyword.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › hq › state › exclude
Keywords to drop. A record is removed when it has all the words of any one keyword.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › hq › country_code
Country codes of the headquarters to keep, such as `US` or `FR`. Letter case does not matter.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › hq › continent
Continents of the headquarters to keep. A company matches when its headquarters is on any of them.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › hq › sales_region
Sales regions of the headquarters to keep. `NORAM` is North America, `LATAM` Latin America, `EMEA` Europe, Middle East and Africa, `APAC` Asia-Pacific.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
people › job_title › include_linkedin_headline
Also match the job title phrases against the LinkedIn headline of each person. A person then matches when the headline or the job title matches.
Clear enough to supply this argument.
people › job_title › include
Job titles to look for. A person matches when a job title has all the words of at least one phrase. Put a phrase in square brackets, such as `[Head of Sales]`, to match the whole title exactly, ignoring case and accents.
Clear enough to supply this argument.
people › job_title › exclude
Job titles to drop. A person is removed when a job title matches any phrase. Square brackets work as in `include`.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
people › job_function
Job functions to keep. A person matches when their job has any of the listed functions.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
people › job_level
Job levels to keep. A person matches when their job has any of the listed levels.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
people › min_connections
Smallest number of LinkedIn connections a person must have. 0 means no lower bound.
Clear enough to supply this argument.
people › is_recent_hire
Keep only people whose matching job started in the last 90 days. That job must also match the other job and company filters. A job with no start date never matches. On people search, the jobs checked are the ones that `include_active_jobs` and `include_past_jobs` select (current jobs by default).
Clear enough to supply this argument.
people › location › city › include
Keywords to keep. A record matches when it has all the words of at least one keyword.
Clear enough to supply this argument.
people › location › city › exclude
Keywords to drop. A record is removed when it has all the words of any one keyword.
Clear enough to supply this argument.
people › location › country_code
Country codes of the people to keep, such as `FR` or `GB`. Letter case does not matter.
Clear enough to supply this argument.
people › location › continent
Continents where the people live. A person matches when their location is on any of them.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
people › location › sales_region
Sales regions where the people live. `NORAM` is North America, `LATAM` Latin America, `EMEA` Europe, Middle East and Africa, `APAC` Asia-Pacific.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
people › education › include
School, degree or year phrases to look for. All the words of a phrase must be in one education entry, in any order, so write the year in the phrase (such as `Stanford 2025`) to tie school and year together. A person matches when any phrase matches.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
people › education › exclude
Phrases to drop. A person is removed when an education entry matches any phrase, with the same one-entry rule as `include`.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
people › education › start_year › min
Lowest value to match. 0 means no lower bound.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
people › education › start_year › max
Highest value to match. 0 means no upper bound.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
people › education › end_year › min
Lowest value to match. 0 means no lower bound.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
people › education › end_year › max
Highest value to match. 0 means no upper bound.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
people › include_active_jobs
Look in the current jobs of each person. The job, company and job title filters must all hold in the same job. The matched job is returned in `experiences`, and `job_is_current` tells whether it is current.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
people › include_past_jobs
Also look in the past jobs of each person. A person is returned once, with the matched job; a current job is preferred to a past one.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
max_results
How many results to return in this call. Each result returned uses one record.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
cursor
Paging token. Leave it out for the first page; for the next page, send back the `cursor` of the previous response. A null `cursor` in a response means no more results.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
Annotations100/100
All four behavior hints are declared.
{
"title": "Search people across companies",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}
Output schema0/100
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "people_search",
"title": "Search people across companies",
"description": "Find people across many companies by ICP filters (firmographic company filters plus person title/level/function/geo; free-text or `[exact]` titles). Use for a title/ICP query spanning companies; for one company's roster use people_employee_finder. Input: `company` and `people` filter blocks, `max_results`, `cursor`. Returns: `results` (people, each with name, headline, about, location, LinkedIn URL, connections count, `experiences`, education, skills and certifications; `experiences` holds the job that matched, not the whole career), `total_results`, `results_length`, `max_results` and a `cursor` for the next page (null at the end). No email or phone number is returned; use people_find_work_email or people_find_phone. Cost: 1 record per result.",
"inputSchema": {
"type": "object",
"$defs": {
"s0": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 50,
"description": "Keywords to keep. A record matches when it has all the words of at least one keyword."
},
"s1": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 50,
"description": "Keywords to drop. A record is removed when it has all the words of any one keyword."
},
"s2": {
"type": "string",
"description": "One of 535 allowed values (exact match, case-sensitive). Call docs_search or read the Blitz reference resources for the full list; invalid values are rejected."
},
"s3": {
"enum": [
"Educational",
"Educational Institution",
"Government Agency",
"Nonprofit",
"Partnership",
"Privately Held",
"Public Company",
"Self-Employed",
"Self-Owned",
"Sole Proprietorship"
],
"type": "string"
},
"s4": {
"enum": [
"any",
"google",
"microsoft",
"zoho",
"godaddy",
"proofpoint",
"mimecast",
"barracuda",
"cloudflare",
"ionos",
"hostinger",
"namecheap",
"fastmail",
"proton",
"strato",
"ovh",
"siteground",
"opensrs",
"one_com",
"tencent",
"titan",
"20i",
"rackspace",
"alibaba",
"open_xchange",
"infomaniak",
"jimdo",
"netease",
"gandi",
"register_it",
"hetzner",
"yahoo",
"amazon",
"yandex",
"locaweb",
"uol_host",
"fasthosts",
"kinghost",
"t_online",
"hostopia",
"united_domains",
"hostpoint",
"mijndomein",
"icloud",
"reg123",
"mailhostbox",
"transip",
"natro",
"names_co_uk",
"intermedia",
"hostnet",
"aruba",
"loopia",
"netcup",
"lolipop",
"simply",
"domeneshop",
"hornetsecurity",
"mailchannels",
"appriver",
"trendmicro",
"spamexperts",
"cisco",
"sophos",
"mesh",
"mailinblack"
],
"type": "string"
},
"s5": {
"type": "number",
"default": 0,
"maximum": 1000000000000,
"minimum": 0,
"description": "Lowest value to match. 0 means no lower bound."
},
"s6": {
"type": "number",
"default": 0,
"maximum": 1000000000000,
"minimum": 0,
"description": "Highest value to match. 0 means no upper bound."
},
"s7": {
"enum": [
"Series unknown",
"Pre seed",
"Seed",
"Series A",
"Series B",
"Series C",
"Series D",
"Series E-J",
"Grant",
"Angel",
"Private equity",
"Debt financing",
"Non equity assistance",
"Post IPO equity",
"Undisclosed",
"Post IPO debt",
"Product crowdfunding",
"Equity crowdfunding",
"Corporate round",
"Convertible note",
"Secondary market",
"Initial coin offering",
"Post IPO secondary"
],
"type": "string"
},
"s8": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"maxItems": 50,
"description": "Keywords to keep. A record matches when it has all the words of at least one keyword."
},
"s9": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"maxItems": 50,
"description": "Keywords to drop. A record is removed when it has all the words of any one keyword."
},
"s10": {
"enum": [
"Africa",
"Antarctica",
"Asia",
"Europe",
"North America",
"Oceania",
"South America"
],
"type": "string"
},
"s11": {
"enum": [
"NORAM",
"LATAM",
"EMEA",
"APAC"
],
"type": "string"
}
},
"properties": {
"cursor": {
"anyOf": [
{
"type": "string",
"minLength": 3
},
{
"type": "null"
}
],
"default": null,
"examples": [
null
],
"description": "Paging token. Leave it out for the first page; for the next page, send back the `cursor` of the previous response. A null `cursor` in a response means no more results."
},
"people": {
"type": "object",
"properties": {
"location": {
"type": "object",
"properties": {
"city": {
"type": "object",
"properties": {
"exclude": {
"$ref": "#/$defs/s9"
},
"include": {
"$ref": "#/$defs/s8"
}
},
"description": "Keywords searched to find the city of the person",
"additionalProperties": false
},
"continent": {
"type": "array",
"items": {
"$ref": "#/$defs/s10"
},
"maxItems": 50,
"description": "Continents where the people live. A person matches when their location is on any of them."
},
"country_code": {
"type": "array",
"items": {
"type": "string",
"maxLength": 3,
"minLength": 2
},
"maxItems": 50,
"description": "Country codes of the people to keep, such as `FR` or `GB`. Letter case does not matter."
},
"sales_region": {
"type": "array",
"items": {
"$ref": "#/$defs/s11"
},
"maxItems": 50,
"description": "Sales regions where the people live. `NORAM` is North America, `LATAM` Latin America, `EMEA` Europe, Middle East and Africa, `APAC` Asia-Pacific."
}
},
"description": "Location of the people to find",
"additionalProperties": false
},
"education": {
"type": "object",
"properties": {
"exclude": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 50,
"description": "Phrases to drop. A person is removed when an education entry matches any phrase, with the same one-entry rule as `include`."
},
"include": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 50,
"description": "School, degree or year phrases to look for. All the words of a phrase must be in one education entry, in any order, so write the year in the phrase (such as `Stanford 2025`) to tie school and year together. A person matches when any phrase matches."
},
"end_year": {
"type": "object",
"properties": {
"max": {
"type": "integer",
"default": 0,
"maximum": 2100,
"minimum": 0,
"examples": [
2022
],
"description": "Highest value to match. 0 means no upper bound."
},
"min": {
"type": "integer",
"default": 0,
"maximum": 2100,
"minimum": 0,
"examples": [
2018
],
"description": "Lowest value to match. 0 means no lower bound."
}
},
"description": "Range search for the year an education entry ended (graduation year). Applies to the same entry as include; an entry with no end year never matches a bound.",
"additionalProperties": false
},
"start_year": {
"type": "object",
"properties": {
"max": {
"type": "integer",
"default": 0,
"maximum": 2100,
"minimum": 0,
"examples": [
2020
],
"description": "Highest value to match. 0 means no upper bound."
},
"min": {
"type": "integer",
"default": 0,
"maximum": 2100,
"minimum": 0,
"examples": [
2016
],
"description": "Lowest value to match. 0 means no lower bound."
}
},
"description": "Range search for the year an education entry started. Applies to the same entry as include; an entry with no start year never matches a bound.",
"additionalProperties": false
}
},
"description": "Education filter for the person",
"additionalProperties": false
},
"job_level": {
"type": "array",
"items": {
"enum": [
"C-Team",
"Director",
"Manager",
"Other",
"Staff",
"VP"
],
"type": "string"
},
"maxItems": 50,
"description": "Job levels to keep. A person matches when their job has any of the listed levels."
},
"job_title": {
"type": "object",
"properties": {
"exclude": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 50,
"description": "Job titles to drop. A person is removed when a job title matches any phrase. Square brackets work as in `include`."
},
"include": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 50,
"description": "Job titles to look for. A person matches when a job title has all the words of at least one phrase. Put a phrase in square brackets, such as `[Head of Sales]`, to match the whole title exactly, ignoring case and accents."
},
"include_linkedin_headline": {
"type": "boolean",
"default": false,
"examples": [
false
],
"description": "Also match the job title phrases against the LinkedIn headline of each person. A person then matches when the headline or the job title matches."
}
},
"description": "Find at least one person with the given job title in the company",
"additionalProperties": false
},
"job_function": {
"type": "array",
"items": {
"enum": [
"Advertising & Marketing",
"Art, Culture and Creative Professionals",
"Construction",
"Customer/Client Service",
"Education",
"Engineering",
"Finance & Accounting",
"General Business & Management",
"Healthcare & Human Services",
"Human Resources",
"Information Technology",
"Legal",
"Manufacturing & Production",
"Operations",
"Other",
"Public Administration & Safety",
"Purchasing",
"Research & Development",
"Sales & Business Development",
"Science",
"Supply Chain & Logistics",
"Writing/Editing"
],
"type": "string"
},
"maxItems": 50,
"description": "Job functions to keep. A person matches when their job has any of the listed functions."
},
"is_recent_hire": {
"type": "boolean",
"default": false,
"examples": [
false
],
"description": "Keep only people whose matching job started in the last 90 days. That job must also match the other job and company filters. A job with no start date never matches. On people search, the jobs checked are the ones that `include_active_jobs` and `include_past_jobs` select (current jobs by default)."
},
"min_connections": {
"type": "number",
"default": 0,
"maximum": 500,
"minimum": 0,
"description": "Smallest number of LinkedIn connections a person must have. 0 means no lower bound."
},
"include_past_jobs": {
"type": "boolean",
"default": false,
"examples": [
false
],
"description": "Also look in the past jobs of each person. A person is returned once, with the matched job; a current job is preferred to a past one."
},
"include_active_jobs": {
"type": "boolean",
"default": true,
"examples": [
true
],
"description": "Look in the current jobs of each person. The job, company and job title filters must all hold in the same job. The matched job is returned in `experiences`, and `job_is_current` tells whether it is current."
}
},
"description": "People search criteria for company matching",
"additionalProperties": false
},
"company": {
"type": "object",
"properties": {
"hq": {
"type": "object",
"properties": {
"city": {
"type": "object",
"properties": {
"exclude": {
"$ref": "#/$defs/s9"
},
"include": {
"$ref": "#/$defs/s8"
}
},
"description": "Keywords searched to find the headquarters city of the company, so `San` finds `San Francisco`",
"additionalProperties": false
},
"state": {
"type": "object",
"properties": {
"exclude": {
"$ref": "#/$defs/s9"
},
"include": {
"$ref": "#/$defs/s8"
}
},
"description": "Keywords searched to find the headquarters state/province of the company",
"additionalProperties": false
},
"continent": {
"type": "array",
"items": {
"$ref": "#/$defs/s10"
},
"maxItems": 50,
"description": "Continents of the headquarters to keep. A company matches when its headquarters is on any of them."
},
"country_code": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"maxItems": 50,
"description": "Country codes of the headquarters to keep, such as `US` or `FR`. Letter case does not matter."
},
"sales_region": {
"type": "array",
"items": {
"$ref": "#/$defs/s11"
},
"maxItems": 50,
"description": "Sales regions of the headquarters to keep. `NORAM` is North America, `LATAM` Latin America, `EMEA` Europe, Middle East and Africa, `APAC` Asia-Pacific."
}
},
"description": "Location of the headquarters of the company",
"additionalProperties": false
},
"mx": {
"type": "object",
"properties": {
"provider": {
"type": "object",
"properties": {
"exclude": {
"type": "array",
"items": {
"$ref": "#/$defs/s4"
},
"maxItems": 50,
"description": "Mail providers to drop. Use `any` to keep only companies that have no MX data."
},
"include": {
"type": "array",
"items": {
"$ref": "#/$defs/s4"
},
"maxItems": 50,
"description": "Mail providers to keep. Use `any` to keep every company that has MX data."
}
},
"description": "Known mail providers, such as `google` or `microsoft`. A company matches when any of its domains uses the provider. `any` stands for every provider: in `include` it keeps companies with MX data, in `exclude` it keeps companies with no MX data. Use `include: [\"any\"], exclude: [\"google\"]` for companies with MX data that do not use Google.",
"additionalProperties": false
}
},
"description": "Mail provider of the company, from the MX records of its domains. Companies with no MX data are never matched by `include` and `exclude` never drops them, unless you use `any`.",
"additionalProperties": false
},
"name": {
"type": "object",
"properties": {
"exclude": {
"$ref": "#/$defs/s1"
},
"include": {
"$ref": "#/$defs/s0"
}
},
"description": "Keywords searched in the company name",
"additionalProperties": false
},
"type": {
"type": "object",
"properties": {
"exclude": {
"type": "array",
"items": {
"$ref": "#/$defs/s3"
},
"maxItems": 50,
"description": "Company types to drop. A company is removed when its type is any listed value."
},
"include": {
"type": "array",
"items": {
"$ref": "#/$defs/s3"
},
"maxItems": 50,
"description": "Company types to keep. A company matches when its type is any listed value."
}
},
"description": "Exact matches for the company type search",
"additionalProperties": false
},
"revenue": {
"type": "object",
"properties": {
"max": {
"type": "number",
"default": 0,
"minimum": 0,
"description": "Highest value to match. 0 means no upper bound."
},
"min": {
"type": "number",
"default": 0,
"minimum": 0,
"description": "Lowest value to match. 0 means no lower bound."
}
},
"description": "Range search for company revenue (USD). Matches companies whose revenue band overlaps the requested range.",
"additionalProperties": false
},
"ad_spend": {
"type": "object",
"properties": {
"max": {
"type": "number",
"default": 0,
"maximum": 1000000000000,
"minimum": 0,
"description": "Highest monthly Google ad spend to match, inclusive. 0 means no upper bound."
},
"min": {
"type": "number",
"default": 0,
"maximum": 1000000000000,
"minimum": 0,
"description": "Lowest monthly Google ad spend to match, inclusive. 0 means no lower bound."
}
},
"description": "Range search for monthly Google ad spend, as a whole amount per month. The data records no currency.",
"additionalProperties": false
},
"industry": {
"type": "object",
"properties": {
"exclude": {
"type": "array",
"items": {
"$ref": "#/$defs/s2"
},
"maxItems": 50,
"description": "Industries to drop, as exact LinkedIn labels. `Unknown` drops a record with no industry on file."
},
"include": {
"type": "array",
"items": {
"$ref": "#/$defs/s2"
},
"maxItems": 50,
"description": "Industries to keep, as exact LinkedIn labels. `Unknown` also keeps a record with no industry on file."
}
},
"description": "Exact matches for the industry search. `Unknown` matches a company with no industry on file, and a person with no company: in `include` it is added to the listed industries, in `exclude` it drops them.",
"additionalProperties": false
},
"keywords": {
"type": "object",
"properties": {
"exclude": {
"$ref": "#/$defs/s1"
},
"include": {
"$ref": "#/$defs/s0"
}
},
"description": "Keywords searched in the company description: about text, specialties, NAICS and SIC descriptions, and Crunchbase and G2 categories",
"additionalProperties": false
},
"sic_code": {
"type": "object",
"properties": {
"exclude": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"maxItems": 50,
"description": "SIC codes to drop. A company is removed when its code is any listed code."
},
"include": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"maxItems": 50,
"description": "SIC codes to keep. A company matches when its code is any listed code."
}
},
"description": "Exact matches for the SIC industry codes",
"additionalProperties": false
},
"naics_code": {
"type": "object",
"properties": {
"exclude": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"maxItems": 50,
"description": "NAICS codes to drop. A company is removed when its code is any listed code."
},
"include": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"maxItems": 50,
"description": "NAICS codes to keep. A company matches when its code is any listed code."
}
},
"description": "Exact matches for the NAICS industry codes",
"additionalProperties": false
},
"web_traffic": {
"type": "object",
"properties": {
"max": {
"type": "number",
"default": 0,
"maximum": 2147483647,
"minimum": 0,
"description": "Highest value to match. 0 means no upper bound."
},
"min": {
"type": "number",
"default": 0,
"maximum": 2147483647,
"minimum": 0,
"description": "Lowest value to match. 0 means no lower bound."
}
},
"description": "Range search for total monthly web traffic (organic + paid).",
"additionalProperties": false
},
"founded_year": {
"type": "object",
"properties": {
"max": {
"type": "number",
"default": 0,
"maximum": 1000000000,
"minimum": 0,
"description": "Highest value to match. 0 means no upper bound."
},
"min": {
"type": "number",
"default": 0,
"maximum": 1000000000,
"minimum": 0,
"description": "Lowest value to match. 0 means no lower bound."
}
},
"description": "Range search for the year the company was founded",
"additionalProperties": false
},
"linkedin_url": {
"type": "array",
"items": {
"type": "string",
"examples": [
"https://www.linkedin.com/company/blitz-api"
]
},
"maxItems": 50,
"description": "LinkedIn page URLs of the companies to search in. Use it to limit the search to companies you already know."
},
"total_funding": {
"type": "object",
"properties": {
"max": {
"$ref": "#/$defs/s6"
},
"min": {
"$ref": "#/$defs/s5"
}
},
"description": "Range search for total funding amount (USD).",
"additionalProperties": false
},
"employee_count": {
"type": "object",
"properties": {
"max": {
"type": "number",
"default": 0,
"maximum": 1000000,
"minimum": 0,
"description": "Highest value to match. 0 means no upper bound."
},
"min": {
"type": "number",
"default": 0,
"maximum": 980000,
"minimum": 0,
"description": "Lowest value to match. 0 means no lower bound."
}
},
"description": "Range search for the number of employees on LinkedIn",
"additionalProperties": false
},
"employee_range": {
"type": "array",
"items": {
"enum": [
"1-10",
"11-50",
"51-200",
"201-500",
"501-1000",
"1001-5000",
"5001-10000",
"10001+"
],
"type": "string"
},
"maxItems": 50,
"description": "Employee-count bands to keep. A company matches when its band is any of the listed ones. An empty list does not filter."
},
"lead_investors": {
"type": "object",
"properties": {
"exclude": {
"$ref": "#/$defs/s1"
},
"include": {
"$ref": "#/$defs/s0"
}
},
"description": "Keywords searched in lead investor names",
"additionalProperties": false
},
"last_funding_type": {
"type": "object",
"properties": {
"exclude": {
"type": "array",
"items": {
"$ref": "#/$defs/s7"
},
"maxItems": 50,
"description": "Funding round types to drop. A company is removed when its last round is any listed type."
},
"include": {
"type": "array",
"items": {
"$ref": "#/$defs/s7"
},
"maxItems": 50,
"description": "Funding round types to keep. A company matches when its last round is any listed type."
}
},
"description": "Exact matches for the last funding round type",
"additionalProperties": false
},
"last_funding_year": {
"type": "object",
"properties": {
"max": {
"type": "number",
"default": 0,
"maximum": 2026,
"minimum": 0,
"description": "Highest value to match. 0 means no upper bound."
},
"min": {
"type": "number",
"default": 0,
"maximum": 2026,
"minimum": 0,
"description": "Lowest value to match. 0 means no lower bound."
}
},
"description": "Range search for the year of the last funding round. 0 = unset, otherwise a year from 1800.",
"additionalProperties": false
},
"last_funding_amount": {
"type": "object",
"properties": {
"max": {
"$ref": "#/$defs/s6"
},
"min": {
"$ref": "#/$defs/s5"
}
},
"description": "Range search for the last funding round amount (USD).",
"additionalProperties": false
},
"min_linkedin_followers": {
"type": "number",
"default": 0,
"maximum": 10000000,
"minimum": 0,
"description": "Smallest number of LinkedIn followers a company must have. 0 means no lower bound."
}
},
"description": "Company search criteria",
"additionalProperties": false
},
"max_results": {
"type": "number",
"default": 10,
"maximum": 50,
"minimum": 1,
"examples": [
10
],
"description": "How many results to return in this call. Each result returned uses one record."
}
},
"additionalProperties": false
},
"annotations": {
"title": "Search people across companies",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}
}
Find best-fit people at one company by title priority
Expand internal abbreviations and remove technical prefixes from the display title.
Description98/100
Find the best-fit people at ONE company by priority title tiers (cascade: try tier-1 titles, fall back to tier-2, and so on, stopping at `max_results`). Use when you have ranked title preferences for a single company; use people_employee_finder for a flat roster. Input: `company_linkedin_url` plus an ordered `cascade` of tiers (each with `include_title`/`exclude_title` and a `location`). Returns: `company_linkedin_url`, `results_length` and `max_results` (both the number of people found) and `results`, each with `person` (name, headline, about, location, LinkedIn URL, connections count, `experiences`, education, skills and certifications; `experiences` holds the job that matched), `icp` (the number of the tier that found the person, from 1) and `ranking` (position in the list, from 1). No email or phone number is returned; use people_find_work_email or people_find_phone. Cost: 1 record per result.
The description explains the capability, when to use it, and what to expect.
Inputs95/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company_linkedin_url
LinkedIn page URL of the company to search in. Take it from the `linkedin_url` of a company search result, or copy it from the company's LinkedIn page.
Clear enough to supply this argument.
cascade › items › include_title
Job titles to look for in this tier. A person matches when a job title has all the words of at least one phrase. Put a phrase in square brackets, such as `[CEO]`, to match the whole title exactly, ignoring case and accents.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
cascade › items › exclude_title
Job titles to drop in this tier. A person is removed when a job title matches any phrase. Square brackets work as in `include_title`.
Clear enough to supply this argument.
cascade › items › location
Country codes of where the people live, matched exactly against the country code of each profile, such as `US` or `FR`. Letter case does not matter. `WORLD` is not a country: it turns the country filter off, and so does an empty list.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
cascade › items › include_headline_search
Also match the title phrases of this tier against the LinkedIn headline of each person. A person then matches when the headline or the job title matches.
Clear enough to supply this argument.
cascade › items › include_active_jobs
Look in the current jobs of each person. The company and title filters of this tier must hold in the same job. The matched job is returned in `experiences`, and `job_is_current` tells whether it is current.
Clear enough to supply this argument.
cascade › items › include_past_jobs
Also look in the past jobs of each person. A person is returned once, with the matched job; a current job is preferred to a past one.
Clear enough to supply this argument.
cascade › items › is_recent_hire
Keep only people whose matching job at the company started in the last 90 days. The jobs checked are the ones that `include_active_jobs` and `include_past_jobs` of this tier select (current jobs by default). That job must also match the title filters of this tier. A job with no start date never matches.
Clear enough to supply this argument.
max_results
How many people to return across all tiers. Tiers are tried in order until this many people are found. Each result returned uses one record.
Clear enough to supply this argument.
profile_min_connections
Smallest number of LinkedIn connections a person must have, for every tier. 0 means no lower bound.
Clear enough to supply this argument.
Annotations100/100
All four behavior hints are declared.
{
"title": "Find best-fit people at one company by title priority",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}
Output schema0/100
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "people_waterfall_icp",
"title": "Find best-fit people at one company by title priority",
"description": "Find the best-fit people at ONE company by priority title tiers (cascade: try tier-1 titles, fall back to tier-2, and so on, stopping at `max_results`). Use when you have ranked title preferences for a single company; use people_employee_finder for a flat roster. Input: `company_linkedin_url` plus an ordered `cascade` of tiers (each with `include_title`/`exclude_title` and a `location`). Returns: `company_linkedin_url`, `results_length` and `max_results` (both the number of people found) and `results`, each with `person` (name, headline, about, location, LinkedIn URL, connections count, `experiences`, education, skills and certifications; `experiences` holds the job that matched), `icp` (the number of the tier that found the person, from 1) and `ranking` (position in the list, from 1). No email or phone number is returned; use people_find_work_email or people_find_phone. Cost: 1 record per result.",
"inputSchema": {
"type": "object",
"required": [
"company_linkedin_url",
"cascade"
],
"properties": {
"cascade": {
"type": "array",
"items": {
"type": "object",
"required": [
"include_title"
],
"properties": {
"location": {
"type": "array",
"items": {
"type": "string",
"minLength": 2
},
"default": [
"WORLD"
],
"maxItems": 50,
"description": "Country codes of where the people live, matched exactly against the country code of each profile, such as `US` or `FR`. Letter case does not matter. `WORLD` is not a country: it turns the country filter off, and so does an empty list."
},
"exclude_title": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 50,
"description": "Job titles to drop in this tier. A person is removed when a job title matches any phrase. Square brackets work as in `include_title`."
},
"include_title": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 50,
"minItems": 1,
"description": "Job titles to look for in this tier. A person matches when a job title has all the words of at least one phrase. Put a phrase in square brackets, such as `[CEO]`, to match the whole title exactly, ignoring case and accents."
},
"is_recent_hire": {
"type": "boolean",
"default": false,
"examples": [
false
],
"description": "Keep only people whose matching job at the company started in the last 90 days. The jobs checked are the ones that `include_active_jobs` and `include_past_jobs` of this tier select (current jobs by default). That job must also match the title filters of this tier. A job with no start date never matches."
},
"include_past_jobs": {
"type": "boolean",
"default": false,
"examples": [
false
],
"description": "Also look in the past jobs of each person. A person is returned once, with the matched job; a current job is preferred to a past one."
},
"include_active_jobs": {
"type": "boolean",
"default": true,
"examples": [
true
],
"description": "Look in the current jobs of each person. The company and title filters of this tier must hold in the same job. The matched job is returned in `experiences`, and `job_is_current` tells whether it is current."
},
"include_headline_search": {
"type": "boolean",
"default": false,
"description": "Also match the title phrases of this tier against the LinkedIn headline of each person. A person then matches when the headline or the job title matches."
}
},
"additionalProperties": false
},
"maxItems": 10,
"minItems": 1,
"description": "Priority tiers of title filters, tried in order. A person found by an earlier tier is not repeated by a later one."
},
"max_results": {
"type": "number",
"default": 10,
"maximum": 100,
"minimum": 1,
"examples": [
3
],
"description": "How many people to return across all tiers. Tiers are tried in order until this many people are found. Each result returned uses one record."
},
"company_linkedin_url": {
"type": "string",
"examples": [
"https://www.linkedin.com/company/openai"
],
"description": "LinkedIn page URL of the company to search in. Take it from the `linkedin_url` of a company search result, or copy it from the company's LinkedIn page."
},
"profile_min_connections": {
"type": "number",
"default": 0,
"minimum": 0,
"description": "Smallest number of LinkedIn connections a person must have, for every tier. 0 means no lower bound."
}
},
"additionalProperties": false
},
"annotations": {
"title": "Find best-fit people at one company by title priority",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description95/100
Get a company's employee headcount distribution bucketed by ISO 3166-1 alpha-2 country code. Input: `company_linkedin_url`, optional `is_recent_hire`. Returns: `found`, `company_linkedin_url`, `total_employees` and a `distribution` list of `country` (ISO code, or `unknown`), `count` and `percentage_ratio` (0-100). Cost: 1 record on success.
The description explains the capability, when to use it, and what to expect.
Inputs99/100
Input documentation gives an agent enough context to populate the arguments.
company_linkedin_url
LinkedIn page URL of the company whose employees to count. Take it from the `linkedin_url` of a company search result, or copy it from the company's LinkedIn page.
Clear enough to supply this argument.
is_recent_hire
Only count people whose current job at the company started in the last 90 days. A job with no start date is not counted.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "company_employees_by_country",
"title": "Company headcount by country",
"description": "Get a company's employee headcount distribution bucketed by ISO 3166-1 alpha-2 country code. Input: `company_linkedin_url`, optional `is_recent_hire`. Returns: `found`, `company_linkedin_url`, `total_employees` and a `distribution` list of `country` (ISO code, or `unknown`), `count` and `percentage_ratio` (0-100). Cost: 1 record on success.",
"inputSchema": {
"type": "object",
"required": [
"company_linkedin_url"
],
"properties": {
"is_recent_hire": {
"type": "boolean",
"default": false,
"examples": [
false
],
"description": "Only count people whose current job at the company started in the last 90 days. A job with no start date is not counted."
},
"company_linkedin_url": {
"type": "string",
"examples": [
"https://www.linkedin.com/company/openai"
],
"description": "LinkedIn page URL of the company whose employees to count. Take it from the `linkedin_url` of a company search result, or copy it from the company's LinkedIn page."
}
},
"additionalProperties": false
},
"annotations": {
"title": "Company headcount by country",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description95/100
Get a company's employee headcount distribution bucketed by department (unclassified employees counted under `Other`). Input: `company_linkedin_url`, optional `is_recent_hire`. Returns: `found`, `company_linkedin_url`, `total_employees` and a `distribution` list of `department`, `count` and `percentage_ratio` (0-100). Cost: 1 record on success.
The description explains the capability, when to use it, and what to expect.
Inputs99/100
Input documentation gives an agent enough context to populate the arguments.
company_linkedin_url
LinkedIn page URL of the company whose employees to count. Take it from the `linkedin_url` of a company search result, or copy it from the company's LinkedIn page.
Clear enough to supply this argument.
is_recent_hire
Only count people whose current job at the company started in the last 90 days. A job with no start date is not counted.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "company_employees_by_department",
"title": "Company headcount by department",
"description": "Get a company's employee headcount distribution bucketed by department (unclassified employees counted under `Other`). Input: `company_linkedin_url`, optional `is_recent_hire`. Returns: `found`, `company_linkedin_url`, `total_employees` and a `distribution` list of `department`, `count` and `percentage_ratio` (0-100). Cost: 1 record on success.",
"inputSchema": {
"type": "object",
"required": [
"company_linkedin_url"
],
"properties": {
"is_recent_hire": {
"type": "boolean",
"default": false,
"examples": [
false
],
"description": "Only count people whose current job at the company started in the last 90 days. A job with no start date is not counted."
},
"company_linkedin_url": {
"type": "string",
"examples": [
"https://www.linkedin.com/company/openai"
],
"description": "LinkedIn page URL of the company whose employees to count. Take it from the `linkedin_url` of a company search result, or copy it from the company's LinkedIn page."
}
},
"additionalProperties": false
},
"annotations": {
"title": "Company headcount by department",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description99/100
Get one company's full firmographic record from its LinkedIn URL. Use for a single known company; use company_search to discover companies by filters. Input: `company_linkedin_url`. Returns: `found` and `company` (LinkedIn URL and id, name, about, specialties, industry, type, size, employee count on LinkedIn, followers, founded year, headquarters, domain, website, and `mx` mail records of the domain), or `company: null` when the company has no data. Cost: 1 record.
The description explains the capability, when to use it, and what to expect.
Inputs99/100
Input documentation gives an agent enough context to populate the arguments.
company_linkedin_url
LinkedIn page URL of the company. Take it from the `linkedin_url` of a company search result or the `company_linkedin_url` of a person's experience, or copy it from the company's LinkedIn page.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "company_enrich",
"title": "Enrich one company",
"description": "Get one company's full firmographic record from its LinkedIn URL. Use for a single known company; use company_search to discover companies by filters. Input: `company_linkedin_url`. Returns: `found` and `company` (LinkedIn URL and id, name, about, specialties, industry, type, size, employee count on LinkedIn, followers, founded year, headquarters, domain, website, and `mx` mail records of the domain), or `company: null` when the company has no data. Cost: 1 record.",
"inputSchema": {
"type": "object",
"required": [
"company_linkedin_url"
],
"properties": {
"company_linkedin_url": {
"type": "string",
"examples": [
"https://www.linkedin.com/company/blitz-api"
],
"description": "LinkedIn page URL of the company. Take it from the `linkedin_url` of a company search result or the `company_linkedin_url` of a person's experience, or copy it from the company's LinkedIn page."
}
},
"additionalProperties": false
},
"annotations": {
"title": "Enrich one company",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description94/100
Find a company's LinkedIn URL from its web domain (inverse of company_get_domain). Input: `domain`. Returns: a company LinkedIn URL. Cost: 1 record.
The description explains the capability, when to use it, and what to expect.
Inputs100/100
Input documentation gives an agent enough context to populate the arguments.
domain
Web domain of the company. A full URL is accepted and reduced to its main domain, so `https://www.blitz-api.ai/about` becomes `blitz-api.ai`.
Clear enough to supply this argument.
Annotations100/100
All four behavior hints are declared.
{
"title": "Find a company by domain",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}
Output schema0/100
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "company_find_by_domain",
"title": "Find a company by domain",
"description": "Find a company's LinkedIn URL from its web domain (inverse of company_get_domain). Input: `domain`. Returns: a company LinkedIn URL. Cost: 1 record.",
"inputSchema": {
"type": "object",
"required": [
"domain"
],
"properties": {
"domain": {
"type": "string",
"examples": [
"blitz-api.ai"
],
"description": "Web domain of the company. A full URL is accepted and reduced to its main domain, so `https://www.blitz-api.ai/about` becomes `blitz-api.ai`."
}
},
"additionalProperties": false
},
"annotations": {
"title": "Find a company by domain",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description96/100
Get a company's web domain from its LinkedIn URL (inverse of company_find_by_domain). Input: `company_linkedin_url`. Returns: the web domain under the `email_domain` field. Cost: 1 record on success.
The description explains the capability, when to use it, and what to expect.
Inputs99/100
Input documentation gives an agent enough context to populate the arguments.
company_linkedin_url
LinkedIn page URL of the company. Take it from the `linkedin_url` of a company search result or the `company_linkedin_url` of a person's experience, or copy it from the company's LinkedIn page.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "company_get_domain",
"title": "Get a company's domain",
"description": "Get a company's web domain from its LinkedIn URL (inverse of company_find_by_domain). Input: `company_linkedin_url`. Returns: the web domain under the `email_domain` field. Cost: 1 record on success.",
"inputSchema": {
"type": "object",
"required": [
"company_linkedin_url"
],
"properties": {
"company_linkedin_url": {
"type": "string",
"examples": [
"https://www.linkedin.com/company/blitz-api"
],
"description": "LinkedIn page URL of the company. Take it from the `linkedin_url` of a company search result or the `company_linkedin_url` of a person's experience, or copy it from the company's LinkedIn page."
}
},
"additionalProperties": false
},
"annotations": {
"title": "Get a company's domain",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description88/100
Find companies by firmographic filters (name keywords, industry, type, size, geo). Use to build an account list from company attributes; use company_tam_by_jobs to build it from hiring demand instead. Input: a `company` filter block (nest all firmographic filters under `company`), `max_results`, `cursor`. Returns: `results` (companies, each with LinkedIn URL and id, name, about, specialties, industry, type, size, employee count on LinkedIn, followers, founded year, headquarters, domain and website; no employees, email or phone number), `total_results` (all matching companies), `results_length`, `max_results` and a `cursor` for the next page (null at the end). Cost: 1 record per result.
The description explains the capability, when to use it, and what to expect.
Inputs75/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › name › include
Keywords to keep. A record matches when it has all the words of at least one keyword.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › name › exclude
Keywords to drop. A record is removed when it has all the words of any one keyword.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › industry › include
Industries to keep, as exact LinkedIn labels. `Unknown` also keeps a record with no industry on file.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › industry › exclude
Industries to drop, as exact LinkedIn labels. `Unknown` drops a record with no industry on file.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › type › include
Company types to keep. A company matches when its type is any listed value.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › type › exclude
Company types to drop. A company is removed when its type is any listed value.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › employee_range
Employee-count bands to keep. A company matches when its band is any of the listed ones. An empty list does not filter.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › employee_count › min
Lowest value to match. 0 means no lower bound.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › employee_count › max
Highest value to match. 0 means no upper bound.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › min_linkedin_followers
Smallest number of LinkedIn followers a company must have. 0 means no lower bound.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › revenue › min
Lowest value to match. 0 means no lower bound.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › revenue › max
Highest value to match. 0 means no upper bound.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › naics_code › include
NAICS codes to keep. A company matches when its code is any listed code.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › naics_code › exclude
NAICS codes to drop. A company is removed when its code is any listed code.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › sic_code › include
SIC codes to keep. A company matches when its code is any listed code.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › sic_code › exclude
SIC codes to drop. A company is removed when its code is any listed code.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › mx › provider › include
Mail providers to keep. Use `any` to keep every company that has MX data.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › mx › provider › exclude
Mail providers to drop. Use `any` to keep only companies that have no MX data.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › web_traffic › min
Lowest value to match. 0 means no lower bound.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › web_traffic › max
Highest value to match. 0 means no upper bound.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › ad_spend › min
Lowest monthly Google ad spend to match, inclusive. 0 means no lower bound.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › ad_spend › max
Highest monthly Google ad spend to match, inclusive. 0 means no upper bound.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › total_funding › min
Lowest value to match. 0 means no lower bound.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › total_funding › max
Highest value to match. 0 means no upper bound.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › last_funding_amount › min
Lowest value to match. 0 means no lower bound.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › last_funding_amount › max
Highest value to match. 0 means no upper bound.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › last_funding_year › min
Lowest value to match. 0 means no lower bound.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › last_funding_year › max
Highest value to match. 0 means no upper bound.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › last_funding_type › include
Funding round types to keep. A company matches when its last round is any listed type.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › last_funding_type › exclude
Funding round types to drop. A company is removed when its last round is any listed type.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › lead_investors › include
Keywords to keep. A record matches when it has all the words of at least one keyword.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › lead_investors › exclude
Keywords to drop. A record is removed when it has all the words of any one keyword.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › keywords › include
Keywords to keep. A record matches when it has all the words of at least one keyword.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › keywords › exclude
Keywords to drop. A record is removed when it has all the words of any one keyword.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › founded_year › min
Lowest value to match. 0 means no lower bound.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › founded_year › max
Highest value to match. 0 means no upper bound.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › hq › city › include
Keywords to keep. A record matches when it has all the words of at least one keyword.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › hq › city › exclude
Keywords to drop. A record is removed when it has all the words of any one keyword.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › hq › state › include
Keywords to keep. A record matches when it has all the words of at least one keyword.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › hq › state › exclude
Keywords to drop. A record is removed when it has all the words of any one keyword.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › hq › country_code
Country codes of the headquarters to keep, such as `US` or `FR`. Letter case does not matter.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › hq › continent
Continents of the headquarters to keep. A company matches when its headquarters is on any of them.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › hq › sales_region
Sales regions of the headquarters to keep. `NORAM` is North America, `LATAM` Latin America, `EMEA` Europe, Middle East and Africa, `APAC` Asia-Pacific.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
max_results
How many results to return in this call. Each result returned uses one record.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
cursor
Paging token. Leave it out for the first page; for the next page, send back the `cursor` of the previous response. A null `cursor` in a response means no more results.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "company_search",
"title": "Search companies",
"description": "Find companies by firmographic filters (name keywords, industry, type, size, geo). Use to build an account list from company attributes; use company_tam_by_jobs to build it from hiring demand instead. Input: a `company` filter block (nest all firmographic filters under `company`), `max_results`, `cursor`. Returns: `results` (companies, each with LinkedIn URL and id, name, about, specialties, industry, type, size, employee count on LinkedIn, followers, founded year, headquarters, domain and website; no employees, email or phone number), `total_results` (all matching companies), `results_length`, `max_results` and a `cursor` for the next page (null at the end). Cost: 1 record per result.",
"inputSchema": {
"type": "object",
"$defs": {
"s0": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 50,
"description": "Keywords to keep. A record matches when it has all the words of at least one keyword."
},
"s1": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 50,
"description": "Keywords to drop. A record is removed when it has all the words of any one keyword."
},
"s2": {
"type": "string",
"description": "One of 535 allowed values (exact match, case-sensitive). Call docs_search or read the Blitz reference resources for the full list; invalid values are rejected."
},
"s3": {
"enum": [
"Educational",
"Educational Institution",
"Government Agency",
"Nonprofit",
"Partnership",
"Privately Held",
"Public Company",
"Self-Employed",
"Self-Owned",
"Sole Proprietorship"
],
"type": "string"
},
"s4": {
"enum": [
"any",
"google",
"microsoft",
"zoho",
"godaddy",
"proofpoint",
"mimecast",
"barracuda",
"cloudflare",
"ionos",
"hostinger",
"namecheap",
"fastmail",
"proton",
"strato",
"ovh",
"siteground",
"opensrs",
"one_com",
"tencent",
"titan",
"20i",
"rackspace",
"alibaba",
"open_xchange",
"infomaniak",
"jimdo",
"netease",
"gandi",
"register_it",
"hetzner",
"yahoo",
"amazon",
"yandex",
"locaweb",
"uol_host",
"fasthosts",
"kinghost",
"t_online",
"hostopia",
"united_domains",
"hostpoint",
"mijndomein",
"icloud",
"reg123",
"mailhostbox",
"transip",
"natro",
"names_co_uk",
"intermedia",
"hostnet",
"aruba",
"loopia",
"netcup",
"lolipop",
"simply",
"domeneshop",
"hornetsecurity",
"mailchannels",
"appriver",
"trendmicro",
"spamexperts",
"cisco",
"sophos",
"mesh",
"mailinblack"
],
"type": "string"
},
"s5": {
"type": "number",
"default": 0,
"maximum": 1000000000000,
"minimum": 0,
"description": "Lowest value to match. 0 means no lower bound."
},
"s6": {
"type": "number",
"default": 0,
"maximum": 1000000000000,
"minimum": 0,
"description": "Highest value to match. 0 means no upper bound."
},
"s7": {
"enum": [
"Series unknown",
"Pre seed",
"Seed",
"Series A",
"Series B",
"Series C",
"Series D",
"Series E-J",
"Grant",
"Angel",
"Private equity",
"Debt financing",
"Non equity assistance",
"Post IPO equity",
"Undisclosed",
"Post IPO debt",
"Product crowdfunding",
"Equity crowdfunding",
"Corporate round",
"Convertible note",
"Secondary market",
"Initial coin offering",
"Post IPO secondary"
],
"type": "string"
},
"s8": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"maxItems": 50,
"description": "Keywords to keep. A record matches when it has all the words of at least one keyword."
},
"s9": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"maxItems": 50,
"description": "Keywords to drop. A record is removed when it has all the words of any one keyword."
}
},
"properties": {
"cursor": {
"anyOf": [
{
"type": "string",
"minLength": 3
},
{
"type": "null"
}
],
"default": null,
"examples": [
null
],
"description": "Paging token. Leave it out for the first page; for the next page, send back the `cursor` of the previous response. A null `cursor` in a response means no more results."
},
"company": {
"type": "object",
"properties": {
"hq": {
"type": "object",
"properties": {
"city": {
"type": "object",
"properties": {
"exclude": {
"$ref": "#/$defs/s9"
},
"include": {
"$ref": "#/$defs/s8"
}
},
"description": "Keywords searched to find the headquarters city of the company, so `San` finds `San Francisco`",
"additionalProperties": false
},
"state": {
"type": "object",
"properties": {
"exclude": {
"$ref": "#/$defs/s9"
},
"include": {
"$ref": "#/$defs/s8"
}
},
"description": "Keywords searched to find the headquarters state/province of the company",
"additionalProperties": false
},
"continent": {
"type": "array",
"items": {
"enum": [
"Africa",
"Antarctica",
"Asia",
"Europe",
"North America",
"Oceania",
"South America"
],
"type": "string"
},
"maxItems": 50,
"description": "Continents of the headquarters to keep. A company matches when its headquarters is on any of them."
},
"country_code": {
"type": "array",
"items": {
"type": "string",
"maxLength": 3,
"minLength": 2
},
"maxItems": 50,
"description": "Country codes of the headquarters to keep, such as `US` or `FR`. Letter case does not matter."
},
"sales_region": {
"type": "array",
"items": {
"enum": [
"NORAM",
"LATAM",
"EMEA",
"APAC"
],
"type": "string"
},
"maxItems": 50,
"description": "Sales regions of the headquarters to keep. `NORAM` is North America, `LATAM` Latin America, `EMEA` Europe, Middle East and Africa, `APAC` Asia-Pacific."
}
},
"description": "Location of the headquarters of the company",
"additionalProperties": false
},
"mx": {
"type": "object",
"properties": {
"provider": {
"type": "object",
"properties": {
"exclude": {
"type": "array",
"items": {
"$ref": "#/$defs/s4"
},
"maxItems": 50,
"description": "Mail providers to drop. Use `any` to keep only companies that have no MX data."
},
"include": {
"type": "array",
"items": {
"$ref": "#/$defs/s4"
},
"maxItems": 50,
"description": "Mail providers to keep. Use `any` to keep every company that has MX data."
}
},
"description": "Known mail providers, such as `google` or `microsoft`. A company matches when any of its domains uses the provider. `any` stands for every provider: in `include` it keeps companies with MX data, in `exclude` it keeps companies with no MX data. Use `include: [\"any\"], exclude: [\"google\"]` for companies with MX data that do not use Google.",
"additionalProperties": false
}
},
"description": "Mail provider of the company, from the MX records of its domains. Companies with no MX data are never matched by `include` and `exclude` never drops them, unless you use `any`.",
"additionalProperties": false
},
"name": {
"type": "object",
"properties": {
"exclude": {
"$ref": "#/$defs/s1"
},
"include": {
"$ref": "#/$defs/s0"
}
},
"description": "Keywords searched in the company name",
"additionalProperties": false
},
"type": {
"type": "object",
"properties": {
"exclude": {
"type": "array",
"items": {
"$ref": "#/$defs/s3"
},
"maxItems": 50,
"description": "Company types to drop. A company is removed when its type is any listed value."
},
"include": {
"type": "array",
"items": {
"$ref": "#/$defs/s3"
},
"maxItems": 50,
"description": "Company types to keep. A company matches when its type is any listed value."
}
},
"description": "Exact matches for the company type search",
"additionalProperties": false
},
"revenue": {
"type": "object",
"properties": {
"max": {
"type": "number",
"default": 0,
"minimum": 0,
"description": "Highest value to match. 0 means no upper bound."
},
"min": {
"type": "number",
"default": 0,
"minimum": 0,
"description": "Lowest value to match. 0 means no lower bound."
}
},
"description": "Range search for company revenue (USD). Matches companies whose revenue band overlaps the requested range.",
"additionalProperties": false
},
"ad_spend": {
"type": "object",
"properties": {
"max": {
"type": "number",
"default": 0,
"maximum": 1000000000000,
"minimum": 0,
"description": "Highest monthly Google ad spend to match, inclusive. 0 means no upper bound."
},
"min": {
"type": "number",
"default": 0,
"maximum": 1000000000000,
"minimum": 0,
"description": "Lowest monthly Google ad spend to match, inclusive. 0 means no lower bound."
}
},
"description": "Range search for monthly Google ad spend, as a whole amount per month. The data records no currency.",
"additionalProperties": false
},
"industry": {
"type": "object",
"properties": {
"exclude": {
"type": "array",
"items": {
"$ref": "#/$defs/s2"
},
"maxItems": 50,
"description": "Industries to drop, as exact LinkedIn labels. `Unknown` drops a record with no industry on file."
},
"include": {
"type": "array",
"items": {
"$ref": "#/$defs/s2"
},
"maxItems": 50,
"description": "Industries to keep, as exact LinkedIn labels. `Unknown` also keeps a record with no industry on file."
}
},
"description": "Exact matches for the industry search. `Unknown` matches companies with no industry on file: in `include` it is added to the listed industries, in `exclude` it drops them.",
"additionalProperties": false
},
"keywords": {
"type": "object",
"properties": {
"exclude": {
"$ref": "#/$defs/s1"
},
"include": {
"$ref": "#/$defs/s0"
}
},
"description": "Keywords searched in the company description: about text, specialties, NAICS and SIC descriptions, and Crunchbase and G2 categories",
"additionalProperties": false
},
"sic_code": {
"type": "object",
"properties": {
"exclude": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"maxItems": 50,
"description": "SIC codes to drop. A company is removed when its code is any listed code."
},
"include": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"maxItems": 50,
"description": "SIC codes to keep. A company matches when its code is any listed code."
}
},
"description": "Exact matches for the SIC industry codes",
"additionalProperties": false
},
"naics_code": {
"type": "object",
"properties": {
"exclude": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"maxItems": 50,
"description": "NAICS codes to drop. A company is removed when its code is any listed code."
},
"include": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"maxItems": 50,
"description": "NAICS codes to keep. A company matches when its code is any listed code."
}
},
"description": "Exact matches for the NAICS industry codes",
"additionalProperties": false
},
"web_traffic": {
"type": "object",
"properties": {
"max": {
"type": "number",
"default": 0,
"maximum": 2147483647,
"minimum": 0,
"description": "Highest value to match. 0 means no upper bound."
},
"min": {
"type": "number",
"default": 0,
"maximum": 2147483647,
"minimum": 0,
"description": "Lowest value to match. 0 means no lower bound."
}
},
"description": "Range search for total monthly web traffic (organic + paid).",
"additionalProperties": false
},
"founded_year": {
"type": "object",
"properties": {
"max": {
"type": "number",
"default": 0,
"maximum": 1000000000,
"minimum": 0,
"description": "Highest value to match. 0 means no upper bound."
},
"min": {
"type": "number",
"default": 0,
"maximum": 1000000000,
"minimum": 0,
"description": "Lowest value to match. 0 means no lower bound."
}
},
"description": "Range search for the year the company was founded",
"additionalProperties": false
},
"total_funding": {
"type": "object",
"properties": {
"max": {
"$ref": "#/$defs/s6"
},
"min": {
"$ref": "#/$defs/s5"
}
},
"description": "Range search for total funding amount (USD).",
"additionalProperties": false
},
"employee_count": {
"type": "object",
"properties": {
"max": {
"type": "number",
"default": 0,
"maximum": 1000000,
"minimum": 0,
"description": "Highest value to match. 0 means no upper bound."
},
"min": {
"type": "number",
"default": 0,
"maximum": 980000,
"minimum": 0,
"description": "Lowest value to match. 0 means no lower bound."
}
},
"description": "Range search for the number of employees on LinkedIn",
"additionalProperties": false
},
"employee_range": {
"type": "array",
"items": {
"enum": [
"1-10",
"11-50",
"51-200",
"201-500",
"501-1000",
"1001-5000",
"5001-10000",
"10001+"
],
"type": "string"
},
"maxItems": 50,
"description": "Employee-count bands to keep. A company matches when its band is any of the listed ones. An empty list does not filter."
},
"lead_investors": {
"type": "object",
"properties": {
"exclude": {
"$ref": "#/$defs/s1"
},
"include": {
"$ref": "#/$defs/s0"
}
},
"description": "Keywords searched in lead investor names",
"additionalProperties": false
},
"last_funding_type": {
"type": "object",
"properties": {
"exclude": {
"type": "array",
"items": {
"$ref": "#/$defs/s7"
},
"maxItems": 50,
"description": "Funding round types to drop. A company is removed when its last round is any listed type."
},
"include": {
"type": "array",
"items": {
"$ref": "#/$defs/s7"
},
"maxItems": 50,
"description": "Funding round types to keep. A company matches when its last round is any listed type."
}
},
"description": "Exact matches for the last funding round type",
"additionalProperties": false
},
"last_funding_year": {
"type": "object",
"properties": {
"max": {
"type": "number",
"default": 0,
"maximum": 2026,
"minimum": 0,
"description": "Highest value to match. 0 means no upper bound."
},
"min": {
"type": "number",
"default": 0,
"maximum": 2026,
"minimum": 0,
"description": "Lowest value to match. 0 means no lower bound."
}
},
"description": "Range search for the year of the last funding round. 0 = unset, otherwise a year from 1800.",
"additionalProperties": false
},
"last_funding_amount": {
"type": "object",
"properties": {
"max": {
"$ref": "#/$defs/s6"
},
"min": {
"$ref": "#/$defs/s5"
}
},
"description": "Range search for the last funding round amount (USD).",
"additionalProperties": false
},
"min_linkedin_followers": {
"type": "number",
"default": 0,
"maximum": 10000000,
"minimum": 0,
"examples": [
1
],
"description": "Smallest number of LinkedIn followers a company must have. 0 means no lower bound."
}
},
"description": "Company search criteria",
"additionalProperties": false
},
"max_results": {
"type": "number",
"default": 10,
"maximum": 50,
"minimum": 1,
"examples": [
3
],
"description": "How many results to return in this call. Each result returned uses one record."
}
},
"additionalProperties": false
},
"annotations": {
"title": "Search companies",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description95/100
Turn hiring demand into a target-account list: the distinct companies posting jobs that match your filters, deduped, each with a matched-jobs count. Input: `job` and `company` filters (optionally `job.min_per_company`), `max_results`, `cursor`. Returns: companies each with a `matched_jobs` count. Cost: 1 record per result.
The description explains the capability, when to use it, and what to expect.
Inputs78/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
job › title › include
Phrases to keep. A record matches when it matches at least one phrase.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
job › title › exclude
Phrases to drop. A record is removed when it matches any phrase.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
job › description › include
Phrases to keep. A record matches when it matches at least one phrase.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
job › description › exclude
Phrases to drop. A record is removed when it matches any phrase.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
job › ai_keywords › include
Phrases to keep. A record matches when it matches at least one phrase.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
job › ai_keywords › exclude
Phrases to drop. A record is removed when it matches any phrase.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
job › field › include
Phrases to keep. A record matches when it matches at least one phrase.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
job › field › exclude
Phrases to drop. A record is removed when it matches any phrase.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
job › seniority › include
Values to keep. A job matches when it has any of the listed values.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
job › seniority › exclude
Values to drop. A job is removed when it has any of the listed values.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
job › employment_type › include
Values to keep. A job matches when it has any of the listed values.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
job › employment_type › exclude
Values to drop. A job is removed when it has any of the listed values.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
job › work_arrangement › include
Values to keep. A job matches when it has any of the listed values.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
job › work_arrangement › exclude
Values to drop. A job is removed when it has any of the listed values.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
job › location › city › include
Phrases to keep. A record matches when it matches at least one phrase.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
job › location › city › exclude
Phrases to drop. A record is removed when it matches any phrase.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
job › location › country_code › include
Country codes of the job location to keep, such as `FR` or `GB`. Letter case does not matter.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
job › location › country_code › exclude
Country codes of the job location to drop. Letter case does not matter.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
job › date_posted › last_days
How many days back to look. For example, 30 keeps the jobs posted in the last 30 days.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
job › min_per_company
Drops companies that have fewer matching jobs than this. 0 means no floor. A high floor can return a short page, so keep paging until `cursor` is null.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › is_agency
Whether to filter on recruitment and staffing agencies. Use `true` to keep only agencies, `false` to drop confirmed agencies, or leave it out to keep both.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › industry › include
Industries to keep, as exact LinkedIn labels. `Unknown` also keeps a record with no industry on file.
Clear enough to supply this argument.
company › industry › exclude
Industries to drop, as exact LinkedIn labels. `Unknown` drops a record with no industry on file.
Clear enough to supply this argument.
company › employee_count › min
Lowest value to match. 0 means no lower bound.
Clear enough to supply this argument.
company › employee_count › max
Highest value to match. 0 means no upper bound.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › size › include
Employee-count bands to keep. A company matches when its band is any of the listed ones.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › keywords › include
Phrases to keep. A record matches when it matches at least one phrase.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › keywords › exclude
Phrases to drop. A record is removed when it matches any phrase.
Clear enough to supply this argument.
company › hq › city › include
Phrases to keep. A record matches when it matches at least one phrase.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › hq › city › exclude
Phrases to drop. A record is removed when it matches any phrase.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › hq › state › include
Phrases to keep. A record matches when it matches at least one phrase.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › hq › state › exclude
Phrases to drop. A record is removed when it matches any phrase.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › hq › country_code › include
Country codes of the company headquarters to keep, such as `FR` or `GB`. Letter case does not matter.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › hq › country_code › exclude
Country codes of the company headquarters to drop. Letter case does not matter.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
max_results
How many results to return in this call. Each result returned uses one record.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
cursor
Paging token. Leave it out for the first page; for the next page, send back the `cursor` of the previous response. A null `cursor` in a response means no more results.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
Annotations100/100
All four behavior hints are declared.
{
"title": "Find companies by their open jobs",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}
Output schema0/100
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "company_tam_by_jobs",
"title": "Find companies by their open jobs",
"description": "Turn hiring demand into a target-account list: the distinct companies posting jobs that match your filters, deduped, each with a matched-jobs count. Input: `job` and `company` filters (optionally `job.min_per_company`), `max_results`, `cursor`. Returns: companies each with a `matched_jobs` count. Cost: 1 record per result.",
"inputSchema": {
"type": "object",
"$defs": {
"s0": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 50,
"description": "Phrases to keep. A record matches when it matches at least one phrase."
},
"s1": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 50,
"description": "Phrases to drop. A record is removed when it matches any phrase."
},
"s2": {
"enum": [
"0-2",
"2-5",
"5-10",
"10+"
],
"type": "string"
},
"s3": {
"enum": [
"FULL_TIME",
"PART_TIME",
"CONTRACTOR",
"TEMPORARY",
"INTERN",
"VOLUNTEER",
"PER_DIEM",
"OTHER"
],
"type": "string"
},
"s4": {
"enum": [
"On-site",
"Hybrid",
"Remote OK",
"Remote Solely"
],
"type": "string"
},
"s5": {
"type": "string",
"maxLength": 2,
"minLength": 2
},
"s6": {
"type": "string",
"description": "One of 535 allowed values (exact match, case-sensitive). Call docs_search or read the Blitz reference resources for the full list; invalid values are rejected."
}
},
"properties": {
"job": {
"type": "object",
"properties": {
"field": {
"type": "object",
"properties": {
"exclude": {
"$ref": "#/$defs/s1"
},
"include": {
"$ref": "#/$defs/s0"
}
},
"description": "The job's professional field or discipline, such as Software Engineering, Sales or Finance. A job matches only when its field label is exactly the value you send.",
"additionalProperties": false
},
"title": {
"type": "object",
"properties": {
"exclude": {
"$ref": "#/$defs/s1"
},
"include": {
"$ref": "#/$defs/s0"
}
},
"description": "Keywords matched against the job title only (strict role search). Wrap a phrase in [brackets] for an exact (case/accent-insensitive) match on the whole title; otherwise a tokenized full-text (FTS) match is used.",
"additionalProperties": false
},
"location": {
"type": "object",
"properties": {
"city": {
"type": "object",
"properties": {
"exclude": {
"$ref": "#/$defs/s1"
},
"include": {
"$ref": "#/$defs/s0"
}
},
"description": "Job location city (exact, case/accent-insensitive)",
"additionalProperties": false
},
"country_code": {
"type": "object",
"properties": {
"exclude": {
"type": "array",
"items": {
"$ref": "#/$defs/s5"
},
"maxItems": 50,
"description": "Country codes of the job location to drop. Letter case does not matter."
},
"include": {
"type": "array",
"items": {
"$ref": "#/$defs/s5"
},
"maxItems": 50,
"description": "Country codes of the job location to keep, such as `FR` or `GB`. Letter case does not matter."
}
},
"description": "Countries of the job location, matched on the country code",
"additionalProperties": false
}
},
"description": "Job location (not company HQ).",
"additionalProperties": false
},
"seniority": {
"type": "object",
"properties": {
"exclude": {
"type": "array",
"items": {
"$ref": "#/$defs/s2"
},
"maxItems": 50,
"description": "Values to drop. A job is removed when it has any of the listed values."
},
"include": {
"type": "array",
"items": {
"$ref": "#/$defs/s2"
},
"maxItems": 50,
"description": "Values to keep. A job matches when it has any of the listed values."
}
},
"description": "The role's seniority, as a band of years of experience the job asks for.",
"additionalProperties": false
},
"ai_keywords": {
"type": "object",
"properties": {
"exclude": {
"$ref": "#/$defs/s1"
},
"include": {
"$ref": "#/$defs/s0"
}
},
"description": "Broad theme search across title, description, skills, responsibilities, requirements and taxonomies",
"additionalProperties": false
},
"date_posted": {
"type": "object",
"required": [
"last_days"
],
"properties": {
"last_days": {
"type": "integer",
"maximum": 3650,
"minimum": 1,
"examples": [
30
],
"description": "How many days back to look. For example, 30 keeps the jobs posted in the last 30 days."
}
},
"description": "Only jobs posted within the last N days",
"additionalProperties": false
},
"description": {
"type": "object",
"properties": {
"exclude": {
"$ref": "#/$defs/s1"
},
"include": {
"$ref": "#/$defs/s0"
}
},
"description": "Keywords matched against the job description content",
"additionalProperties": false
},
"employment_type": {
"type": "object",
"properties": {
"exclude": {
"type": "array",
"items": {
"$ref": "#/$defs/s3"
},
"maxItems": 50,
"description": "Values to drop. A job is removed when it has any of the listed values."
},
"include": {
"type": "array",
"items": {
"$ref": "#/$defs/s3"
},
"maxItems": 50,
"description": "Values to keep. A job matches when it has any of the listed values."
}
},
"description": "The type of employment the job offers.",
"additionalProperties": false
},
"min_per_company": {
"type": "number",
"default": 0,
"maximum": 25,
"minimum": 0,
"description": "Drops companies that have fewer matching jobs than this. 0 means no floor. A high floor can return a short page, so keep paging until `cursor` is null."
},
"work_arrangement": {
"type": "object",
"properties": {
"exclude": {
"type": "array",
"items": {
"$ref": "#/$defs/s4"
},
"maxItems": 50,
"description": "Values to drop. A job is removed when it has any of the listed values."
},
"include": {
"type": "array",
"items": {
"$ref": "#/$defs/s4"
},
"maxItems": 50,
"description": "Values to keep. A job matches when it has any of the listed values."
}
},
"description": "Where the work is performed.",
"additionalProperties": false
}
},
"description": "Job-level search criteria",
"additionalProperties": false
},
"cursor": {
"anyOf": [
{
"type": "string",
"minLength": 3
},
{
"type": "null"
}
],
"default": null,
"examples": [
null
],
"description": "Paging token. Leave it out for the first page; for the next page, send back the `cursor` of the previous response. A null `cursor` in a response means no more results."
},
"company": {
"type": "object",
"properties": {
"hq": {
"type": "object",
"properties": {
"city": {
"type": "object",
"properties": {
"exclude": {
"$ref": "#/$defs/s1"
},
"include": {
"$ref": "#/$defs/s0"
}
},
"description": "Keywords matched against the enriched company HQ city. Wrap a phrase in [brackets] for an exact (case/accent-insensitive) match; otherwise a tokenized full-text (FTS) match is used.",
"additionalProperties": false
},
"state": {
"type": "object",
"properties": {
"exclude": {
"$ref": "#/$defs/s1"
},
"include": {
"$ref": "#/$defs/s0"
}
},
"description": "Keywords matched against the enriched company HQ state/region. Wrap a phrase in [brackets] for an exact (case/accent-insensitive) match; otherwise a tokenized full-text (FTS) match is used.",
"additionalProperties": false
},
"country_code": {
"type": "object",
"properties": {
"exclude": {
"type": "array",
"items": {
"$ref": "#/$defs/s5"
},
"maxItems": 50,
"description": "Country codes of the company headquarters to drop. Letter case does not matter."
},
"include": {
"type": "array",
"items": {
"$ref": "#/$defs/s5"
},
"maxItems": 50,
"description": "Country codes of the company headquarters to keep, such as `FR` or `GB`. Letter case does not matter."
}
},
"description": "Countries of the company headquarters, matched on the country code",
"additionalProperties": false
}
},
"description": "Company headquarters (not job location)",
"additionalProperties": false
},
"size": {
"type": "object",
"properties": {
"include": {
"type": "array",
"items": {
"enum": [
"1-10",
"11-50",
"51-200",
"201-500",
"501-1000",
"1001-5000",
"5001-10000",
"10001+"
],
"type": "string"
},
"maxItems": 50,
"description": "Employee-count bands to keep. A company matches when its band is any of the listed ones."
}
},
"description": "Exact matches on the enriched company's LinkedIn size bucket",
"additionalProperties": false
},
"industry": {
"type": "object",
"properties": {
"exclude": {
"type": "array",
"items": {
"$ref": "#/$defs/s6"
},
"maxItems": 50,
"description": "Industries to drop, as exact LinkedIn labels. `Unknown` drops a record with no industry on file."
},
"include": {
"type": "array",
"items": {
"$ref": "#/$defs/s6"
},
"maxItems": 50,
"description": "Industries to keep, as exact LinkedIn labels. `Unknown` also keeps a record with no industry on file."
}
},
"description": "Exact matches on the enriched company's LinkedIn industry. `Unknown` matches a company with no industry on file, and a job with no company: in `include` it is added to the listed industries, in `exclude` it drops them.",
"additionalProperties": false
},
"keywords": {
"type": "object",
"properties": {
"exclude": {
"$ref": "#/$defs/s1"
},
"include": {
"$ref": "#/$defs/s0"
}
},
"description": "Keywords matched against the enriched company positioning / firmographic text",
"additionalProperties": false
},
"is_agency": {
"type": [
"boolean",
"null"
],
"description": "Whether to filter on recruitment and staffing agencies. Use `true` to keep only agencies, `false` to drop confirmed agencies, or leave it out to keep both."
},
"employee_count": {
"type": "object",
"properties": {
"max": {
"type": "number",
"default": 0,
"maximum": 1000000,
"minimum": 0,
"description": "Highest value to match. 0 means no upper bound."
},
"min": {
"type": "number",
"default": 0,
"maximum": 1000000,
"minimum": 0,
"description": "Lowest value to match. 0 means no lower bound."
}
},
"description": "Range search on the enriched company's LinkedIn headcount.",
"additionalProperties": false
}
},
"description": "Company-level firmographic criteria (enriched from the internal company record)",
"additionalProperties": false
},
"max_results": {
"type": "number",
"default": 10,
"maximum": 50,
"minimum": 1,
"examples": [
10
],
"description": "How many results to return in this call. Each result returned uses one record."
}
},
"additionalProperties": false
},
"annotations": {
"title": "Find companies by their open jobs",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}
}
Expand internal abbreviations and remove technical prefixes from the display title.
Description99/100
Turn a person-level ICP into a target-account list: the distinct companies whose current employees match your filters, deduped, each with a matched-employees count. Use when the account signal is workforce makeup (who works there); use company_tam_by_jobs when it's hiring demand. Input: `people` and `company` filters (optionally `people.min_per_company`), `max_results`, `cursor`. Returns: companies each with a `matched_people` count. Cost: 1 record per result.
The description explains the capability, when to use it, and what to expect.
Inputs80/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › linkedin_url
LinkedIn page URLs of the companies to search in. Use it to limit the search to companies you already know.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › name › include
Keywords to keep. A record matches when it has all the words of at least one keyword.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › name › exclude
Keywords to drop. A record is removed when it has all the words of any one keyword.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › industry › include
Industries to keep, as exact LinkedIn labels. `Unknown` also keeps a record with no industry on file.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › industry › exclude
Industries to drop, as exact LinkedIn labels. `Unknown` drops a record with no industry on file.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › type › include
Company types to keep. A company matches when its type is any listed value.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › type › exclude
Company types to drop. A company is removed when its type is any listed value.
Clear enough to supply this argument.
company › employee_range
Employee-count bands to keep. A company matches when its band is any of the listed ones. An empty list does not filter.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › employee_count › min
Lowest value to match. 0 means no lower bound.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › employee_count › max
Highest value to match. 0 means no upper bound.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › min_linkedin_followers
Smallest number of LinkedIn followers a company must have. 0 means no lower bound.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › revenue › min
Lowest value to match. 0 means no lower bound.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › revenue › max
Highest value to match. 0 means no upper bound.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › naics_code › include
NAICS codes to keep. A company matches when its code is any listed code.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › naics_code › exclude
NAICS codes to drop. A company is removed when its code is any listed code.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › sic_code › include
SIC codes to keep. A company matches when its code is any listed code.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › sic_code › exclude
SIC codes to drop. A company is removed when its code is any listed code.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › mx › provider › include
Mail providers to keep. Use `any` to keep every company that has MX data.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › mx › provider › exclude
Mail providers to drop. Use `any` to keep only companies that have no MX data.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › web_traffic › min
Lowest value to match. 0 means no lower bound.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › web_traffic › max
Highest value to match. 0 means no upper bound.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › ad_spend › min
Lowest monthly Google ad spend to match, inclusive. 0 means no lower bound.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › ad_spend › max
Highest monthly Google ad spend to match, inclusive. 0 means no upper bound.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › total_funding › min
Lowest value to match. 0 means no lower bound.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › total_funding › max
Highest value to match. 0 means no upper bound.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › last_funding_amount › min
Lowest value to match. 0 means no lower bound.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › last_funding_amount › max
Highest value to match. 0 means no upper bound.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › last_funding_year › min
Lowest value to match. 0 means no lower bound.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › last_funding_year › max
Highest value to match. 0 means no upper bound.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › last_funding_type › include
Funding round types to keep. A company matches when its last round is any listed type.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › last_funding_type › exclude
Funding round types to drop. A company is removed when its last round is any listed type.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › lead_investors › include
Keywords to keep. A record matches when it has all the words of at least one keyword.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › lead_investors › exclude
Keywords to drop. A record is removed when it has all the words of any one keyword.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › keywords › include
Keywords to keep. A record matches when it has all the words of at least one keyword.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › keywords › exclude
Keywords to drop. A record is removed when it has all the words of any one keyword.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › founded_year › min
Lowest value to match. 0 means no lower bound.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › founded_year › max
Highest value to match. 0 means no upper bound.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › hq › city › include
Keywords to keep. A record matches when it has all the words of at least one keyword.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › hq › city › exclude
Keywords to drop. A record is removed when it has all the words of any one keyword.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › hq › state › include
Keywords to keep. A record matches when it has all the words of at least one keyword.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › hq › state › exclude
Keywords to drop. A record is removed when it has all the words of any one keyword.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › hq › country_code
Country codes of the headquarters to keep, such as `US` or `FR`. Letter case does not matter.
Clear enough to supply this argument.
company › hq › continent
Continents of the headquarters to keep. A company matches when its headquarters is on any of them.
Clear enough to supply this argument.
company › hq › sales_region
Sales regions of the headquarters to keep. `NORAM` is North America, `LATAM` Latin America, `EMEA` Europe, Middle East and Africa, `APAC` Asia-Pacific.
Clear enough to supply this argument.
people › linkedin_url
LinkedIn profile URLs of the people to look for. Use it to check whether people you already know match the other filters.
Clear enough to supply this argument.
people › job_title › include_linkedin_headline
Also match the job title phrases against the LinkedIn headline of each person. A person then matches when the headline or the job title matches.
Clear enough to supply this argument.
people › job_title › include
Job titles to look for. A person matches when a job title has all the words of at least one phrase. Put a phrase in square brackets, such as `[Head of Sales]`, to match the whole title exactly, ignoring case and accents.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
people › job_title › exclude
Job titles to drop. A person is removed when a job title matches any phrase. Square brackets work as in `include`.
Clear enough to supply this argument.
people › job_function
Job functions to keep. A person matches when their job has any of the listed functions.
Clear enough to supply this argument.
people › job_level
Job levels to keep. A person matches when their job has any of the listed levels.
Clear enough to supply this argument.
people › min_connections
Smallest number of LinkedIn connections a person must have. 0 means no lower bound.
Clear enough to supply this argument.
people › is_recent_hire
Keep only people whose matching job started in the last 90 days. That job must also match the other job and company filters. A job with no start date never matches. On people search, the jobs checked are the ones that `include_active_jobs` and `include_past_jobs` select (current jobs by default).
Clear enough to supply this argument.
people › location › city › include
Keywords to keep. A record matches when it has all the words of at least one keyword.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
people › location › city › exclude
Keywords to drop. A record is removed when it has all the words of any one keyword.
Clear enough to supply this argument.
people › location › country_code
Country codes of the people to keep, such as `FR` or `GB`. Letter case does not matter.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
people › location › continent
Continents where the people live. A person matches when their location is on any of them.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
people › location › sales_region
Sales regions where the people live. `NORAM` is North America, `LATAM` Latin America, `EMEA` Europe, Middle East and Africa, `APAC` Asia-Pacific.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
people › education › include
School, degree or year phrases to look for. All the words of a phrase must be in one education entry, in any order, so write the year in the phrase (such as `Stanford 2025`) to tie school and year together. A person matches when any phrase matches.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
people › education › exclude
Phrases to drop. A person is removed when an education entry matches any phrase, with the same one-entry rule as `include`.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
people › education › start_year › min
Lowest value to match. 0 means no lower bound.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
people › education › start_year › max
Highest value to match. 0 means no upper bound.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
people › education › end_year › min
Lowest value to match. 0 means no lower bound.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
people › education › end_year › max
Highest value to match. 0 means no upper bound.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
people › min_per_company
Drops companies that have fewer matching employees than this. 0 means no floor. A high floor can return a short page, so keep paging until `cursor` is null.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
max_results
How many results to return in this call. Each result returned uses one record.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
cursor
Paging token. Leave it out for the first page; for the next page, send back the `cursor` of the previous response. A null `cursor` in a response means no more results.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
Annotations100/100
All four behavior hints are declared.
{
"title": "Find companies by their employees",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}
Output schema0/100
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "company_tam_by_people",
"title": "Find companies by their employees",
"description": "Turn a person-level ICP into a target-account list: the distinct companies whose current employees match your filters, deduped, each with a matched-employees count. Use when the account signal is workforce makeup (who works there); use company_tam_by_jobs when it's hiring demand. Input: `people` and `company` filters (optionally `people.min_per_company`), `max_results`, `cursor`. Returns: companies each with a `matched_people` count. Cost: 1 record per result.",
"inputSchema": {
"type": "object",
"$defs": {
"s0": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 50,
"description": "Keywords to keep. A record matches when it has all the words of at least one keyword."
},
"s1": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 50,
"description": "Keywords to drop. A record is removed when it has all the words of any one keyword."
},
"s2": {
"type": "string",
"description": "One of 535 allowed values (exact match, case-sensitive). Call docs_search or read the Blitz reference resources for the full list; invalid values are rejected."
},
"s3": {
"enum": [
"Educational",
"Educational Institution",
"Government Agency",
"Nonprofit",
"Partnership",
"Privately Held",
"Public Company",
"Self-Employed",
"Self-Owned",
"Sole Proprietorship"
],
"type": "string"
},
"s4": {
"enum": [
"any",
"google",
"microsoft",
"zoho",
"godaddy",
"proofpoint",
"mimecast",
"barracuda",
"cloudflare",
"ionos",
"hostinger",
"namecheap",
"fastmail",
"proton",
"strato",
"ovh",
"siteground",
"opensrs",
"one_com",
"tencent",
"titan",
"20i",
"rackspace",
"alibaba",
"open_xchange",
"infomaniak",
"jimdo",
"netease",
"gandi",
"register_it",
"hetzner",
"yahoo",
"amazon",
"yandex",
"locaweb",
"uol_host",
"fasthosts",
"kinghost",
"t_online",
"hostopia",
"united_domains",
"hostpoint",
"mijndomein",
"icloud",
"reg123",
"mailhostbox",
"transip",
"natro",
"names_co_uk",
"intermedia",
"hostnet",
"aruba",
"loopia",
"netcup",
"lolipop",
"simply",
"domeneshop",
"hornetsecurity",
"mailchannels",
"appriver",
"trendmicro",
"spamexperts",
"cisco",
"sophos",
"mesh",
"mailinblack"
],
"type": "string"
},
"s5": {
"type": "number",
"default": 0,
"maximum": 1000000000000,
"minimum": 0,
"description": "Lowest value to match. 0 means no lower bound."
},
"s6": {
"type": "number",
"default": 0,
"maximum": 1000000000000,
"minimum": 0,
"description": "Highest value to match. 0 means no upper bound."
},
"s7": {
"enum": [
"Series unknown",
"Pre seed",
"Seed",
"Series A",
"Series B",
"Series C",
"Series D",
"Series E-J",
"Grant",
"Angel",
"Private equity",
"Debt financing",
"Non equity assistance",
"Post IPO equity",
"Undisclosed",
"Post IPO debt",
"Product crowdfunding",
"Equity crowdfunding",
"Corporate round",
"Convertible note",
"Secondary market",
"Initial coin offering",
"Post IPO secondary"
],
"type": "string"
},
"s8": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"maxItems": 50,
"description": "Keywords to keep. A record matches when it has all the words of at least one keyword."
},
"s9": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"maxItems": 50,
"description": "Keywords to drop. A record is removed when it has all the words of any one keyword."
},
"s10": {
"enum": [
"Africa",
"Antarctica",
"Asia",
"Europe",
"North America",
"Oceania",
"South America"
],
"type": "string"
},
"s11": {
"enum": [
"NORAM",
"LATAM",
"EMEA",
"APAC"
],
"type": "string"
}
},
"properties": {
"cursor": {
"anyOf": [
{
"type": "string",
"minLength": 3
},
{
"type": "null"
}
],
"default": null,
"examples": [
null
],
"description": "Paging token. Leave it out for the first page; for the next page, send back the `cursor` of the previous response. A null `cursor` in a response means no more results."
},
"people": {
"type": "object",
"properties": {
"location": {
"type": "object",
"properties": {
"city": {
"type": "object",
"properties": {
"exclude": {
"$ref": "#/$defs/s9"
},
"include": {
"$ref": "#/$defs/s8"
}
},
"description": "Keywords searched to find the city of the person",
"additionalProperties": false
},
"continent": {
"type": "array",
"items": {
"$ref": "#/$defs/s10"
},
"maxItems": 50,
"description": "Continents where the people live. A person matches when their location is on any of them."
},
"country_code": {
"type": "array",
"items": {
"type": "string",
"maxLength": 3,
"minLength": 2
},
"maxItems": 50,
"description": "Country codes of the people to keep, such as `FR` or `GB`. Letter case does not matter."
},
"sales_region": {
"type": "array",
"items": {
"$ref": "#/$defs/s11"
},
"maxItems": 50,
"description": "Sales regions where the people live. `NORAM` is North America, `LATAM` Latin America, `EMEA` Europe, Middle East and Africa, `APAC` Asia-Pacific."
}
},
"description": "Location of the people to find",
"additionalProperties": false
},
"education": {
"type": "object",
"properties": {
"exclude": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 50,
"description": "Phrases to drop. A person is removed when an education entry matches any phrase, with the same one-entry rule as `include`."
},
"include": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 50,
"description": "School, degree or year phrases to look for. All the words of a phrase must be in one education entry, in any order, so write the year in the phrase (such as `Stanford 2025`) to tie school and year together. A person matches when any phrase matches."
},
"end_year": {
"type": "object",
"properties": {
"max": {
"type": "integer",
"default": 0,
"maximum": 2100,
"minimum": 0,
"examples": [
2022
],
"description": "Highest value to match. 0 means no upper bound."
},
"min": {
"type": "integer",
"default": 0,
"maximum": 2100,
"minimum": 0,
"examples": [
2018
],
"description": "Lowest value to match. 0 means no lower bound."
}
},
"description": "Range search for the year an education entry ended (graduation year). Applies to the same entry as include; an entry with no end year never matches a bound.",
"additionalProperties": false
},
"start_year": {
"type": "object",
"properties": {
"max": {
"type": "integer",
"default": 0,
"maximum": 2100,
"minimum": 0,
"examples": [
2020
],
"description": "Highest value to match. 0 means no upper bound."
},
"min": {
"type": "integer",
"default": 0,
"maximum": 2100,
"minimum": 0,
"examples": [
2016
],
"description": "Lowest value to match. 0 means no lower bound."
}
},
"description": "Range search for the year an education entry started. Applies to the same entry as include; an entry with no start year never matches a bound.",
"additionalProperties": false
}
},
"description": "Education filter for the person",
"additionalProperties": false
},
"job_level": {
"type": "array",
"items": {
"enum": [
"C-Team",
"Director",
"Manager",
"Other",
"Staff",
"VP"
],
"type": "string"
},
"maxItems": 50,
"description": "Job levels to keep. A person matches when their job has any of the listed levels."
},
"job_title": {
"type": "object",
"properties": {
"exclude": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 50,
"description": "Job titles to drop. A person is removed when a job title matches any phrase. Square brackets work as in `include`."
},
"include": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 50,
"description": "Job titles to look for. A person matches when a job title has all the words of at least one phrase. Put a phrase in square brackets, such as `[Head of Sales]`, to match the whole title exactly, ignoring case and accents."
},
"include_linkedin_headline": {
"type": "boolean",
"default": false,
"examples": [
false
],
"description": "Also match the job title phrases against the LinkedIn headline of each person. A person then matches when the headline or the job title matches."
}
},
"description": "Find at least one person with the given job title in the company",
"additionalProperties": false
},
"job_function": {
"type": "array",
"items": {
"enum": [
"Advertising & Marketing",
"Art, Culture and Creative Professionals",
"Construction",
"Customer/Client Service",
"Education",
"Engineering",
"Finance & Accounting",
"General Business & Management",
"Healthcare & Human Services",
"Human Resources",
"Information Technology",
"Legal",
"Manufacturing & Production",
"Operations",
"Other",
"Public Administration & Safety",
"Purchasing",
"Research & Development",
"Sales & Business Development",
"Science",
"Supply Chain & Logistics",
"Writing/Editing"
],
"type": "string"
},
"maxItems": 50,
"description": "Job functions to keep. A person matches when their job has any of the listed functions."
},
"linkedin_url": {
"type": "array",
"items": {
"type": "string",
"examples": [
"https://www.linkedin.com/in/antoine-blitz-5581b7373"
]
},
"maxItems": 50,
"description": "LinkedIn profile URLs of the people to look for. Use it to check whether people you already know match the other filters."
},
"is_recent_hire": {
"type": "boolean",
"default": false,
"examples": [
false
],
"description": "Keep only people whose matching job started in the last 90 days. That job must also match the other job and company filters. A job with no start date never matches. On people search, the jobs checked are the ones that `include_active_jobs` and `include_past_jobs` select (current jobs by default)."
},
"min_connections": {
"type": "number",
"default": 0,
"maximum": 500,
"minimum": 0,
"description": "Smallest number of LinkedIn connections a person must have. 0 means no lower bound."
},
"min_per_company": {
"type": "number",
"default": 0,
"maximum": 25,
"minimum": 0,
"description": "Drops companies that have fewer matching employees than this. 0 means no floor. A high floor can return a short page, so keep paging until `cursor` is null."
}
},
"description": "People search criteria for company matching",
"additionalProperties": false
},
"company": {
"type": "object",
"properties": {
"hq": {
"type": "object",
"properties": {
"city": {
"type": "object",
"properties": {
"exclude": {
"$ref": "#/$defs/s9"
},
"include": {
"$ref": "#/$defs/s8"
}
},
"description": "Keywords searched to find the headquarters city of the company, so `San` finds `San Francisco`",
"additionalProperties": false
},
"state": {
"type": "object",
"properties": {
"exclude": {
"$ref": "#/$defs/s9"
},
"include": {
"$ref": "#/$defs/s8"
}
},
"description": "Keywords searched to find the headquarters state/province of the company",
"additionalProperties": false
},
"continent": {
"type": "array",
"items": {
"$ref": "#/$defs/s10"
},
"maxItems": 50,
"description": "Continents of the headquarters to keep. A company matches when its headquarters is on any of them."
},
"country_code": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"maxItems": 50,
"description": "Country codes of the headquarters to keep, such as `US` or `FR`. Letter case does not matter."
},
"sales_region": {
"type": "array",
"items": {
"$ref": "#/$defs/s11"
},
"maxItems": 50,
"description": "Sales regions of the headquarters to keep. `NORAM` is North America, `LATAM` Latin America, `EMEA` Europe, Middle East and Africa, `APAC` Asia-Pacific."
}
},
"description": "Location of the headquarters of the company",
"additionalProperties": false
},
"mx": {
"type": "object",
"properties": {
"provider": {
"type": "object",
"properties": {
"exclude": {
"type": "array",
"items": {
"$ref": "#/$defs/s4"
},
"maxItems": 50,
"description": "Mail providers to drop. Use `any` to keep only companies that have no MX data."
},
"include": {
"type": "array",
"items": {
"$ref": "#/$defs/s4"
},
"maxItems": 50,
"description": "Mail providers to keep. Use `any` to keep every company that has MX data."
}
},
"description": "Known mail providers, such as `google` or `microsoft`. A company matches when any of its domains uses the provider. `any` stands for every provider: in `include` it keeps companies with MX data, in `exclude` it keeps companies with no MX data. Use `include: [\"any\"], exclude: [\"google\"]` for companies with MX data that do not use Google.",
"additionalProperties": false
}
},
"description": "Mail provider of the company, from the MX records of its domains. Companies with no MX data are never matched by `include` and `exclude` never drops them, unless you use `any`.",
"additionalProperties": false
},
"name": {
"type": "object",
"properties": {
"exclude": {
"$ref": "#/$defs/s1"
},
"include": {
"$ref": "#/$defs/s0"
}
},
"description": "Keywords searched in the company name",
"additionalProperties": false
},
"type": {
"type": "object",
"properties": {
"exclude": {
"type": "array",
"items": {
"$ref": "#/$defs/s3"
},
"maxItems": 50,
"description": "Company types to drop. A company is removed when its type is any listed value."
},
"include": {
"type": "array",
"items": {
"$ref": "#/$defs/s3"
},
"maxItems": 50,
"description": "Company types to keep. A company matches when its type is any listed value."
}
},
"description": "Exact matches for the company type search",
"additionalProperties": false
},
"revenue": {
"type": "object",
"properties": {
"max": {
"type": "number",
"default": 0,
"minimum": 0,
"description": "Highest value to match. 0 means no upper bound."
},
"min": {
"type": "number",
"default": 0,
"minimum": 0,
"description": "Lowest value to match. 0 means no lower bound."
}
},
"description": "Range search for company revenue (USD). Matches companies whose revenue band overlaps the requested range.",
"additionalProperties": false
},
"ad_spend": {
"type": "object",
"properties": {
"max": {
"type": "number",
"default": 0,
"maximum": 1000000000000,
"minimum": 0,
"description": "Highest monthly Google ad spend to match, inclusive. 0 means no upper bound."
},
"min": {
"type": "number",
"default": 0,
"maximum": 1000000000000,
"minimum": 0,
"description": "Lowest monthly Google ad spend to match, inclusive. 0 means no lower bound."
}
},
"description": "Range search for monthly Google ad spend, as a whole amount per month. The data records no currency.",
"additionalProperties": false
},
"industry": {
"type": "object",
"properties": {
"exclude": {
"type": "array",
"items": {
"$ref": "#/$defs/s2"
},
"maxItems": 50,
"description": "Industries to drop, as exact LinkedIn labels. `Unknown` drops a record with no industry on file."
},
"include": {
"type": "array",
"items": {
"$ref": "#/$defs/s2"
},
"maxItems": 50,
"description": "Industries to keep, as exact LinkedIn labels. `Unknown` also keeps a record with no industry on file."
}
},
"description": "Exact matches for the industry search. `Unknown` matches a company with no industry on file, and a person with no company: in `include` it is added to the listed industries, in `exclude` it drops them.",
"additionalProperties": false
},
"keywords": {
"type": "object",
"properties": {
"exclude": {
"$ref": "#/$defs/s1"
},
"include": {
"$ref": "#/$defs/s0"
}
},
"description": "Keywords searched in the company description: about text, specialties, NAICS and SIC descriptions, and Crunchbase and G2 categories",
"additionalProperties": false
},
"sic_code": {
"type": "object",
"properties": {
"exclude": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"maxItems": 50,
"description": "SIC codes to drop. A company is removed when its code is any listed code."
},
"include": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"maxItems": 50,
"description": "SIC codes to keep. A company matches when its code is any listed code."
}
},
"description": "Exact matches for the SIC industry codes",
"additionalProperties": false
},
"naics_code": {
"type": "object",
"properties": {
"exclude": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"maxItems": 50,
"description": "NAICS codes to drop. A company is removed when its code is any listed code."
},
"include": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"maxItems": 50,
"description": "NAICS codes to keep. A company matches when its code is any listed code."
}
},
"description": "Exact matches for the NAICS industry codes",
"additionalProperties": false
},
"web_traffic": {
"type": "object",
"properties": {
"max": {
"type": "number",
"default": 0,
"maximum": 2147483647,
"minimum": 0,
"description": "Highest value to match. 0 means no upper bound."
},
"min": {
"type": "number",
"default": 0,
"maximum": 2147483647,
"minimum": 0,
"description": "Lowest value to match. 0 means no lower bound."
}
},
"description": "Range search for total monthly web traffic (organic + paid).",
"additionalProperties": false
},
"founded_year": {
"type": "object",
"properties": {
"max": {
"type": "number",
"default": 0,
"maximum": 1000000000,
"minimum": 0,
"description": "Highest value to match. 0 means no upper bound."
},
"min": {
"type": "number",
"default": 0,
"maximum": 1000000000,
"minimum": 0,
"description": "Lowest value to match. 0 means no lower bound."
}
},
"description": "Range search for the year the company was founded",
"additionalProperties": false
},
"linkedin_url": {
"type": "array",
"items": {
"type": "string",
"examples": [
"https://www.linkedin.com/company/blitz-api"
]
},
"maxItems": 50,
"description": "LinkedIn page URLs of the companies to search in. Use it to limit the search to companies you already know."
},
"total_funding": {
"type": "object",
"properties": {
"max": {
"$ref": "#/$defs/s6"
},
"min": {
"$ref": "#/$defs/s5"
}
},
"description": "Range search for total funding amount (USD).",
"additionalProperties": false
},
"employee_count": {
"type": "object",
"properties": {
"max": {
"type": "number",
"default": 0,
"maximum": 1000000,
"minimum": 0,
"description": "Highest value to match. 0 means no upper bound."
},
"min": {
"type": "number",
"default": 0,
"maximum": 980000,
"minimum": 0,
"description": "Lowest value to match. 0 means no lower bound."
}
},
"description": "Range search for the number of employees on LinkedIn",
"additionalProperties": false
},
"employee_range": {
"type": "array",
"items": {
"enum": [
"1-10",
"11-50",
"51-200",
"201-500",
"501-1000",
"1001-5000",
"5001-10000",
"10001+"
],
"type": "string"
},
"maxItems": 50,
"description": "Employee-count bands to keep. A company matches when its band is any of the listed ones. An empty list does not filter."
},
"lead_investors": {
"type": "object",
"properties": {
"exclude": {
"$ref": "#/$defs/s1"
},
"include": {
"$ref": "#/$defs/s0"
}
},
"description": "Keywords searched in lead investor names",
"additionalProperties": false
},
"last_funding_type": {
"type": "object",
"properties": {
"exclude": {
"type": "array",
"items": {
"$ref": "#/$defs/s7"
},
"maxItems": 50,
"description": "Funding round types to drop. A company is removed when its last round is any listed type."
},
"include": {
"type": "array",
"items": {
"$ref": "#/$defs/s7"
},
"maxItems": 50,
"description": "Funding round types to keep. A company matches when its last round is any listed type."
}
},
"description": "Exact matches for the last funding round type",
"additionalProperties": false
},
"last_funding_year": {
"type": "object",
"properties": {
"max": {
"type": "number",
"default": 0,
"maximum": 2026,
"minimum": 0,
"description": "Highest value to match. 0 means no upper bound."
},
"min": {
"type": "number",
"default": 0,
"maximum": 2026,
"minimum": 0,
"description": "Lowest value to match. 0 means no lower bound."
}
},
"description": "Range search for the year of the last funding round. 0 = unset, otherwise a year from 1800.",
"additionalProperties": false
},
"last_funding_amount": {
"type": "object",
"properties": {
"max": {
"$ref": "#/$defs/s6"
},
"min": {
"$ref": "#/$defs/s5"
}
},
"description": "Range search for the last funding round amount (USD).",
"additionalProperties": false
},
"min_linkedin_followers": {
"type": "number",
"default": 0,
"maximum": 10000000,
"minimum": 0,
"description": "Smallest number of LinkedIn followers a company must have. 0 means no lower bound."
}
},
"description": "Company search criteria",
"additionalProperties": false
},
"max_results": {
"type": "number",
"default": 10,
"maximum": 50,
"minimum": 1,
"examples": [
10
],
"description": "How many results to return in this call. Each result returned uses one record."
}
},
"additionalProperties": false
},
"annotations": {
"title": "Find companies by their employees",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description94/100
Search job postings across all companies by job filters (title, location, and more). Use for jobs across the market; use job_search_by_company to scope to one company. Input: a `job` filter block plus an optional `company` firmographic block, `max_results`, `cursor`. Returns: job postings. Cost: 1 record per result.
The description explains the capability, when to use it, and what to expect.
Inputs78/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
job › title › include
Phrases to keep. A record matches when it matches at least one phrase.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
job › title › exclude
Phrases to drop. A record is removed when it matches any phrase.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
job › description › include
Phrases to keep. A record matches when it matches at least one phrase.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
job › description › exclude
Phrases to drop. A record is removed when it matches any phrase.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
job › ai_keywords › include
Phrases to keep. A record matches when it matches at least one phrase.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
job › ai_keywords › exclude
Phrases to drop. A record is removed when it matches any phrase.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
job › field › include
Phrases to keep. A record matches when it matches at least one phrase.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
job › field › exclude
Phrases to drop. A record is removed when it matches any phrase.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
job › seniority › include
Values to keep. A job matches when it has any of the listed values.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
job › seniority › exclude
Values to drop. A job is removed when it has any of the listed values.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
job › employment_type › include
Values to keep. A job matches when it has any of the listed values.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
job › employment_type › exclude
Values to drop. A job is removed when it has any of the listed values.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
job › work_arrangement › include
Values to keep. A job matches when it has any of the listed values.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
job › work_arrangement › exclude
Values to drop. A job is removed when it has any of the listed values.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
job › location › city › include
Phrases to keep. A record matches when it matches at least one phrase.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
job › location › city › exclude
Phrases to drop. A record is removed when it matches any phrase.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
job › location › country_code › include
Country codes of the job location to keep, such as `FR` or `GB`. Letter case does not matter.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
job › location › country_code › exclude
Country codes of the job location to drop. Letter case does not matter.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
job › date_posted › last_days
How many days back to look. For example, 30 keeps the jobs posted in the last 30 days.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › is_agency
Whether to filter on recruitment and staffing agencies. Use `true` to keep only agencies, `false` to drop confirmed agencies, or leave it out to keep both.
Clear enough to supply this argument.
company › industry › include
Industries to keep, as exact LinkedIn labels. `Unknown` also keeps a record with no industry on file.
Clear enough to supply this argument.
company › industry › exclude
Industries to drop, as exact LinkedIn labels. `Unknown` drops a record with no industry on file.
Clear enough to supply this argument.
company › employee_count › min
Lowest value to match. 0 means no lower bound.
Clear enough to supply this argument.
company › employee_count › max
Highest value to match. 0 means no upper bound.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › size › include
Employee-count bands to keep. A company matches when its band is any of the listed ones.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › keywords › include
Phrases to keep. A record matches when it matches at least one phrase.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › keywords › exclude
Phrases to drop. A record is removed when it matches any phrase.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › hq › city › include
Phrases to keep. A record matches when it matches at least one phrase.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › hq › city › exclude
Phrases to drop. A record is removed when it matches any phrase.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › hq › state › include
Phrases to keep. A record matches when it matches at least one phrase.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › hq › state › exclude
Phrases to drop. A record is removed when it matches any phrase.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › hq › country_code › include
Country codes of the company headquarters to keep, such as `FR` or `GB`. Letter case does not matter.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company › hq › country_code › exclude
Country codes of the company headquarters to drop. Letter case does not matter.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
max_results
How many results to return in this call. Each result returned uses one record.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
cursor
Paging token. Leave it out for the first page; for the next page, send back the `cursor` of the previous response. A null `cursor` in a response means no more results.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "job_search",
"title": "Search jobs",
"description": "Search job postings across all companies by job filters (title, location, and more). Use for jobs across the market; use job_search_by_company to scope to one company. Input: a `job` filter block plus an optional `company` firmographic block, `max_results`, `cursor`. Returns: job postings. Cost: 1 record per result.",
"inputSchema": {
"type": "object",
"$defs": {
"s0": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 50,
"description": "Phrases to keep. A record matches when it matches at least one phrase."
},
"s1": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 50,
"description": "Phrases to drop. A record is removed when it matches any phrase."
},
"s2": {
"enum": [
"0-2",
"2-5",
"5-10",
"10+"
],
"type": "string"
},
"s3": {
"enum": [
"FULL_TIME",
"PART_TIME",
"CONTRACTOR",
"TEMPORARY",
"INTERN",
"VOLUNTEER",
"PER_DIEM",
"OTHER"
],
"type": "string"
},
"s4": {
"enum": [
"On-site",
"Hybrid",
"Remote OK",
"Remote Solely"
],
"type": "string"
},
"s5": {
"type": "string",
"maxLength": 2,
"minLength": 2
},
"s6": {
"type": "string",
"description": "One of 535 allowed values (exact match, case-sensitive). Call docs_search or read the Blitz reference resources for the full list; invalid values are rejected."
}
},
"properties": {
"job": {
"type": "object",
"properties": {
"field": {
"type": "object",
"properties": {
"exclude": {
"$ref": "#/$defs/s1"
},
"include": {
"$ref": "#/$defs/s0"
}
},
"description": "The job's professional field or discipline, such as Software Engineering, Sales or Finance. A job matches only when its field label is exactly the value you send.",
"additionalProperties": false
},
"title": {
"type": "object",
"properties": {
"exclude": {
"$ref": "#/$defs/s1"
},
"include": {
"$ref": "#/$defs/s0"
}
},
"description": "Keywords matched against the job title only (strict role search). Wrap a phrase in [brackets] for an exact (case/accent-insensitive) match on the whole title; otherwise a tokenized full-text (FTS) match is used.",
"additionalProperties": false
},
"location": {
"type": "object",
"properties": {
"city": {
"type": "object",
"properties": {
"exclude": {
"$ref": "#/$defs/s1"
},
"include": {
"$ref": "#/$defs/s0"
}
},
"description": "Job location city (exact, case/accent-insensitive)",
"additionalProperties": false
},
"country_code": {
"type": "object",
"properties": {
"exclude": {
"type": "array",
"items": {
"$ref": "#/$defs/s5"
},
"maxItems": 50,
"description": "Country codes of the job location to drop. Letter case does not matter."
},
"include": {
"type": "array",
"items": {
"$ref": "#/$defs/s5"
},
"maxItems": 50,
"description": "Country codes of the job location to keep, such as `FR` or `GB`. Letter case does not matter."
}
},
"description": "Countries of the job location, matched on the country code",
"additionalProperties": false
}
},
"description": "Job location (not company HQ).",
"additionalProperties": false
},
"seniority": {
"type": "object",
"properties": {
"exclude": {
"type": "array",
"items": {
"$ref": "#/$defs/s2"
},
"maxItems": 50,
"description": "Values to drop. A job is removed when it has any of the listed values."
},
"include": {
"type": "array",
"items": {
"$ref": "#/$defs/s2"
},
"maxItems": 50,
"description": "Values to keep. A job matches when it has any of the listed values."
}
},
"description": "The role's seniority, as a band of years of experience the job asks for.",
"additionalProperties": false
},
"ai_keywords": {
"type": "object",
"properties": {
"exclude": {
"$ref": "#/$defs/s1"
},
"include": {
"$ref": "#/$defs/s0"
}
},
"description": "Broad theme search across title, description, skills, responsibilities, requirements and taxonomies",
"additionalProperties": false
},
"date_posted": {
"type": "object",
"required": [
"last_days"
],
"properties": {
"last_days": {
"type": "integer",
"maximum": 3650,
"minimum": 1,
"examples": [
30
],
"description": "How many days back to look. For example, 30 keeps the jobs posted in the last 30 days."
}
},
"description": "Only jobs posted within the last N days",
"additionalProperties": false
},
"description": {
"type": "object",
"properties": {
"exclude": {
"$ref": "#/$defs/s1"
},
"include": {
"$ref": "#/$defs/s0"
}
},
"description": "Keywords matched against the job description content",
"additionalProperties": false
},
"employment_type": {
"type": "object",
"properties": {
"exclude": {
"type": "array",
"items": {
"$ref": "#/$defs/s3"
},
"maxItems": 50,
"description": "Values to drop. A job is removed when it has any of the listed values."
},
"include": {
"type": "array",
"items": {
"$ref": "#/$defs/s3"
},
"maxItems": 50,
"description": "Values to keep. A job matches when it has any of the listed values."
}
},
"description": "The type of employment the job offers.",
"additionalProperties": false
},
"work_arrangement": {
"type": "object",
"properties": {
"exclude": {
"type": "array",
"items": {
"$ref": "#/$defs/s4"
},
"maxItems": 50,
"description": "Values to drop. A job is removed when it has any of the listed values."
},
"include": {
"type": "array",
"items": {
"$ref": "#/$defs/s4"
},
"maxItems": 50,
"description": "Values to keep. A job matches when it has any of the listed values."
}
},
"description": "Where the work is performed.",
"additionalProperties": false
}
},
"description": "Job-level search criteria",
"additionalProperties": false
},
"cursor": {
"anyOf": [
{
"type": "string",
"minLength": 3
},
{
"type": "null"
}
],
"default": null,
"examples": [
null
],
"description": "Paging token. Leave it out for the first page; for the next page, send back the `cursor` of the previous response. A null `cursor` in a response means no more results."
},
"company": {
"type": "object",
"properties": {
"hq": {
"type": "object",
"properties": {
"city": {
"type": "object",
"properties": {
"exclude": {
"$ref": "#/$defs/s1"
},
"include": {
"$ref": "#/$defs/s0"
}
},
"description": "Keywords matched against the enriched company HQ city. Wrap a phrase in [brackets] for an exact (case/accent-insensitive) match; otherwise a tokenized full-text (FTS) match is used.",
"additionalProperties": false
},
"state": {
"type": "object",
"properties": {
"exclude": {
"$ref": "#/$defs/s1"
},
"include": {
"$ref": "#/$defs/s0"
}
},
"description": "Keywords matched against the enriched company HQ state/region. Wrap a phrase in [brackets] for an exact (case/accent-insensitive) match; otherwise a tokenized full-text (FTS) match is used.",
"additionalProperties": false
},
"country_code": {
"type": "object",
"properties": {
"exclude": {
"type": "array",
"items": {
"$ref": "#/$defs/s5"
},
"maxItems": 50,
"description": "Country codes of the company headquarters to drop. Letter case does not matter."
},
"include": {
"type": "array",
"items": {
"$ref": "#/$defs/s5"
},
"maxItems": 50,
"description": "Country codes of the company headquarters to keep, such as `FR` or `GB`. Letter case does not matter."
}
},
"description": "Countries of the company headquarters, matched on the country code",
"additionalProperties": false
}
},
"description": "Company headquarters (not job location)",
"additionalProperties": false
},
"size": {
"type": "object",
"properties": {
"include": {
"type": "array",
"items": {
"enum": [
"1-10",
"11-50",
"51-200",
"201-500",
"501-1000",
"1001-5000",
"5001-10000",
"10001+"
],
"type": "string"
},
"maxItems": 50,
"description": "Employee-count bands to keep. A company matches when its band is any of the listed ones."
}
},
"description": "Exact matches on the enriched company's LinkedIn size bucket",
"additionalProperties": false
},
"industry": {
"type": "object",
"properties": {
"exclude": {
"type": "array",
"items": {
"$ref": "#/$defs/s6"
},
"maxItems": 50,
"description": "Industries to drop, as exact LinkedIn labels. `Unknown` drops a record with no industry on file."
},
"include": {
"type": "array",
"items": {
"$ref": "#/$defs/s6"
},
"maxItems": 50,
"description": "Industries to keep, as exact LinkedIn labels. `Unknown` also keeps a record with no industry on file."
}
},
"description": "Exact matches on the enriched company's LinkedIn industry. `Unknown` matches a company with no industry on file, and a job with no company: in `include` it is added to the listed industries, in `exclude` it drops them.",
"additionalProperties": false
},
"keywords": {
"type": "object",
"properties": {
"exclude": {
"$ref": "#/$defs/s1"
},
"include": {
"$ref": "#/$defs/s0"
}
},
"description": "Keywords matched against the enriched company positioning / firmographic text",
"additionalProperties": false
},
"is_agency": {
"type": [
"boolean",
"null"
],
"description": "Whether to filter on recruitment and staffing agencies. Use `true` to keep only agencies, `false` to drop confirmed agencies, or leave it out to keep both."
},
"employee_count": {
"type": "object",
"properties": {
"max": {
"type": "number",
"default": 0,
"maximum": 1000000,
"minimum": 0,
"description": "Highest value to match. 0 means no upper bound."
},
"min": {
"type": "number",
"default": 0,
"maximum": 1000000,
"minimum": 0,
"description": "Lowest value to match. 0 means no lower bound."
}
},
"description": "Range search on the enriched company's LinkedIn headcount.",
"additionalProperties": false
}
},
"description": "Company-level firmographic criteria (enriched from the internal company record)",
"additionalProperties": false
},
"max_results": {
"type": "number",
"default": 10,
"maximum": 50,
"minimum": 1,
"examples": [
10
],
"description": "How many results to return in this call. Each result returned uses one record."
}
},
"additionalProperties": false
},
"annotations": {
"title": "Search jobs",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description95/100
Search the job postings of ONE company by job filters. Use to scope a job search to a single company; use job_search for the whole market. Input: `company_linkedin_url` plus `job` filters, `max_results`, `cursor`. Returns: job postings. Cost: 1 record per result.
Describe the returned information so the agent knows whether it will answer the request.
Inputs81/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
company_linkedin_url
LinkedIn page URL of the company whose jobs to search. Take it from the `linkedin_url` of a company search result, or copy it from the company's LinkedIn page. A company Blitz does not know gives an empty page.
Clear enough to supply this argument.
job › title › include
Phrases to keep. A record matches when it matches at least one phrase.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
job › title › exclude
Phrases to drop. A record is removed when it matches any phrase.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
job › description › include
Phrases to keep. A record matches when it matches at least one phrase.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
job › description › exclude
Phrases to drop. A record is removed when it matches any phrase.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
job › ai_keywords › include
Phrases to keep. A record matches when it matches at least one phrase.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
job › ai_keywords › exclude
Phrases to drop. A record is removed when it matches any phrase.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
job › field › include
Phrases to keep. A record matches when it matches at least one phrase.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
job › field › exclude
Phrases to drop. A record is removed when it matches any phrase.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
job › seniority › include
Values to keep. A job matches when it has any of the listed values.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
job › seniority › exclude
Values to drop. A job is removed when it has any of the listed values.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
job › employment_type › include
Values to keep. A job matches when it has any of the listed values.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
job › employment_type › exclude
Values to drop. A job is removed when it has any of the listed values.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
job › work_arrangement › include
Values to keep. A job matches when it has any of the listed values.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
job › work_arrangement › exclude
Values to drop. A job is removed when it has any of the listed values.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
job › location › city › include
Phrases to keep. A record matches when it matches at least one phrase.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
job › location › city › exclude
Phrases to drop. A record is removed when it matches any phrase.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
job › location › country_code › include
Country codes of the job location to keep, such as `FR` or `GB`. Letter case does not matter.
Clear enough to supply this argument.
job › location › country_code › exclude
Country codes of the job location to drop. Letter case does not matter.
Clear enough to supply this argument.
job › date_posted › last_days
How many days back to look. For example, 30 keeps the jobs posted in the last 30 days.
Clear enough to supply this argument.
max_results
How many results to return in this call. Each result returned uses one record.
Clear enough to supply this argument.
cursor
Paging token. Leave it out for the first page; for the next page, send back the `cursor` of the previous response. A null `cursor` in a response means no more results.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "job_search_by_company",
"title": "Search a company's jobs",
"description": "Search the job postings of ONE company by job filters. Use to scope a job search to a single company; use job_search for the whole market. Input: `company_linkedin_url` plus `job` filters, `max_results`, `cursor`. Returns: job postings. Cost: 1 record per result.",
"inputSchema": {
"type": "object",
"$defs": {
"s0": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 50,
"description": "Phrases to keep. A record matches when it matches at least one phrase."
},
"s1": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 50,
"description": "Phrases to drop. A record is removed when it matches any phrase."
},
"s2": {
"enum": [
"0-2",
"2-5",
"5-10",
"10+"
],
"type": "string"
},
"s3": {
"enum": [
"FULL_TIME",
"PART_TIME",
"CONTRACTOR",
"TEMPORARY",
"INTERN",
"VOLUNTEER",
"PER_DIEM",
"OTHER"
],
"type": "string"
},
"s4": {
"enum": [
"On-site",
"Hybrid",
"Remote OK",
"Remote Solely"
],
"type": "string"
},
"s5": {
"type": "string",
"maxLength": 2,
"minLength": 2
}
},
"required": [
"company_linkedin_url"
],
"properties": {
"job": {
"type": "object",
"properties": {
"field": {
"type": "object",
"properties": {
"exclude": {
"$ref": "#/$defs/s1"
},
"include": {
"$ref": "#/$defs/s0"
}
},
"description": "The job's professional field or discipline, such as Software Engineering, Sales or Finance. A job matches only when its field label is exactly the value you send.",
"additionalProperties": false
},
"title": {
"type": "object",
"properties": {
"exclude": {
"$ref": "#/$defs/s1"
},
"include": {
"$ref": "#/$defs/s0"
}
},
"description": "Keywords matched against the job title only (strict role search). Wrap a phrase in [brackets] for an exact (case/accent-insensitive) match on the whole title; otherwise a tokenized full-text (FTS) match is used.",
"additionalProperties": false
},
"location": {
"type": "object",
"properties": {
"city": {
"type": "object",
"properties": {
"exclude": {
"$ref": "#/$defs/s1"
},
"include": {
"$ref": "#/$defs/s0"
}
},
"description": "Job location city (exact, case/accent-insensitive)",
"additionalProperties": false
},
"country_code": {
"type": "object",
"properties": {
"exclude": {
"type": "array",
"items": {
"$ref": "#/$defs/s5"
},
"maxItems": 50,
"description": "Country codes of the job location to drop. Letter case does not matter."
},
"include": {
"type": "array",
"items": {
"$ref": "#/$defs/s5"
},
"maxItems": 50,
"description": "Country codes of the job location to keep, such as `FR` or `GB`. Letter case does not matter."
}
},
"description": "Countries of the job location, matched on the country code",
"additionalProperties": false
}
},
"description": "Job location (not company HQ).",
"additionalProperties": false
},
"seniority": {
"type": "object",
"properties": {
"exclude": {
"type": "array",
"items": {
"$ref": "#/$defs/s2"
},
"maxItems": 50,
"description": "Values to drop. A job is removed when it has any of the listed values."
},
"include": {
"type": "array",
"items": {
"$ref": "#/$defs/s2"
},
"maxItems": 50,
"description": "Values to keep. A job matches when it has any of the listed values."
}
},
"description": "The role's seniority, as a band of years of experience the job asks for.",
"additionalProperties": false
},
"ai_keywords": {
"type": "object",
"properties": {
"exclude": {
"$ref": "#/$defs/s1"
},
"include": {
"$ref": "#/$defs/s0"
}
},
"description": "Broad theme search across title, description, skills, responsibilities, requirements and taxonomies",
"additionalProperties": false
},
"date_posted": {
"type": "object",
"required": [
"last_days"
],
"properties": {
"last_days": {
"type": "integer",
"maximum": 3650,
"minimum": 1,
"examples": [
30
],
"description": "How many days back to look. For example, 30 keeps the jobs posted in the last 30 days."
}
},
"description": "Only jobs posted within the last N days",
"additionalProperties": false
},
"description": {
"type": "object",
"properties": {
"exclude": {
"$ref": "#/$defs/s1"
},
"include": {
"$ref": "#/$defs/s0"
}
},
"description": "Keywords matched against the job description content",
"additionalProperties": false
},
"employment_type": {
"type": "object",
"properties": {
"exclude": {
"type": "array",
"items": {
"$ref": "#/$defs/s3"
},
"maxItems": 50,
"description": "Values to drop. A job is removed when it has any of the listed values."
},
"include": {
"type": "array",
"items": {
"$ref": "#/$defs/s3"
},
"maxItems": 50,
"description": "Values to keep. A job matches when it has any of the listed values."
}
},
"description": "The type of employment the job offers.",
"additionalProperties": false
},
"work_arrangement": {
"type": "object",
"properties": {
"exclude": {
"type": "array",
"items": {
"$ref": "#/$defs/s4"
},
"maxItems": 50,
"description": "Values to drop. A job is removed when it has any of the listed values."
},
"include": {
"type": "array",
"items": {
"$ref": "#/$defs/s4"
},
"maxItems": 50,
"description": "Values to keep. A job matches when it has any of the listed values."
}
},
"description": "Where the work is performed.",
"additionalProperties": false
}
},
"description": "Job-level search criteria",
"additionalProperties": false
},
"cursor": {
"anyOf": [
{
"type": "string",
"minLength": 3
},
{
"type": "null"
}
],
"default": null,
"examples": [
null
],
"description": "Paging token. Leave it out for the first page; for the next page, send back the `cursor` of the previous response. A null `cursor` in a response means no more results."
},
"max_results": {
"type": "number",
"default": 10,
"maximum": 50,
"minimum": 1,
"examples": [
10
],
"description": "How many results to return in this call. Each result returned uses one record."
},
"company_linkedin_url": {
"type": "string",
"examples": [
"https://www.linkedin.com/company/openai"
],
"minLength": 1,
"description": "LinkedIn page URL of the company whose jobs to search. Take it from the `linkedin_url` of a company search result, or copy it from the company's LinkedIn page. A company Blitz does not know gives an empty page."
}
},
"additionalProperties": false
},
"annotations": {
"title": "Search a company's jobs",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description95/100
Get your API key's account details: plan, remaining records, and rate limits. Input: none. Returns: account and key info (`records_remaining` is a number, or the string "unlimited" on unmetered plans). Cost: 0 records.
The description explains the capability, when to use it, and what to expect.
Inputs100/100
This tool declares no inputs, so argument descriptions are not needed.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description96/100
Get Blitz API changelog entries, newest first. Input: optional `days` and `limit`. Returns: a list of entries, each with `date` (UTC, YYYY-MM-DD), `type` (breaking, feature, improvement, fix, deprecation or announcement), `title`, and optional `body` (markdown), `affected_endpoints` and `links`. Cost: 0 records. No API key required.
The description explains the capability, when to use it, and what to expect.
Inputs98/100
Input documentation gives an agent enough context to populate the arguments.
days
Narrows the changelog to recent changes. Use it to see what changed since you last checked; leave it out to read the whole history.
Clear enough to supply this argument.
limit
Caps how many entries come back, newest first. Lower it when you only need the latest changes and want to save context.
Clear enough to supply this argument.
Annotations100/100
All four behavior hints are declared.
{
"title": "Get the Blitz API changelog",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}
Output schema0/100
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "util_changelog",
"title": "Get the Blitz API changelog",
"description": "Get Blitz API changelog entries, newest first. Input: optional `days` and `limit`. Returns: a list of entries, each with `date` (UTC, YYYY-MM-DD), `type` (breaking, feature, improvement, fix, deprecation or announcement), `title`, and optional `body` (markdown), `affected_endpoints` and `links`. Cost: 0 records. No API key required.",
"inputSchema": {
"type": "object",
"properties": {
"days": {
"type": "integer",
"examples": [
7
],
"description": "Narrows the changelog to recent changes. Use it to see what changed since you last checked; leave it out to read the whole history.",
"exclusiveMinimum": 0
},
"limit": {
"type": "integer",
"default": 50,
"examples": [
50
],
"description": "Caps how many entries come back, newest first. Lower it when you only need the latest changes and want to save context.",
"exclusiveMinimum": 0
}
},
"additionalProperties": false
},
"annotations": {
"title": "Get the Blitz API changelog",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description92/100
Get the current date and time in a given timezone. Input: `region` (IANA timezone). Returns: `datetime` (YYYY-MM-DD HH:mm:ss in that zone), `timestamp` (Unix seconds), `timezone` and `timezone_name`. Cost: 0 records.
The description explains the capability, when to use it, and what to expect.
Inputs99/100
Input documentation gives an agent enough context to populate the arguments.
region
IANA timezone name, such as `Europe/Paris` or `America/Los_Angeles`. The date and time come back in this zone. Matching ignores letter case.
Clear enough to supply this argument.
Annotations100/100
All four behavior hints are declared.
{
"title": "Get current date and time",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}
Output schema0/100
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "util_current_date",
"title": "Get current date and time",
"description": "Get the current date and time in a given timezone. Input: `region` (IANA timezone). Returns: `datetime` (YYYY-MM-DD HH:mm:ss in that zone), `timestamp` (Unix seconds), `timezone` and `timezone_name`. Cost: 0 records.",
"inputSchema": {
"type": "object",
"properties": {
"region": {
"type": "string",
"default": "America/New_York",
"examples": [
"America/New_York"
],
"description": "IANA timezone name, such as `Europe/Paris` or `America/Los_Angeles`. The date and time come back in this zone. Matching ignores letter case."
}
},
"additionalProperties": false
},
"annotations": {
"title": "Get current date and time",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description98/100
Search the Blitz documentation (guides, concepts, API reference, and examples) and get matching snippets with titles and links. Use this to learn how a Blitz endpoint works before calling it. Returns a text list of matching snippets, each with the page title and a link to the page, cut to about 4,000 characters; open a page in full with docs_read.
The description explains the capability, when to use it, and what to expect.
Inputs98/100
Input documentation gives an agent enough context to populate the arguments.
query
Words or a short question that describe what to find, such as an endpoint name, a filter name, or a concept like pagination.
Clear enough to supply this argument.
version
Limits the results to one documentation version, written as it appears in the docs (for example `v0.7`). Omit it to search without a version limit.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "docs_search",
"title": "Search Blitz docs",
"description": "Search the Blitz documentation (guides, concepts, API reference, and examples) and get matching snippets with titles and links. Use this to learn how a Blitz endpoint works before calling it. Returns a text list of matching snippets, each with the page title and a link to the page, cut to about 4,000 characters; open a page in full with docs_read.",
"inputSchema": {
"type": "object",
"required": [
"query"
],
"properties": {
"query": {
"type": "string",
"description": "Words or a short question that describe what to find, such as an endpoint name, a filter name, or a concept like pagination."
},
"version": {
"type": "string",
"description": "Limits the results to one documentation version, written as it appears in the docs (for example `v0.7`). Omit it to search without a version limit."
}
},
"additionalProperties": false
},
"annotations": {
"title": "Search Blitz docs",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description100/100
Send feedback, a bug report, a feature request, or praise directly to the Blitz team — about the Blitz API, data quality, the docs, or this MCP server. Use whenever the user wants to reach the Blitz team. Returns a short text confirmation that the feedback was recorded; it returns no ticket id and no reply.
The description explains the capability, when to use it, and what to expect.
Inputs96/100
Input documentation gives an agent enough context to populate the arguments.
message
The feedback itself: what went wrong, what is missing, or what worked well. Write it so that someone who has not seen this conversation can understand it.
Clear enough to supply this argument.
category
Topic of the feedback. Pick the closest one so the Blitz team can route it.
Clear enough to supply this argument.
context
Name of the tool, endpoint or workflow the feedback is about, such as `company_search`. It helps the Blitz team find where the problem is.
Clear enough to supply this argument.
contact
Email address or handle where the Blitz team can reply. Send it only when the user wants a follow-up and agrees to share it.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "send_feedback",
"title": "Send feedback to Blitz",
"description": "Send feedback, a bug report, a feature request, or praise directly to the Blitz team — about the Blitz API, data quality, the docs, or this MCP server. Use whenever the user wants to reach the Blitz team. Returns a short text confirmation that the feedback was recorded; it returns no ticket id and no reply.",
"inputSchema": {
"type": "object",
"required": [
"message"
],
"properties": {
"contact": {
"type": "string",
"maxLength": 200,
"description": "Email address or handle where the Blitz team can reply. Send it only when the user wants a follow-up and agrees to share it."
},
"context": {
"type": "string",
"maxLength": 1000,
"description": "Name of the tool, endpoint or workflow the feedback is about, such as `company_search`. It helps the Blitz team find where the problem is."
},
"message": {
"type": "string",
"maxLength": 4000,
"minLength": 1,
"description": "The feedback itself: what went wrong, what is missing, or what worked well. Write it so that someone who has not seen this conversation can understand it."
},
"category": {
"enum": [
"bug",
"feature_request",
"data_quality",
"docs",
"praise",
"other"
],
"type": "string",
"description": "Topic of the feedback. Pick the closest one so the Blitz team can route it."
}
},
"additionalProperties": false
},
"annotations": {
"title": "Send feedback to Blitz",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}
}
Loading score analytics…
Put your MCP to the test
A few tasks worth trying with this server, chosen from its reviewed tools. These have not been run.
01Get current date and timeGet the current date and time in a given timezone.
02Get the Blitz API changelogGet Blitz API changelog entries, newest first.
03Search Blitz docsSearch the Blitz documentation (guides, concepts, API reference, and examples) and get matching snippets with titles and links.
04Find a company by domainFind a company's LinkedIn URL from its web domain (inverse of company_get_domain).
05Look up a person by emailReverse lookup: find the person behind an email address (inverse of people_find_work_email).
Want to run these tasks against your MCP server with us?
Blitz API setup, tools, quality score, publishing readiness, and alternatives.
How do I add Blitz API to Claude, ChatGPT, or Cursor?
Add Blitz API to Claude, ChatGPT, or Cursor by connecting its remote MCP URL in each client's MCP settings. In Claude, add a custom connector. In ChatGPT, add an MCP app. In Cursor, add an MCP server under Settings. The MCP URL is https://api.blitz-api.ai/mcp.
Is Blitz API MCP ready for ChatGPT and Claude?
As of October 15, 2026, Blitz API scores 100/100 on Manufact's MCP publishing checklist. The scan meets ChatGPT publishing checks and meets Claude publishing checks. Passing these checks does not guarantee marketplace approval.
How clear is Blitz API's MCP tool documentation?
As of October 15, 2026, Blitz API scores 87/100 in Manufact's review of tool titles, descriptions, input and output schemas, and behavior annotations. The review covers 24 of 24 discovered tools. The quality score measures documentation clarity; runtime behavior and marketplace readiness require separate checks.
What are the best alternatives to Blitz API?
As of October 15, 2026, alternatives to Blitz API in sales-and-marketing on the Manufact MCP catalog include Griddo AX Docs, Rocket Sloth, Datacircle, Tolt, and Affonso.io.
Not your MCP?
Review any public or OAuth MCP server for protocol compatibility, tool documentation, and ChatGPT and Claude publishing readiness. No account required.