OXYGENOXYGEN

Find agencies

Find marketing agencies by service mix, size, and stack

Every agency site says full service. What separates a paid-media shop from a brand studio is the work they show, the headcount behind it, and the tooling on their own domain.

try

Agency sourcing breaks on self-description. A three-person shop with one retainer calls itself full service, and so does a hundred-person network. The cut that matters is what they sell, how many people sell it, and whether their own site shows your category.

Open Web Ninja returns the listing with site and location. People Data Labs adds headcount and founding year. BuiltWith reads the agency's own domain so their tooling becomes a sortable column, and Blitz API heads the email chain with LeadMagic behind it.

Nothing becomes canonical until you say so. Rows you keep are promoted to company and contact Records with the source of every field attached. The rest stay in the working set, where sitting still costs nothing.

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.

  • By service line

    find agencies that describe themselves as paid media or performance marketing across the midwest

    Service language is read off the site once and written to the row, so a brand studio calling itself full service does not quietly pass.

  • Sized for your price point

    only agencies between ten and sixty people, drop the one-person consultancies

    Headcount comes from the company record rather than a guess off the homepage. Rows where it is unknown are flagged, not deleted.

  • Owner, not the shared inbox

    for each agency get the founder or head of growth with a verified work email

    Titles vary wildly at this size, so the table stores the title it actually found beside the address it resolved.

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.

  • Stack-qualified agency shortlist

    A list where every agency already runs the category your product attaches to.

    1. 1Source agencies by service language and region, then dedupe on normalized domain.
    2. 2Run detection per domain, keep the matches, resolve the owner, and enroll.
    oxygen search run
  • Partner pitch, not a product pitch

    Agencies already serving your buyer get invited to resell instead of cold-pitched.

    1. 1Filter to agencies whose case studies name the sector you sell into.
    2. 2Enroll from a warmed sending domain and work every reply in one inbox.
    oxygen sequences enroll
  • Refresh the agencies in your CRM

    Agency accounts you already track get a current headcount and a named owner.

    1. 1Open the object-backed table over your company Records and filter it to agencies.
    2. 2Re-run the contact column, then promote back only the cells that changed.
    oxygen tables promote

Who you can reach

Roles you can find at marketing and growth agencies

Reachability is per channel: a role marked for mobile is one the phone waterfall usually resolves, not a guarantee for every record.

RoleSeniorityReachable by
Agency founder or ownerOwner/FounderWork emailLinkedInMobile
Managing directorC-levelWork emailLinkedIn
Head of growthDirectorWork emailLinkedIn
New business directorDirectorWork emailLinkedIn
Head of operationsVPWork emailLinkedIn
Account directorManagerWork emailLinkedIn

Filters you can search on

  • Service lines named on the site
  • Headcount band
  • City, state, or country
  • Tools detected on the agency domain
  • Client sectors named in case studies
  • Independent or part of a network
  • Year founded

Listing and site data resolve for almost any agency with a domain. Headcount thins out below five people, where no company record exists, so you get a listing and a phone number but no size band. Detection reads what the agency exposes on its own website, which undercounts anything they run only inside client accounts.

Data sources

What the data actually comes from

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

  • Op

    Open Web Ninja

    Agency listings with site, phone, category, and location, which is where a regional sweep starts.

  • BuiltWith

    Reads the agency's own domain, turning their marketing tooling into a column you can filter.

  • People Data Labs

    Company records for headcount, founding year, and the people attached to them.

  • Blitz API

    First lane of the work-email chain. A row it resolves never reaches the metered lanes behind it.

  • LeadMagic

    Picks up email and mobile on the residual, charged only when it returns something.

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

  • An agency website is marketing copy. Service lines and client logos say what they want to sell next year, not what pays the bills today, so rank on them rather than hard-filtering.

FAQ

Questions people ask first

How do I tell a real agency from a solo freelancer?
Headcount is the cleanest split and it comes from the company record, not the homepage. Below roughly three people no record exists, which is itself the answer: work those rows by phone.
Can I filter on what an agency actually sells?
Yes, but store it as a column rather than burying it in a keyword search. The site language is read once and written to the row with its source, so you can change the rule without sourcing again.
What if the only address is a shared inbox?
Generic addresses are stored and marked, so they never mix with a named contact. Rows that resolve only to a shared inbox belong in a phone or LinkedIn step, not an email sequence.
Can two of us work the same agency list?
Yes. A table is a workspace object, not a file on a laptop. A teammate opens the same rows, reads the run history behind each cell, and comments before anything is promoted.
Which columns on this build actually cost anything?
Sourcing the rows, detection on the agency domain, and the email waterfall are the metered columns. Writing the service-line rule, deduping, splitting views, and drafting the sequence are not. Order the free checks first so a metered lane only ever runs on agencies that already passed, and preview every run before it starts.
How do I keep the list from going stale?
Bind the search to the table as a feed with a cadence and a per-cycle ceiling. Matching agencies arrive as new rows on schedule and nothing spends past the cap you approved.

Build your marketing and growth agencies list

Start with a search, preview the cost before anything is spent, and keep the rows, sources, and runs in a workspace you own.