For vertical SaaS

The agentic GTM platform for vertical SaaS founders

Your vertical SaaS market is not infinite. It is a few thousand companies you could almost name, and that changes what good targeting means.

try

When the market is four thousand companies, completeness beats volume. Missing three hundred of them is missing a slice of your revenue, and contacting the same two hundred twice in a year is worse than contacting nobody at all.

That makes the account list a durable asset rather than a campaign artifact. It lives in Records as canonical truth, gets extended from working Tables, and every sequence, call, and reply attaches to a company you already know.

Who this is for
Seed to Series A software companies serving one industry: field service, manufacturing, hospitality, trades, or logistics operators. Four to fifty people, founder led revenue.
What it looks like today
Sourcing tools built for a market of millions fit a market of thousands badly. You end up with an incomplete list, duplicates from three exports, and no record of who was already contacted.
What changes
You build a census instead of a list. One row per real company, deduped, enriched once, refreshed on a schedule, carrying every touch and reply for as long as the company exists.

Example searches

Ask for it the way you'd say it

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

  • The whole market, once

    build a list of every independent equipment rental company across these twelve states

    Rows arrive deduplicated against what you already hold, so a second pass extends the census instead of doubling it.

  • Qualify by what they operate

    read each company site and tell me how many locations and vehicles they run

    The extracted number and the page it came from sit side by side, so an odd value can be checked in seconds.

  • The owner, not the office

    find the owner or general manager at each of these companies with a direct phone

    Each row shows whether a number was found and which lane found it. Turn on the optional line-type check to tell mobiles from landlines before you plan calls.

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.

  • Build the census

    One row per real company in your market, deduped and enriched once.

    1. 1Source from directories, maps results, and web search into a working table.
    2. 2Dedupe, enrich, then promote the survivors into accounts you intend to keep.
    3. 3Tag each promoted record with its sub segment, so later lists are cut from one vocabulary.
    oxygen tables dedupe
  • Keep it current without rebuilding it

    A market list that ages well instead of expiring after a quarter.

    1. 1Schedule a refresh that revisits company sites and updates the changed fields.
    2. 2Have the workflow write the date a field changed, then filter on that date instead of reading the whole table again.
    oxygen workflows enable
  • Work the same accounts for years

    Every touch, call, and reply stays attached to the company record.

    1. 1Enroll in small waves and turn on cross-campaign exclusion, so anyone another active sequence is already contacting is skipped.
    2. 2Log call outcomes on the account so the next attempt reads the last one.
    oxygen crm activity log

Capabilities

What you get

  • A census, not an export

    Rows deduplicate against the accounts you already hold, so running sourcing again extends your coverage instead of creating a second list nobody trusts.

  • Enrichment you pay for once

    Contact data is written onto the record and reused everywhere, rather than bought again each time somebody builds a new campaign.

  • History that survives the campaign

    Calls, emails, replies, and notes attach to the company, so an account you touched last year opens with its own history in front of you.

  • Free tables, metered sourcing

    Setting up the census table costs nothing. Sourcing, enrichment, and refreshes draw credits, and connecting a sending account needs a plan.

Instead of

The stack this replaces

Native, on one contract and one credit balance, not another tab wired to the last one.

Data sources

Data sources and CRM connections

  • Serper

    Google Maps listings by category and city, which is where owner-operated businesses are actually listed.

  • Exa

    Web search to catch companies that appear only in an association page, a directory, or a trade article.

  • People Data Labs

    Firmographics for the companies large enough to carry a record, used to band the census by size.

  • Blitz API

    Finds the owner or general manager, which is the person who signs at an owner operated business.

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

  • A census is only as complete as public listings allow. Some companies appear nowhere but a trade directory, so expect to add rows by hand and treat the sourced set as your floor rather than the total.

FAQ

Questions people ask first

How do we know the list is complete?
You cannot know exactly, but you can measure it. Sourcing from several angles into one deduped table shows how many new rows each pass adds, and when a pass finds nobody new you are close.
What stops us contacting the same company twice?
The record does. Rows dedupe onto an existing account, and suppression is workspace wide. With company reply pause on, a reply from anyone at a company holds the rest of that campaign's contacts there. In a small market that matters more than anywhere.
Our buyers are not on LinkedIn. Does that matter?
It changes who you can name more than whether you can reach them. The lookup that names the owner leans on LinkedIn profiles, so it misses owners who have none. The Maps listing usually carries the business phone, and a scrape column can pull the emails a company publishes on its own site. The table records which channels exist per row, so you can route accounts differently.
Can we hand this to a sales hire later?
That is the point of keeping it in Records. A new rep opens an account and sees the research, the history, and the last conversation instead of asking around about who touched it.
Is this useful for a market of fifty thousand companies?
Yes, though the emphasis shifts. Below a few thousand, completeness wins. Above that, ranking and segmentation matter more, and the same tables and tags handle either shape.
What does maintaining the census cost each month?
Only what a refresh touches. Re-reading a site is metered, so aim each refresh at the rows a filter selects, one sub segment at a time if you like. Every refresh records what it drew.

Put your GTM motion on one stack

Sign up, get a working workspace with a one-time credit grant, and run the first play end to end without wiring five tools together.