Build the account list

Company search that writes rows into a real table

A company search is worth little when the output is a download. Here the result set is a table you keep: filters are recorded, each row names the source that found it, and the next pass runs on the same table.

try

Every company search starts as a guess. You name a size band, a geography, and an industry, look at the first page, and realize the filter you actually wanted is not one the search box offers. What makes a search tool useful is how cheaply you can be wrong twice.

Planning a query costs nothing here and calls no provider. You see which lanes, or data sources, could answer it and what a live run would draw. Only then does the run write rows into a table you named. Those rows are typed, collapsed on the company domain, and stamped with the search that produced them.

Example searches

Ask for it the way you'd say it

Each example is a request in plain words, with what it returns underneath.

  • Firmographic first pass

    software companies in Germany and the Netherlands with 20 to 200 employees that have raised a round

    The plan step names which lanes can serve those filters before a paid call is made.

  • Companies by what they run

    show me companies whose job posts mention kubernetes and who sell into large enterprises

    Job-post text is a sharper stack filter than a category tag, because a human wrote it last month.

  • A segment no industry tag carries

    find companies that run paid onboarding for their own customers, whatever they call it on their site

    A description-shaped lane reaches segments a category filter cannot express. Check rows with an AI column first, since a semantic match can be loose.

Plays

Three motions you can run this week

Each one is a chain of OXYGEN primitives: the same hosted objects your workspace already has, composed.

  • Plan the query, then pay for it

    A segment is checked on filters and expected shape before a single provider call is billed.

    1. 1Resolve the stored ICP so the filters start from your own definition instead of a blank form.
    2. 2Plan the search, read the lanes and the estimate, then run it into a table you name.
    oxygen companies search plan
  • One segment asked of several lanes

    Coverage improves because the same filters are put to more than one kind of source.

    1. 1Run the firmographic lane, then a hiring lane and a description lane across the same filters.
    2. 2Collapse on domain, keep the union, and promote only the accounts you intend to work.
    oxygen tables dedupe
  • Keep the segment alive

    Companies newly hiring for the roles in your definition arrive each cycle instead of in a quarterly rebuild.

    1. 1Bind a hiring search to the table as a feed with a per-cycle ceiling; each cycle asks only for posts since the last one.
    2. 2A firmographic search is a fixed list: its feed pages through once and stops. Re-run it for fresh rows; changed cells keep the earlier value in recent history.
    oxygen feeds bind

Capabilities

What you get

  • A plan step that costs nothing

    Planning resolves your filters against the available lanes and returns an estimate. Nothing is called and nothing is drawn, so you can iterate freely.

  • Rows with a source on them

    Every row records the lane that produced it and when. When a second source overwrites a value, the cell's recent history keeps the old one and its run, so a disagreement can be traced.

  • Deduplication you control

    A rerun matches companies by domain, so it updates rows you already hold instead of adding copies. Another match column is a standing dedupe rule on the table; a later cleanup is one command.

  • Filters past the category tag

    Headcount, funding, and location are the easy part. Hiring text, detected technology, and how a company describes itself are where a segment gets specific.

Boundaries

What Tables does not own

Company search is Tables doing the work of building a set. The canonical company object, its lifecycle, and its activity timeline belong to Records, and a sourced row becomes truth only when you promote it. Nothing here sends anything; that is Sequences.

Data sources

Data sources and CRM connections

  • TheirStack

    Job-post and technology search, the head lane when you filter companies by the tools they run and a fallback for hiring.

  • Blitz API

    The default firmographic lane: size, industry, and geography filters run here first, and hiring searches start here too.

  • Exa

    Semantic company search for a segment you can describe but not filter, which is most of the interesting ones.

  • Crustdata

    On your own Crustdata key, called by name and never routed by default. Run its autocomplete first to find the filter value Crustdata accepts.

Use managed credits where available, or connect a supported provider key on an eligible paid plan. Your provider bills its calls; OXYGEN adds a per-call platform fee. Signed-in CRM connections such as HubSpot have no per-call fee. Connected sending accounts reserve monthly credits. See pricing and supported integrations.

Limits

Where this stops

  • Sources disagree about headcount and category more often than anyone admits. Treat one field as an estimate and let a second lane settle the rows where it changes a decision.

FAQ

Questions people ask first

Does planning a search cost credits?
No. The plan step resolves your filters, names the lanes that could serve them, and returns an estimate without calling a provider. The free preview then shows the first 50 matches, with a total count where the source publishes one.
What happens when I rerun the same search?
Companies you already hold are matched on their domain and updated in place; new ones arrive as new rows. To match on another column, set a standing auto-dedupe rule on the table, or collapse duplicates later with the table's dedupe command.
Can I search by technology or by hiring?
Yes, and those are usually the filters worth paying for. A job post naming a tool is stronger evidence than an industry label, because somebody wrote it on purpose and recently.
How do these rows reach my CRM?
You promote them. Promotion writes the account onto a company record with provenance attached, which keeps the exploratory rows you discarded out of your canonical data.
Why do two sources describe one company differently?
They measure different things on different refresh clocks. The later write replaces the cell, and its recent history keeps the earlier value and the run that wrote it, so a research column or a person can settle it where the difference matters.
Is there a ceiling on how many companies a table holds?
Yes. Each plan caps how many rows one table holds, and the pricing page lists the cap for every plan. Holding the list costs no credits. The sourcing search that fills it and the provider work in the columns beside it draw credits.

Try Tables in your own workspace

Sign up, get a working workspace with a one-time credit grant, and run the first play from the web app, the CLI, or your AI assistant over MCP.