Tool ID:
theirstack_company_searchRun this action
Use the TypeScript SDK for a single call. Putctx.tools.execute(...) inside a Play when the call should be durable, scheduled, or run across a CSV.
import { Deepline } from 'deepline';
const deepline = await Deepline.connect();
const result = await deepline.tools.execute(
'theirstack_company_search',
{
"expand_technology_slugs": [],
"order_by": [
{
"desc": true,
"field": "confidence"
},
{
"desc": true,
"field": "num_jobs_found"
},
{
"desc": true,
"field": "num_jobs"
},
{
"desc": true,
"field": "num_jobs"
},
{
"desc": true,
"field": "employee_count"
}
],
"company_name_or": []
},
);
console.log(result.toolResponse.raw);
CLI
deepline tools execute theirstack_company_search --input '{
"expand_technology_slugs": [],
"order_by": [
{
"desc": true,
"field": "confidence"
},
{
"desc": true,
"field": "num_jobs_found"
},
{
"desc": true,
"field": "num_jobs"
},
{
"desc": true,
"field": "num_jobs"
},
{
"desc": true,
"field": "employee_count"
}
],
"company_name_or": []
}' --json
Example response
The SDK exposes this shape atresult.toolResponse.raw. Values below are representative.
{
"data": {
"metadata": {
"total_results": 1,
"truncated_results": 0,
"truncated_companies": 0
},
"data": [
{
"id": "id_123",
"name": "Example"
}
]
}
}
deepline tools get theirstack_company_search --json for the latest machine-readable contract.
Input reference
This endpoint lets you search for companies by technology stack, hiring signals, and firmographics. It returns a list of companies that match the search criteria, along with the jobs and technology objects for each company that match the filters you’ve passed. It consumes 3 API credits for each company returned in the response. Useful resources: Preview data mode, Free count mode The response includes both company data and any matching jobs or technologies based on your filters.| Name | Type | Required | Default | Details |
|---|---|---|---|---|
payload.expand_technology_slugs | array | No | [] | Specify technology slugs to include detailed technology usage information for each company. The response will include a ‘technologies_found’ field containing metrics like confidence score, ranking, and job count for each specified technology. Note: If a technology is not listed for a company, it means that company does not use that technology. This feature is useful for enriching company data with their technology stack details. |
payload.order_by | array | No | [{"desc":true,"field":"confidence"},{"desc":true,"field":"num_jobs_found"},{"desc":true,"field":"num_jobs"},{"desc":true,"field":"num_jobs"},{"desc":true,"field":"employee_count"}] | List of column objects. You can pass several columns to order by, in order of priority. Only field is required, desc is True by default |
payload.company_name_or | array | No | [] | Only return companies that match these names exactly, case-sensitively. This filter acts as an OR filter, so if you pass more than one company name, it will return companies that match any of the names. |
payload.company_name_case_insensitive_or | array | No | [] | Only return companies that match these names exactly, case-insensitively. |
payload.company_id_or | array | No | [] | Only return companies that match these IDs exactly. This filter acts as an OR filter, so if you pass more than one company ID, it will return companies that match any of the IDs. |
payload.company_domain_or | array | No | [] | Only return companies that match these domains exactly. It accepts full urls (https://www.google.com/) and emails (john.polo@gmail.com). This filter acts as an OR filter, so if you pass more than one company domain, it will return companies that match any of the domains. |
payload.company_domain_not | array | No | [] | Only return companies that don’t match these domains exactly. It accepts full urls (https://www.google.com/) and emails (john.polo@gmail.com). |
payload.company_name_not | array | No | [] | Only return companies that don’t match these names exactly, case-sensitively. |
payload.company_name_partial_match_or | array | No | [] | Company names. Will return companies whose name contain any of the the substrings passed here, case-insensitively. For example, if you pass “google”, it will return “Google”, “Google LLC”, “Google Inc”, etc. |
payload.company_name_partial_match_not | array | No | [] | Company names. Will return companies whose name doesn’t contain any of the the substrings passed here, case-insensitively. For example, if you pass ‘google’, it will exclude ‘Google’, ‘Google LLC’, ‘Google Inc’, etc. |
payload.company_linkedin_url_or | array | No | [] | Return companies whose LinkedIn URL matches any of the slugs passed here. Can also pass full LinkedIn company URLs. |
payload.blur_company_data | boolean | No | false | Return blurred company and job fields for preview. Free preview availability depends on workspace eligibility, and preview is unavailable when filtering by company identifiers (company_name, company_domain, company_linkedin_url, company_id). Count-only searches are still billable by Deepline: when include_total_results=true and limit=1, each returned result is billed even if this flag is true. Learn more at https://theirstack.com/en/docs/api/preview-data-mode. |
payload.property_exists_or | array | No | [] | Return companies that have any of these fields not null. For example, if you pass [‘domain’, ‘linkedin_url’], it will return companies that have a domain OR a linkedin_url set. |
payload.property_exists_and | array | No | [] | Return companies that have all of these fields not null. For example, if you pass [‘domain’, ‘linkedin_url’], it will return companies that have both domain AND linkedin_url set. |
payload.offset | integer | No | 0 | Number of results to skip. Required for offset-based pagination. Minimum: 0. |
payload.page | integer | No | 0 | Page number. Required when using page-based pagination. Minimum: 0. |
payload.limit | integer | No | 25 | Number of results per page. Maximum 500 per page; use page to fetch additional pages. Minimum: 1. |
payload.cursor | string | No | — | Cursor for pagination |
payload.company_description_pattern_or | array | No | [] | Case-insensitive patterns to match in the company description. Will return companies that match any of the patterns. |
payload.company_description_pattern_not | array | No | [] | Case-insensitive patterns to match in the company description. Will return companies that match any of the patterns. |
payload.company_description_pattern_accent_insensitive | boolean | No | false | Set to True to make company description searches accent insensitive. For example, “á” will match “a” as well. |
payload.min_revenue_usd | integer | No | — | Minimum company revenue, in USD |
payload.max_revenue_usd | integer | No | — | Maximum company revenue, in USD |
payload.min_employee_count | integer | No | — | Minimum number of employees in a company |
payload.max_employee_count | integer | No | — | Maximum number of employees in a company |
payload.min_employee_count_or_null | integer | No | — | Minimum number of employees in a company. If we don’t have company size information, we will return it as well. |
payload.max_employee_count_or_null | integer | No | — | Maximum number of employees in a company. If we don’t have company size information, we will return it as well. |
payload.min_funding_usd | integer | No | — | Minimum company funding, in USD |
payload.max_funding_usd | integer | No | — | Maximum company funding, in USD |
payload.funding_stage_or | array | No | [] | Funding stages of companies returned. Possible values: [‘angel’, ‘convertible_note’, ‘debt_financing’, ‘equity_crowdfunding’, ‘other’, ‘private_equity’, ‘seed’, ‘series_a’, ‘series_b’, ‘series_c’, ‘series_d’, ‘series_e’, ‘series_f’, ‘series_g’, ‘series_h’, ‘venture_round_not_specified’, ‘series_i’, ‘series_j’, ‘undisclosed’, ‘series_unknown’, ‘pre_seed’, ‘post_ipo_secondary’, ‘post_ipo_equity’, ‘post_ipo_debt’, ‘non_equity_assistance’, ‘late_vc’, ‘initial_coin_offering’, ‘growth_equity_vc’, See the live schema for the complete constraint. |
payload.industry_or | array | No | [] | Names of industries, case-insensitive. Results will only include companies that belong to any of the industries specified in this parameter. Available values: GET /v0/catalog/industries WARNING: Deprecated parameter. Use the industry_id_or field instead. |
payload.industry_not | array | No | [] | Names of industries, case-insensitive. Results will exclude companies that belong to any of the industries specified in this parameter. Available values: GET /v0/catalog/industries WARNING: Deprecated parameter. Use the industry_id_not field instead. |
payload.industry_id_or | array | No | [] | Industry codes. You can use any of LinkedIn’s Industry Codes V2 or GET /v0/catalog/industries |
payload.industry_id_not | array | No | [] | Industry ids to exclude.You can use any of LinkedIn’s Industry Codes V2 or GET /v0/catalog/industries |
payload.company_tags_or | array | No | [] | Return companies that match any of these keywords |
payload.company_type | "recruiting_agency" | "direct_employer" | "all" | No | — | Filter by company type. Allowed: recruiting_agency, direct_employer, all. |
payload.company_investors_or | array | No | [] | Investors of the company |
payload.company_investors_partial_match_or | array | No | [] | Investors of the company. Will return companies for which any of their investors contains any of the substrings passed here. For example, if you pass ‘andree’, all funds that match it (like ‘Andreessen Horowitz’, ‘Andreessen Horowitz LLC’, etc). |
payload.company_technology_slug_or | array | No | [] | Will return jobs from companies that that have mentioned any of these technologies in their jobs (not necessarily in the jobs returned). Case sensitive. Pass slugs. Check out all the technologies we track at GET /v0/catalog/technologies. Deprecated: use company_keyword_slug_or instead. |
payload.company_technology_slug_and | array | No | [] | Will return jobs from companies that that have mentioned all of these technologies in their jobs (not necessarily in the jobs returned). Case sensitive. Pass slugs. Check out all the technologies we track at GET /v0/catalog/technologies. Deprecated: use company_keyword_slug_and instead. |
payload.company_technology_slug_not | array | No | [] | Will return jobs from companies that that haven’t mentioned any of these technologies in their jobs. Case sensitive. Pass slugs. Check out all the technologies we track at GET /v0/catalog/technologies. Deprecated: use company_keyword_slug_not instead. |
payload.company_keyword_slug_or | array | No | [] | Return results from companies that have mentioned any of these keywords in their jobs. Case sensitive. Pass slugs. Check out all the keywords we track at GET /v0/catalog/keywords |
payload.company_keyword_slug_and | array | No | [] | Return results from companies that have mentioned all of these keywords in their jobs. Case sensitive. Pass slugs. Check out all the keywords we track at GET /v0/catalog/keywords |
payload.company_keyword_slug_not | array | No | [] | Return results from companies that haven’t mentioned any of these keywords in their jobs. Case sensitive. Pass slugs. Check out all the keywords we track at GET /v0/catalog/keywords |
payload.only_yc_companies | boolean | No | false | Only return YC companies |
payload.company_location_pattern_or | array | No | [] | Return companies whose city matches any of the patterns passed here. Case insensitive. For example, if you pass ‘san francisco’, it will return companies whose city is ‘San Francisco’, ‘San Francisco Bay Area’, etc. |
payload.company_country_code_or | array | No | [] | Return companies whose HQ country code is any of the ones passed here, case sensitive. Pass ISO2 country codes. |
payload.company_country_code_not | array | No | [] | Return companies whose HQ country code is not any of the ones passed here, case sensitive. Pass ISO2 country codes. |
payload.company_list_id_or | array | No | [] | Return companies that belong to any of the company lists passed here |
payload.company_list_id_not | array | No | [] | Return companies that don’t belong to any of the company lists passed here |
payload.company_linkedin_url_exists | boolean | No | — | (Use property_exists_or / property_exists_and instead) Only return companies with a LinkedIn URL |
payload.revealed_company_data | boolean | No | — | This field is deprecated and has no effect. |
payload.last_funding_round_date_lte | string | No | — | Only return companies whose last funding round date is before or on this date. Format: ‘YYYY-MM-DD’ Format: date. |
payload.last_funding_round_date_gte | string | No | — | Only return companies whose last funding round date is after or on this date. Format: ‘YYYY-MM-DD’ Format: date. |
payload.include_total_results | boolean | No | false | When enabled, calculates and returns total_results and total_companies fields in the response. WARNING: This significantly slows down responses as it requires reading the entire dataset. Recommended usage: enable only for the initial request to get totals, then disable for subsequent pagination requests. |
payload.job_filters | object | No | — | — |
payload.tech_filters | object | No | — | Filter by technologies and buying intent topics detected for the company |
payload.keyword_slug_or | array | No | [] | Return results from companies that have mentioned any of these keywords in their jobs. Case sensitive. Pass slugs. Check out all the keywords we track at GET /v0/catalog/keywords |
payload.keyword_slug_and | array | No | [] | Return results from companies that have mentioned all of these keywords in their jobs. Case sensitive. Pass slugs. Check out all the keywords we track at GET /v0/catalog/keywords |
payload.keyword_slug_not | array | No | [] | Return results from companies that haven’t mentioned any of these keywords in their jobs. Case sensitive. Pass slugs. Check out all the keywords we track at GET /v0/catalog/keywords |
payload.technology_slug_or | array | No | [] | Return results from companies that have mentioned any of these keywords in their jobs. Case sensitive. Pass slugs. Check out all the keywords we track at GET /v0/catalog/keywords |
payload.technology_slug_and | array | No | [] | Return results from companies that have mentioned all of these keywords in their jobs. Case sensitive. Pass slugs. Check out all the keywords we track at GET /v0/catalog/keywords |
payload.technology_slug_not | array | No | [] | Return results from companies that haven’t mentioned any of these keywords in their jobs. Case sensitive. Pass slugs. Check out all the keywords we track at GET /v0/catalog/keywords |
This input schema is too large to embed without slowing the page. Get the complete live contract with
deepline tools get theirstack_company_search --json.Output reference
Standard tool result payload.| Name | Type | Required | Default | Details |
|---|---|---|---|---|
result.data | object | Yes | — | Provider response payload. |
result.data.metadata | object | Yes | — | — |
result.data.metadata.total_results | integer | null | No | — | Total number of results |
result.data.metadata.truncated_results | integer | null | No | 0 | Number of results that were not returned because the user doesn’t have enough credits to fetch them all the possible results the API could have returned |
result.data.metadata.truncated_companies | integer | null | No | 0 | Number of companies that were not returned because the user doesn’t have enough credits to fetch all the possible results the API could have returned |
result.data.metadata.total_companies | integer | null | No | — | Total number of companies |
result.data.data | array | Yes | — | — |
result.data.data[].id | string | Yes | — | Company ID |
result.data.data[].name | string | Yes | — | Company name |
result.data.data[].domain | string | null | No | — | Company domain |
result.data.data[].industry | string | null | No | — | Industry of the company |
result.data.data[].country | string | null | No | — | Country of the company’s HQ |
result.data.data[].country_code | string | null | No | — | ISO2 country code. E.g. “US” |
result.data.data[].employee_count | integer | null | No | — | Number of employees of the company |
result.data.data[].logo | string | null | No | — | Stable CDN-hosted company logo URL suitable for display in applications |
result.data.data[].num_jobs | integer | No | 0 | Number of jobs from this company in our database |
result.data.data[].num_technologies | integer | No | 0 | Number of technologies mentioned in the jobs of this company |
result.data.data[].num_keywords | integer | No | 0 | Number of distinct keywords (technologies + buying intent topics) found in this company’s jobs |
result.data.data[].num_buying_intent_topics | integer | No | 0 | Number of distinct buying intent topic keywords found in this company’s jobs |
result.data.data[].possible_domains | array | No | [] | List of possible domains for the company |
result.data.data[].url | string | null | No | — | Company domain. Same as the “domain” field. Will be deprecated in the future. |
result.data.data[].industry_id | integer | null | No | — | Code of the industry. One of LinkedIn’s Industry Codes V2 from https://learn.microsoft.com/en-us/linkedin/shared/references/reference-tables/industry-codes-v2 |
result.data.data[].linkedin_url | string | null | No | — | — |
result.data.data[].num_jobs_last_30_days | integer | No | 0 | Number of jobs from this company in our database posted in the last 30 days |
result.data.data[].num_jobs_found | integer | null | No | — | When filtering companies by jobs, number of jobs found for this company |
result.data.data[].yc_batch | string | null | No | — | If the company went through YC, this is its batch |
result.data.data[].apollo_id | string | null | No | — | ID of the company in Apollo |
result.data.data[].linkedin_id | string | null | No | — | ID of the company in LinkedIn |
result.data.data[].url_source | string | null | No | — | Source of the company URL |
result.data.data[].is_recruiting_agency | boolean | null | No | — | Is a recruiting agency |
result.data.data[].founded_year | integer | null | No | — | Year the company was founded |
result.data.data[].annual_revenue_usd | number | null | No | — | Annual revenue of the company in USD |
result.data.data[].annual_revenue_usd_readable | string | null | No | — | Annual revenue of the company in USD, formated as an easily readable string |
result.data.data[].total_funding_usd | integer | null | No | — | Funding of the company in USD |
result.data.data[].last_funding_round_date | string | null | No | — | Date of the last funding round of the company Format: date. |
result.data.data[].last_funding_round_amount_readable | string | null | No | — | Amount of the last funding round of the company, formated as an easily readable string |
result.data.data[].employee_count_range | string | null | No | — | Number range of employees at the company |
result.data.data[].long_description | string | null | No | — | Short description of the company |
result.data.data[].seo_description | string | null | No | — | SEO description of the company, extracted from their website |
result.data.data[].city | string | null | No | — | City of the company’s HQ |
result.data.data[].postal_code | string | null | No | — | Postal code of the company’s HQ |
result.data.data[].company_keywords | array | null | No | — | Company keywords, related to what the company does. Deprecated: use company_tags instead. |
result.data.data[].company_tags | array | No | [] | Company keywords, related to what the company does |
result.data.data[].alexa_ranking | integer | null | No | — | Alexa ranking |
result.data.data[].publicly_traded_symbol | string | null | No | — | — |
result.data.data[].publicly_traded_exchange | string | null | No | — | — |
result.data.data[].investors | array | null | No | — | List of investors in this company |
result.data.data[].funding_stage | "angel" | "convertible_note" | "debt_financing" | "equity_crowdfunding" | "other" | "private_equity" | "seed" | "series_a" | "series_b" | "series_c" | "series_d" | "series_e" | "series_f" | "series_g" | "series_h" | "venture_round_not_specified" | "series_i" | "series_j" | "undisclosed" | "series_unknown" | "pre_seed" | "post_ipo_secondary" | "post_ipo_equity" | "post_ipo_debt" | "non_equity_assistance" | "late_vc" | "initial_coin_offering" | "growth_equity_vc" | "grant" | "early_vc" | "corporate_round" | "secondary_market" | "product_crowdfunding" | No | — | Latest funding stage of the company Allowed: angel, convertible_note, debt_financing, equity_crowdfunding, other, private_equity, seed, series_a, series_b, series_c, series_d, series_e, series_f, series_g, series_h, venture_round_not_specified, series_i, series_j, undisclosed, series_unknown, pre_seed, post_ipo_secondary, post_ipo_equity, post_ipo_debt, non_equity_assistance, late_vc, initial_coin_offering, growth_equity_vc, grant, See the live schema for the complete constraint. |
result.data.data[].has_blurred_data | boolean | No | false | Whether the returned object has company identifiable data blurred or not |
result.data.data[].keyword_slugs | array | No | [] | Slugs of all keywords (technologies and buying intent topics) found in this company’s jobs |
This output schema is too large to embed without slowing the page. Get the complete live contract with
deepline tools get theirstack_company_search --json.Deepline cost
- Pricing model:
per_result(per result). - Estimated Deepline credits:
1.66per pricing unit.