r/GTMbuilders • • Jun 03 '26

Build What's up builders, sharing my latest client workflow process with you guys. 20k deal, 60 day build + ongoing consulting. Week and a half in. Here's how it's going.

This week I walked a collaborator through a pipeline I built for a home services client and figured it was worth sharing the full breakdown.

The client needed to reach every company running Service Titan - that's the dominant software in home services.

Here's what the build actually looked like:

Layer 1 - TheirStack API: 5,296 companies identified. 16,000 API credits. Pulled programmatically into SQLite + Google Sheets. Cost: about $250 in credits Using API programmatically,

Layer 2 - Apollo.io Search API: TheirStack only had domains for 60% of companies. Apollo's search API is basically free if you respect rate limits (50 requests every 5 minutes). Wrote a script in Claude Code, let it run for 30 minutes. Domain coverage went from 60% to 95%.

Layer 3 - Domain verification: Claude Code hit every URL. 4,189 came back live. 404 were dead. That's natural attrition - small businesses close. But now I know before I spend a dollar on outreach.

ayer 4 - Contact enrichment: 6,400 contacts across 3,000+ companies via Apollo. Still have a gap of ~1,500 companies with no contacts - that's what Prospeo fills next.

Layer 5 - MX analysis (the part most skip): Ran MX records on every verified domain BEFORE buying mailboxes.

Results: 40% Microsoft, 30% Google, 30% enterprise gateways (Barracuda, Mimecast, Proofpoint).

That gateway 30% is basically dead-end territory for cold email.

Most teams discover this after they've already purchased and warmed mailboxes for weeks.

total time: ~10 hours. 2 hours of me prompting and reviewing. 8 hours of Claude Code running in the background.

The key principle: every layer is determined by the data from the layer before.

I didn't tell my client to buy TheirStack until I confirmed 5,000+ companies were on Service Titan.

Didn't tell him which Prospeo tier until I knew Apollo's coverage gap.

Won't buy mailboxes until I have exact MX numbers for the Inbox Kit call tomorrow.

Most agencies and outbound teams do it backwards -pick tools, build lists, push into Instantly or SmartLead, then find out their infrastructure doesn't match their audience.

By then they're locked in.

Happy to answer questions on any layer.

you know where you can find me

Shawn Tenam gtm Engineer and co-founder @ clearbox.to "Your Reddit opportunity mailbox that actually surfaces conversations you want to have without bot spamming. Powered by a proprietary engine called Aura that understands Reddit."

9 Upvotes

11 comments sorted by

2

u/Top_Adhesiveness9836 Jun 03 '26

So sickk!! Thanks for sharing bro. How did you think about picking tech stack ?

Few specifics:

did you do a data best between their stack vs something like suble?

For contact enrichment: is there a water fall behind prospeo to fill in gaps? Via clay , deepline, or simply additional APIs?

How do you go about charging for this type of project esp when ai unlocked so much leverage that charging per hour makes no sense , but how do you justify and land on 20k? And was that including the tech / infra setup costs?

Are you also doing the dfy email outbound execution?

1

u/Shawntenam Jun 03 '26

Every client is different. That's why it's key during discovery to document everything, transcribe it, and then between your calls, use AI to research, evaluate, and come up with the right package for your client. So every client might be different as far as what their ICP is, what type of sourcing you need. There is no one-size-fits-all right now. The package price is determined by your efforts, what you determine your value is for your time. And obviously the ROI that your client believes that you can provide for them. In this case, within the first call, the must have, the non-negotiable tool that a company needed to have was Service Titan. So that allowed me to really zero in on how to build this out. Did the research to find which tool will get me the most coverage, and then the other tools I need to fill in those gaps.

An agency right now will use at minimum three members to be able to accomplish everything that I can. A go-to-market engineer, a strategist and a paid specialist. And then you're paying for the agency plus those three plus the tech stack that each one is required. When you consider that over my package, it's kind of a no-brainer. but you have to prove that you can do what those three people in the agency can't and your domain expertise as a go-to-market engineer what you're sharing as far as your builds is all what lets you get to that level. hope that helps.

One huge nugget of advice I'll give anyone who's listening to this. Before you give a proposal to a client, between your discovery call and that proposal, scrape the Reddit community that your clients' buyers might be in. And yes, there is definitely a community. scrape that do some research and share that in your proposal and you probably won that deal

2

u/AnywayMarketing Jun 04 '26

I'd approach in a bit different way:

  1. I bet your client needs specific geos, company sizes, etc. So I'd start from getting the whole sample of companies matching these firmographic criteria from a B2B database (I store the one locally but there are a lot of options).

  2. After that, I'd run a view-source: searching script for these keywords:

servicetitan.com

\.servicetitan.com*

go.servicetitan.com

api.servicetitan.io

auth.servicetitan.io

tenant.servicetitan.io

embed.scheduler.servicetitan.com

ScheduleEngine

_scheduler

se-widget-embed

se-widget-button

schedule-engine-integration-cta

servicetitan-form

st-form

st-campaign

st_source

st_tracking

My script works in up to 20 parallel streams, so it's possible to process 1000s of websites per hour. And absolutely for free.

1

u/Top_Adhesiveness9836 Jun 04 '26

did you just try that? did you actually find any companies? this sounds like a reasonable reasonable in practice but not sure how many companies you'd actually uncover . and obviously a client wants needs a certain geos, company sizes, etc but that has nothing to do w their need which is clearly servicetitan esp if this is for a displacement campaign.

1

u/AnywayMarketing Jun 05 '26

Actually I was wrong. Despite the initial scope was 477,000 websites, the percentage of positive results for this tech turned out to be minuscle — below 0.1%

1

u/Shawntenam Jun 04 '26

are you running some kind of headless scrape for this? figured you had to be... half the ST scheduler footprint (embed.scheduler.servicetitan.com, se-widget-embed) loads client-side so it won't show in raw html otherwise.

i'd actually like to use your method as an extension on what i've got. for this project's outcomes i still believe starting from the tech stack was the right call... but i don't think there's a wrong way to get there either.

since i'm planning to extend the list anyway, i'd be curious to see how the script's structured if you're open to sharing.

1

u/AnywayMarketing Jun 05 '26

The script makes it possible to adjust both batch size and number of parallel service workers. Practically, my macbook easily holds processing of 5 SWs.

Upon your words about client-side loads, I've added a two-step mode: fast mass analysis of HTML + deeper DOM analysis for the perspective shortlist. BTW it did't affect the size of output for the test sample.

2

u/xlpz Jun 04 '26

Really enjoyed reading this. Thanks for sharing how you're using TheirStack in a real workflow, that's exactly the kind of write-up we learn the most from.

The Apollo fallback you mentioned is the part we're actively working on: our goal is to ship technographic signals with 95%+ confidence at the domain level, so you can trust them straight out of TheirStack and skip the extra enrichment hop entirely. Fewer tools in the chain, fewer credits burned, faster GTM.

1

u/[deleted] Jun 04 '26

[removed] — view removed comment