Overview
Lookalike Search ranks companies by similarity to a reference company from the same Extruct index used by Semantic Search. It takes a company domain or UUID as input and blends what a company does, who it sells to, firmographics, and traffic into a single ranking.This Path Works Best When
- You trust one company as a good market proxy.
- You want expansion around a known winner, competitor, or target account.
- Filters should refine results, but the seed company should drive ranking.
Choose Another Path If
- You do not yet have a strong seed company. Start with Semantic Search.
- You need custom natural-language evaluation criteria instead of index-based similarity. Use Deep Search.
Prerequisites
Endpoints used
- Lookalike endpoint (
GET /v1/companies/:company_identifier/similar) - Search endpoint (
GET /v1/companies/search)
Workflow
1) Choose company_identifier
company_identifier can be:
- A domain, for example
stripe.com - A UUID
results[].domain.
Use results[].id only if domain is missing.
2) Run lookalike query
3) Apply filters if needed
4) Page through results
- Page 1:
offset=0&limit=20 - Page 2:
offset=20&limit=20 - Page 3:
offset=40&limit=20
Choosing a strong seed company
Lookalike quality depends heavily on the seed. Use a company that clearly represents the market you want, not just a well-known brand in the general space. Good seeds:- Sell to the same buyer you care about.
- Have similar company shape or go-to-market motion.
- Are specific enough that “similar” means something useful.
- Very broad platforms with many unrelated products.
- Household names that dominate a category but are not representative.
- Companies that overlap only superficially with your target market.
Troubleshooting
401 Unauthorized
The token is missing or invalid.
Check that EXTRUCT_API_TOKEN is set and the header is exactly Authorization: Bearer ${EXTRUCT_API_TOKEN}.
404 Not Found
The reference company is not found in the index. Try another domain/UUID.
Reuse a known seed from semantic search (results[].domain or results[].id) to confirm identifier validity.
422 Unprocessable Entity
The filters JSON is malformed or includes unsupported keys.
Validate your filters JSON before sending: echo '<filters-json>' | jq empty.