cubeshell.company.lookalikeSimilar Companies
Use when the user has one seed company, a domain (preferred), website, name, or a free-text description, and needs companies like it for prospecting or market research. Returns up to 50 similar companies with similarity scores (limit defaults to 25), or a not_found result. It does not look up one known company (use cubeshell.company.search) and does not filter by attributes; it ranks by similarity to the seed only.
company_domain, website, company_name or description. A call with none of them is rejected as INVALID_INPUT before anything is charged. Ranking is by similarity to the seed only. There is no attribute filtering, so you cannot ask for companies in one country or headcount band here. Filter the returned list yourself.Request
Workspace identity comes from the authenticated MCP connection, not from the call arguments. There is no workspace field to set.
| Parameter | Type | Description |
|---|---|---|
request_idrequired | string | Stable idempotency key, 1 to 200 characters. Replaying the same request_id with the same input returns the original result without a second charge. |
quote_onlyrequired | false | Must be false. Quote-only preview is not available in this version. |
input.company_domain | string | Bare company domain such as example.com. Not a URL. Up to 253 characters. Preferred seed. |
input.website | string | Seed company website. Up to 500 characters. |
input.company_name | string | Seed company name. Up to 200 characters. |
input.description | string | Free-text description of the kind of company to match. Up to 500 characters. Use it when there is no single seed company. |
input.limit | integerdefault: 25 | Maximum companies to return. Minimum 1, maximum 50. |
max_microcredits | integer | Optional ceiling. If the authoritative price is higher, the call is rejected before anything is charged. |
{
"name": "cubeshell.company.lookalike",
"arguments": {
"request_id": "lookalike-example-001",
"quote_only": false,
"input": {
"company_domain": "example.com",
"limit": 25
}
}
}Result
On status: "succeeded", the result field holds the ranked matches. Many per-company fields are nullable, so read defensively rather than assuming a value is present.
| Parameter | Type | Description |
|---|---|---|
result.companies | array | null | Similar companies, ranked by similarity to the seed. |
result.companies[].domain | string | Company domain. |
result.companies[].about | string | Short company description. |
result.companies[].categories | array of string | null | Categories the company falls under. May be null. |
result.companies[].employee_range | string | Headcount band as a display string. |
result.companies[].employee_min | integer | null | Lower bound of the headcount band. |
result.companies[].employee_max | integer | null | Upper bound of the headcount band. |
result.companies[].founded_year | integer | null | Founding year. |
result.companies[].contacts_with_email | integer | null | Known contacts at the company that have an email. |
result.companies[].contacts_with_phone | integer | null | Known contacts at the company that have a phone number. |
result.companies[].funding_investor_count | integer | null | Number of known investors. |
result.companies[].growth_rate | integer | null | Reported growth rate. |
result.companies[].has_tech_stack | boolean | null | Whether technologies are known for the company. Use cubeshell.company.technographics to read them. |
result.count | integer | Matches counted for this seed. |
result.returned_count | integer | Companies actually included in this response. |
result.limit_applied | integer | The limit actually used after the default and the bounds were applied. Send no limit and this is 25; send 500 and it is clamped to 50. |
result.offset | integer | Offset the returned window starts at. |
result.truncated | boolean | True when more matches existed than were returned, so the list is a window and not everything. |
Not found
When the seed matches nothing, the call returns status: "not_found" with no result. This is a real terminal status rather than an error, and it is not charged. An agent should not retry the same seed hoping for a different answer. Try a stronger seed instead, such as a domain in place of a name, or a broader description.