OXYGENOXYGEN

Find contractors

Find home services companies by trade, region, and crew

The owner of a six-truck plumbing company answers his own phone and reads email twice a week. Build the list for that reality or it will not convert.

try

Trade first, radius second, size third. That order matters because a roofing company and an electrician in the same zip code share nothing except a service area, and a sales motion built on geography alone ends up pitching four different businesses the same way.

Listings do most of the work here. Open Web Ninja returns the business, its category, hours, phone, and review volume; Serper catches the ones filed under an odd category or trading under a second name. People Data Labs adds a company layer where one exists, which for a family firm is often nothing at all.

Then the contact question. Blitz API runs the email column for firms with a real domain, and ClearoutPhone grades every number so the call list is clean before anyone picks up a handset.

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.

  • One trade, one radius

    roofing contractors within thirty miles of atlanta, exclude general handyman listings

    Trade comes from the listing category and the site, so a handyman advertising roofing does not land in a roofing campaign.

  • Crew size proxies

    hvac companies with multiple service vehicles and a large review count in the same metro

    Review volume and staff count act as size proxies, each in its own column, so you can see which one carried the row.

  • Reachable by phone

    give me a direct number for each contractor and flag the ones that are mobiles

    Numbers are graded before dialing, which matters in a trade where the mobile on the listing is usually the owner's own.

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.

  • Trade-by-trade territory sweep

    A clean table per trade in one metro, deduped and ready to work.

    1. 1Sweep the radius once per trade, dedupe on domain, then collapse the rest with a fuzzy match on business name and address.
    2. 2Promote only the trades you serve, leaving the rest in the working table.
    oxygen search run
  • Call list that is worth dialing

    Every row on the call sheet has a graded number and a reason to be there.

    1. 1Run the phone column, grade line type, and drop numbers that fail validation.
    2. 2Sort by size proxy so the biggest firms in the radius get dialed first.
    oxygen find phone
  • Multi-branch firms get a different pitch

    Regional operators hear an operations message instead of an owner-operator one.

    1. 1Flag firms with more than one location and resolve an operations or GM title.
    2. 2Enroll those rows in their own sequence and suppress the branch listings.
    oxygen sequences enroll

Who you can reach

Roles you can find at home services and trade contractors

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

RoleSeniorityReachable by
Owner or operatorOwner/FounderMobileWork email
General managerManagerWork emailMobile
Service managerManagerWork emailMobile
Office managerManagerWork email
Operations director at a multi-branch firmDirectorWork emailLinkedIn
Sales leadManagerWork emailMobile

Filters you can search on

  • Trade or service category
  • Radius around a city or postcode
  • Review count and rating band
  • Estimated crew or vehicle count
  • Single location or multi-branch
  • Website present or missing
  • Emergency or after-hours service offered

Listings, categories, phone numbers, and review volume resolve for nearly every trade business with a storefront or service-area listing. Company records thin out fast below ten staff, which is most of this market, so headcount is often blank and email resolves less often than in any other services segment. Plan the phone lane first and treat a found email as a bonus.

Data sources

What the data actually comes from

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

  • Op

    Open Web Ninja

    Trade listings with category, hours, phone, rating, and review count for a whole service area.

  • Serper

    Catches firms filed under an unexpected category or trading under a second business name.

  • People Data Labs

    Adds a company layer for the minority of firms large enough to carry a corporate record.

  • Blitz API

    Runs the work-email column for contractors that own a real domain rather than a listing page.

  • ClearoutPhone

    Validates and grades each number so the call sheet is not full of dead switchboards.

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

  • Many trade businesses have no corporate record at all. Expect a listing, a phone number, and a rating, and expect headcount and work email to be empty on a large share of the rows.

FAQ

Questions people ask first

Is email even the right channel for contractors?
Often it is not. Owner-operated firms answer the phone and ignore the inbox, so build the phone lane first and use email for the multi-branch firms that actually staff an office.
How do I estimate crew size?
Review volume, listed staff, and vehicle mentions on the site, each kept as its own column. None is exact, but together they sort a two-truck operation from a twenty-truck one.
Can I search a radius rather than a city?
Yes, a radius around a city or postcode is the natural unit for this market, since service areas ignore city limits. The radius used is recorded on the run alongside the rows it returned.
How do I avoid dialing the same owner twice?
Dedupe on domain first, then run a fuzzy match on business name and address. Trade businesses routinely run several listings under different names from one yard, and the fuzzy key is what collapses those. The domain key only catches the ones that share a site.
What if a contractor has no website?
The row stays with the missing site flagged. It will not resolve an email, so route it straight into the call lane instead of spending on an enrichment attempt that cannot succeed.
What about a contractor covering three metros with one crew?
It surfaces in all three sweeps under the same number and yard. Collapse those rows with the fuzzy key and keep the service radius as a column rather than as three separate accounts. The row then shows real coverage instead of inflating your market count.

Build your home services and trade contractors list

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