HubSpot-first, no RevOps
“I've hired for GTM, but there's no system”
Outbound has filled HubSpot with records that are not people. Nobody trusts the contact count, the ICP lives on a slide, and each rep applies it differently.
A GTM engineer builds your audience layer: a CRM where a contact is a person and a company is an account, your ICP and personas as rules that grade every record the same way, prospecting and enrichment data spent where it matters, and the signals, from your own data, web research and social listening, that say an account is worth working this quarter, with the source attached.
HubSpot-first, no RevOps
Outbound has filled HubSpot with records that are not people. Nobody trusts the contact count, the ICP lives on a slide, and each rep applies it differently.
Ecosystem sellers and agencies
The fact you need is not for sale: which agency is likely working that event, which brand is likely re-platforming. By the time anyone announces it, the window to act has closed.
Every contact and company is classed by where it came from, duplicates and orphans go into review lists your team clears in the CRM, email health is flagged, and merges and deletes run from rules your team set.
Your ICP is derived from the deals you won and lost and written as rules that grade every company into a tier and every contact into a persona, checked against your team's own labels before they go live.
Enrichment falls back across the data providers you have connected, on your own keys, behind spend rules that buy data only where your ICP says it matters, up to the cap you set.
Account research is a set of typed questions, each answered with a confidence and at least one source, written to the record as a dated signal that expires.
A signal no vendor sells becomes a likelihood question, scored from evidence that starts with the prior year so there is lead time to act: we say likely, and we show the evidence.
A daily queue of public conversations about the problem you solve is triaged by problem and intent, with a reply drafted in the voice of a named person on your team, who posts it.
The ICP rules, the hygiene settings, the research question set and the listening taxonomy are files in your repo, each with a version. A change is a pull request, and the history shows who changed what.
Record class, tier, persona, email health and signals sit on the record, each with what was decided, why, the evidence and when. The review lists your team clears are CRM lists.
Involved only for a hard-to-get signal. The question, the scored list and your labels are yours, and are kept in your accounts.
What you receive at exit
Fixed-weight combiner and your labelsA fixed-weight combiner you run yourself, plus your truth labels. What stays behind is the calibration learned across clients.
Involved only if you have no warehouse of your own and want reports and history kept in one.
What you receive at exit
pg_dump and CSVsA full export, or the warehouse re-pointed at your own database and backfilled.
A written scope, a typical timeline, and a deliverable you can inspect on day one. Timelines are typical, not guaranteed. The proposal sets the one for your stack. Every engagement starts with the Stack Audit: 1 week, and its readout proposes the next piece for your stack, priced in the proposal.
Typical timeline: 2–3 weeks
For the team that can't trust the CRM: junk, warmup artifacts, duplicates, orphans, stale emails; no reliable ICP.
Typical timeline: 2 weeks
For the team that buys data but still can't tell which accounts to work this quarter.
Typical timeline: 3–4 weeks
For the team that needs a signal no vendor sells ("likely to be at that event", "likely re-platforming") with enough lead time to act.
Typical timeline: 2 weeks
For the team that knows buyers talk about the problem in public but has no safe way to join.
Used in GTM systems we've built for B2B SaaS clients running in production every day.
HubSpot dedupes on exact email, and it cannot tell a warmup mailbox from a prospect. The duplicates you can see in its own tool are the smallest part of the cleanup. The larger part is classing every record by where it came from, which is what the Hygiene module does first, so that a warmup artifact is never merged into a real person.
Most ICPs live on a slide, and each rep applies them a little differently. Written as rules, yours grades the backlog and every new contact the same way, puts the reason on each record, and can be checked against your reps' own judgment. The grading is deterministic code, so it is the same every time and you can audit it. Reasoning is used where it helps: deriving the definition from your deals, and reviewing where the rules and your reps disagree.
It does: on every record, with no reason and no cap. That is how credits get spent on records nobody is going to work. The gate spends only on the records your ICP says matter, writes down why it refused the rest, and reports spend by reason, so you can see what the cap bought.
So did we. An open prompt per row is expensive, hard to check, and wrong without telling you. Here research is a closed set of questions. Each has a typed answer, a source and a cap on what one answer may cost, and a question goes live only after it has been checked against records your team answered by hand. Reading the pages and answering is the reasoning half; the question set, the cost cap, the expiry and the write to the record are code. Unknown is an allowed answer.
Every engagement starts with the Stack Audit: 1 week. Its readout says which piece to build first for your stack and prices it as a fixed fee.
Vendor spend stays yours: reported, never marked up.