OXYGENOXYGEN

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, rows carry the lane that found them, and the next pass runs on the same data.

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 could answer it and what a live run would draw, and only then does the run write rows into a table you named. Those rows are typed, collapsed on a key you choose, and stamped with the search that produced them.

Example searches

Ask for it the way you'd say it

Every search below runs on the same hosted Tables, with the cost previewed before anything is spent.

  • 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, and those rows enrich like any other.

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 that newly match the definition arrive on a schedule instead of in a quarterly rebuild.

    1. 1Bind the search to the table as a feed, with a cadence and a per-cycle ceiling agreed up front.
    2. 2New rows land as additions, and a company whose values moved shows as a changed cell with the previous run still on it.
    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. Where two sources disagree, the disagreement is visible rather than quietly settled in the background.

  • Deduplication you control

    A search upserts on its intent's key, the domain for companies, so a rerun collapses onto rows you already hold. A different key is a standing setting on the table, and a cleanup after the fact is one more 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

What the data actually comes from

Every value lands with its provider and cost recorded on the cell.

  • TheirStack

    Job-post search, the cleanest way to filter companies by what they are building and staffing right now.

  • People Data Labs

    Firmographic breadth for the size, industry, and geography pass that opens most segments.

  • Exa

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

  • Crustdata

    Free label and enum resolution before a paid page, so a filter value is the one the provider recognizes rather than a guess.

Run these on Oxygen's managed credits, or connect your own provider keys and pay the vendor directly — the same columns, the same runs, the same provenance either way. See every integration.

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. It is the cheapest way to discover a filter does not exist.
What happens when I rerun the same search?
It upserts on the key its intent uses, which is the domain for a company search. New companies arrive as additions and earlier rows stay where they are. For a different key, set a standing auto-dedupe rule on the table, or collapse duplicates after the fact with the table's own 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. Both values stay on the row, and a research column or a person settles it where the difference changes how you sell.
Is there a ceiling on how many companies a table holds?
There is no plan-specific row limit. Building and holding the list is unmetered; what draws credits is the provider work that fills the columns beside it.

Run company search that writes rows into a real table on 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.