Product

Sep 10, 2026

Seltz tops Exa’s Company Search benchmark

Antonio Mallia Profile

Antonio Mallia

We ran Seltz on the 605-query company search benchmark Exa built and open-sourced. We tied their top-ten hit rate and returned results in 327ms.

Exa built a company search benchmark. We ran it, and tied for answer quality at much lower latency.

tldr:

  • We tested Seltz on the 605-query retrieval track of the company search benchmark Exa built, with per-query timing added to the harness so speed gets measured alongside quality.

  • Nine in ten queries turn up the right company somewhere in the top ten (0.86), tied for the best in the field. Across the full top ten, better than half the companies hold up (0.53), the best of any provider that answers in under a second.

  • We return results in 327ms at median, 3.4x faster than Exa and 16x faster than Parallel, the only provider that beats us on precision.

The results

Exa puts the single right company first more often than we do, 0.68 to 0.63. That gap shows up on named lookups, where one company is the answer.

We fill most of the top ten with companies that belong there, 0.53 to their 0.49, and we tie them at 0.86 for the best hit rate anywhere in the top ten. 

On discovery queries, where the answer is a set rather than a single company, Parallel barely wins on precision at 0.62 but takes 5,275ms a query to do it, sixteen times our latency. An agent running six of these lookups in sequence spends half a minute waiting.

How Exa’s Company benchmark works

The retrieval track splits 605 queries into 345 static and 260 dynamic. Static queries filter on facts that hold still: name, industry, geography, founding year. 

Dynamic queries filter on facts that are dynamic: 

  • employee count

  • funding stage

  • funding amount.

The query types run from named lookup ("Sakana AI company") through attribute filtering ("fintech companies in Switzerland"), funding constraints ("companies that raised a Series B in 2024"), composite constraints ("Israeli security companies founded after 2015"), disambiguation between similarly named companies, and semantic description ("companies like Bell Labs").

Scoring runs two ways depending on the query. Queries with a known company homepage check whether that URL appears in the top-k results. Queries with structured constraints hand each returned company to an LLM judge, which validates it against every filter in the query.

Exa designed the dataset to defeat memorization. It favors Series A and B companies over household unicorns, firms under 500 employees, and regional players across the EU, APAC, and LATAM, in niche B2B verticals rather than consumer tech. A system scores well here only by retrieving.

That difficulty maps directly onto the long tail your team actually searches. Nobody is losing a procurement cycle because they cannot find Stripe. They lose it on the Series A supplier in Singapore, three tiers down.

Why we chose Exa’s benchmark.

Exa is widely considered the leader in Company search among Search providers. Their benchmark is the closest thing to a high quality, third party, verification of the baseline quality we can achieve.

Exa's benchmark measures quality. It does not measure latency, so we extended it to record per-query response time for every provider under identical conditions, leaving the quality scoring untouched.

Quality only measures one important aspect of agentic workflows. Two seconds is fine for background work, but you need to be fast for real-time research or voice agents.

We ran the general-purpose tier for every provider, using the configuration its own documentation recommends. Faster low-quality modes exist across several of these APIs, and comparing across tiers fudges the results.

This version of our search API returns full company documents. The rest of the table returns snippets or highlights, so we answer three times faster while returning more per call.

How we achieve high quality and low latency.

We built the models instead of fine-tuning general-purpose ones. Quality comes from the architecture and what we train it on. Latency comes from keeping those same models small enough to serve.

Retrieval runs in two stages. A hybrid first stage, which keeps keyword precision while learning which terms matter, with an encoder that matches on meaning. The next leg pins surface facts like a company name; the dense leg captures intent. Drop either and recall falls. A re-ranker then orders the top candidates.

What we train on is what moves the number here. Most retrievers handle name-and-industry lookups and fall apart on the quantitative asks: headcount bands, funding stage, funding amount. Those are the 260 dynamic queries in this track. Our training data covers them with graded near-miss tiers, so the models learn the difference between 180 employees and 800 when the query asks for over 200.

The teacher-student step makes that quality servable. We train a large teacher, then distill its judgment into the small retrievers we run at query time. They inherit reranker-quality ranking without reranker cost on every document. That step is what the 0.53 P@10 and the 327ms median are both made of.

Better models alone don't get you to 327 milliseconds, and neither does a fast serving layer running someone else's embeddings. Parallel's 5,275ms median is what happens when quality is bought without the second half.

Run it against your own queries.

While we’re proud of our results, individual benchmarks don’t tell the entire story.

Our recommendation: Take three hundred queries from your own product, run them against all eight providers in this table, and score them on what your customers or employees actually need. 

Ready to try Seltz? Try the API today and get 20,000 searches on us.

Fast, up-to-date web data, providing context-engineered web signals with sources for real-time AI reasoning.

Fast, up-to-date web data, providing context-engineered web signals with sources for real-time AI reasoning.

Fast, up-to-date web data, providing context-engineered web signals with sources for real-time AI reasoning.