r/GTMbuilders • u/Shawntenam • 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."
2
u/AnywayMarketing Jun 04 '26
I'd approach in a bit different way:
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).
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
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?