Low volume, high accuracy
PredictLeads
Reps hand-work a handful of accounts, so the top of the list has to be right. Sharpest top-of-list precision in the benchmark.
An independent benchmark of company lookalike / similar-companies APIs — Exa, Ocean.io, Parallel, PredictLeads, Extruct, CUFinder, and Discolike — ranked on how relevant the companies each one returns actually are, across 48 B2B seed companies.
Each vendor is asked for up to 100 lookalikes per seed; an LLM judge scores every returned company for relevance (judge: gpt-5.6). The cell value is Precision@100, with Precision@10 and Precision@25 for top-of-list quality.
On these identical seeds, Parallel leads on long-list relevance (Precision@100), and PredictLeads on top-of-list precision (Precision@10). Precision@10 is reported for every vendor; deeper cutoffs are shown where the endpoint supports them, fully reproducible.
When someone asks which company lookalike API is best, the useful answer is not a podium. Ask how they will use the results, then route to the workflow winner backed by the measured number behind it.
PredictLeads
Reps hand-work a handful of accounts, so the top of the list has to be right. Sharpest top-of-list precision in the benchmark.
Parallel
A big list runs through automated sequences, so relevance has to hold deep into the results. Best long-list precision in the benchmark.
Parallel
You are counting the universe of similar companies, not actioning a shortlist. Returns the most relevant companies across the cohort.
PredictLeads
A live “similar companies” lookup called on page-load, where response time is the constraint. Fastest average latency in the benchmark.
The router above is the recommendation surface. This section keeps the measured Precision@10/25/100 and average-latency facts crawlable and lets humans inspect how each vendor behaved on each seed.
| Rank | Vendor | Precision@10 | Precision@25 | Precision@100 | Relevant returned |
|---|---|---|---|---|---|
| 1 | Parallel | 74.8% | 75.0% | 67.5% | 3,242 |
| 2 | Extruct | 74.8% | 70.0% | 61.2% | 2,938 |
| 3 | Ocean.io | 73.2% | 67.1% | 56.5% | 2,657 |
| 4 | Exa | 95.0% | 80.8% | 52.4% | 2,515 |
| 5 | Discolike | 43.0% | 41.5% | 35.2% | 1,654 |
| 6 | CUFinder | 37.5% | -- | -- | 176 |
| 7 | PredictLeads | 95.8% | 77.2% | -- | 928 |
| Vendor | Relevant / $1 | List depth |
|---|---|---|
| Parallel | 13,508 | @100 · public pricing ↗ |
| Extruct | 625 | @100 · public pricing ↗ |
| Exa | 540 | @100 · public pricing ↗ |
| Discolike | 68 | @100 · public pricing ↗ |
| Ocean.io | 35 | @100 · verified account rate ↗ |
| PredictLeads | 20 | @25 · public pricing ↗ |
| CUFinder | 2 | @10 · public pricing ↗ |
Not a ranking — the practical setup for pointing an agent at each vendor's lookalike / company search: what to call (MCP or API), how to authenticate, and the credits.
api.ocean.io/mcphuman keyPOST api.exa.ai/search · category: companykey · free tierPOST /v1beta/findall/entity-searchkey · free tiermcp.predictleads.comhuman keyGET /api/v3/companies/{domain}/similar_companieshuman keyapi.extruct.ai/mcphuman loginmcp.cufinder.io/mcphuman keyapi.discolike.com/v1/mcphuman loginDrill into how any one vendor scored, compare two side by side, or start with the explainer — every page is built from the same live benchmark data.
K = 100. Capture the ordered top-K result list and credit cost.gpt-5.6, high reasoning effort). Judge returns a binary relevance label per candidate plus a one-line rationale. Identical prompt and rubric across all vendors.Precision@10, Precision@25, and Precision@100. Aggregate per vendor asavg_precision_at_10, avg_precision_at_25, and avg_precision_at_100.- rather than scored on a truncated denominator. Keeps cells comparable.Precision@10/25/100 · relevant results in the top N ÷ N. The denominator is the fixed cutoff — not how many the vendor returned — so returning fewer than N, or padding with junk, both lower the score.avg Precision@100 · headline comparison metric. Mean Precision@100 across all judged seeds. Higher is better.total relevant· sum of relevant lookalikes across all seeds. Not a displayed column — it's the tiebreaker when two vendors post the same avg Precision@100.relevant companies / $1· average judged-relevant companies in one list ÷ the cost of that list at the provider's tested maximum depth. Rates use the linked public price or verified Ocean.io account rate. Example: Parallel averages 67.5 relevant companies in a 100-result list at $0.005, so 67.5 ÷ 0.005 = 13,508. This prices the winning configuration, not the internal prompt sweep.A fully hand-labeled lookalike set would require labeling K × seeds × vendors candidates (100 × 48 × 7 = 33600judgements) every time we re-run a snapshot. That doesn't scale, and it isn't how the buyer actually evaluates a vendor in the wild - the buyer reads the list and decides "close enough to my ICP, yes or no".
The judge approximates that decision with a consistent rubric: given the seed's name, domain, and description, is this returned candidate plausibly the same kind of company a B2B seller would target as a lookalike? The judge's rationale is persisted alongside the binary label so any cell can be audited by a human in seconds. When the model swaps, the cohort re-runs with the same prompt; deltas are visible.
Exa and Parallel accept natural-language company queries. For each seed, we run the same three fixed prompt variants, judge each returned list, and retain the variant with the highest Precision@100 for that provider-seed cell. Ties break on more judged candidates, then lower latency. The full attempts and winning config are preserved in the raw audit trail.
Find companies that are lookalikes of {Company}: companies with a similar core product and buyer. {Company description} Return companies a buyer would realistically evaluate alongside {Company}.Find companies that are lookalikes of {Company}: companies with a similar core product and buyer. {Company description}Find companies that are lookalikes of {Company}: {Company description}Return companies a buyer would realistically evaluate alongside{Company}.This is a per-seed best-of-prompt result, not a single fixed production prompt average. Domain-first providers are not given this prompt sweep.
/companies/lookalikes with seed domain. Default similarity model, K = 100./search with category: company and query text like Find companies that are lookalikes of HubSpot, using the seed description, K = 100./api/v3/companies/{domain}/similar_companies; ranks via shared tech, news, and jobs co-signals; evaluated through Precision@25./v1/companies/{domain}/similar, K = 100./v2/fcl with the seed domain; the endpoint returns at most 10, so it is evaluated through Precision@10./v1/discover with the seed domain and max_records=100.The full benchmark — runner code, judge prompt, benchmark snapshot, and per-cell raw audit trail (the literal HTTP request/response we sent each vendor + the literal LLM judge prompt/response per candidate) — is mirrored in a public repo: openbenchmarks-labs/lookalikes. Auth headers are scrubbed via an allow-list; everything else is verbatim.
To audit a single cell, open data/lookalike-runs/<dataset>/<seed>/<vendor>.raw.json in that repo and replay any of the vendor_calls[] with your own credentials, or re-score with your own LLM by replaying judge_calls[].messages against any OpenAI-v1 compatible model — useful for measuring judge bias or drift across model versions.
Live: Ocean.io, Exa, Parallel, PredictLeads, Extruct, CUFinder, and Discolike.
Requested but not directly comparable: ZoomInfo (company lookalikes are sales-gated, no self-serve API), Clay (lookalike runs inside Clay tables), Apollo (no public lookalike endpoint), Lusha (`/v3/companies/lookalike` requires 5-100 seeds per request, incompatible with the per-seed cell unit of this benchmark), Coresignal, CompanyEnrich, Explorium, and Surfe (enrichment or prospecting surfaces whose lookalike quality is not an independently measured Precision@K number here).
To request a provider, email founders@openbenchmarks.com with a link to the public API docs and pricing page.
gpt-5.6 at high reasoning effort.