<summary>Find companies whose technographic profile matches a target tech stack.
Use ONLY when the user explicitly wants to discover companies BY THEIR
INSTALLED TECHNOLOGY — e.g. "find DTC brands using Shopify and Klaviyo",
"who runs Snowflake AND Looker", "US e-commerce companies using HubSpot".
For hiring-signal discovery (companies posting jobs that mention a tech),
use `theirstack_search` instead — that surfaces investment intent,
whereas this surfaces installed base.
That installed base is what TheirStack DETECTS from job-posting text, not
from crawling storefronts, so it only sees companies that hire and name the
tool in their JDs — treat a company's absence as "not detected here," not
"not using it" (a storefront-sniffing method like BuiltWith/Wappalyzer
would surface more).
For ecommerce-platform tools, results may include the platform's SERVICE
PROVIDERS (agencies, ISVs) alongside actual merchants — job mentions don't
distinguish "we run on Shopify" from "we sell to Shopify merchants," so
inspect domains/industries to filter. Recruiting agencies are always
excluded (company_type = direct_employer), matching theirstack_search.
Shares TheirStack's two-part price: 0.5 Sliq credits the first time
TheirStack runs in a scan (free on a later same-scan call, including
after theirstack_search), plus 1 credit per new company its results
add to the list when you record them. Companies already in the list
are not re-charged.
In chat, STATE THE COUNT AND THE COST in the same reply as the
results — every time, without stopping to ask first. Use the user's
number when they gave one, otherwise the default: "pulled 25
companies — up to 25 credits (new ones only); say if you want more,
max 100." Rows here are companies 1:1 and billing is per new company
recorded, so that figure is an upper bound — never quote it as a
price. Because this endpoint pages, prefer one page at the user's
number over silently walking `offset` past it — every extra page is
more credits.
The tool resolves each technology name to a TheirStack catalog slug
(calling /v0/catalog/technologies per name; popularity tiebreak; exact
name match wins), then queries /v1/companies/search with
`company_technology_slug_and` so EVERY supplied technology must be
present on the returned company.</summary>
<returns>
<description>{
"companies": [
{
"id": str, "name": str, "domain": str | None,
"industry": str | None, "employee_count": int | None,
"country_code": str | None, "linkedin_url": str | None,
"technologies_found": [
{"slug": str, "name": str, "confidence": str,
"jobs": int, "last_date_found": str},
...
],
},
...
],
"count": int, # number of companies in this page
"total_matches": int, # universe size for this query (or None)
}
On upstream failure (timeout / 5xx / connection error), returns
`{"companies": [], "count": 0, "theirstack_available": False}`
so the agent can read the flag and degrade gracefully.</description>
</returns>