Fractional Demand
GTM Engineering14 min read

The GTM Engineering Playbook: 11 Plays Working Right Now

The GTM RevOps stack we use to turn signal into pipeline. 11 plays, the exact tools, and the workflow behind each one. Trade-show intelligence, signal-based outbound, CEO DMs in 90 seconds, and more.

FD

Fractional Demand Team

Why this exists

Everyone says “GTM engineering.” Almost nobody shows you the plays.

We get asked what GTM engineering actually means often enough that we wrote it down. Not the theory. The exact plays we run for ourselves and our clients, the tools behind each one, and the workflow that turns a buying signal into pipeline.

Eleven of them. All working right now. Steal whichever ones fit your stack.

Full-stack RevOps

How we think about GTM RevOps.

Less about clicking buttons inside a CRM. More about orchestrating a stack that fits your business.

RevOps used to be about knowing where every button lived inside HubSpot. That still matters. But the bar moved. With AI, the value isn't navigating someone else's platform anymore. It's building custom dashboards that don't depend on what the CRM lets you build, consolidating disparate signals into something a rep can actually act on, and knowing when to buy a tool versus when to build one.

Full-stack RevOps: Infrastructure, Operations, and GTM Activation
Where RevOps is going
Orchestration beats button-pushing. The hard part isn't running Clay or HubSpot in isolation. It's deciding when to buy, when to build, and how to wire it all into the workflow your sales and marketing teams already live in. The slickest tool in the world doesn't matter if reps don't use it. We think like marketers first, so solutions get designed around the end result rather than the limits of whatever platform happens to be in the stack.
Play 01 · Trade Show Intelligence

Trade Show Intelligence Dashboard

Walk into a conference with every A-tier account pre-scored before the doors open.

Trade Show Intelligence Dashboard diagram
The problem

Trade shows are the densest ICP moment in the B2B calendar. Three thousand of your exact buyers in one building for three days. Most teams walk in with a printed exhibitor list, a sales deck, and the hope of bumping into the right person between sessions or at their booth.

You get a prospectus from the show, which helps, but it doesn't tell you who's actually going to be there. The prep every team knows they should do rarely happens, because it's manual, the list changes until the show opens, and nobody has hours to pull it all together.

The result

Your AEs walk the floor with a purpose-built plan, not a lanyard and a prayer. The booth still matters. The prep is what decides whether the booth converts.

The play
1
Scrape the conference site. Exhibitors, sponsors, panelists, speakers. Structured as JSON with company, name, role, session topic, and booth number.
2
Enrich the company and the contacts in Clay. Company level: domain to firmographics to tech stack via BuiltWith, plus funding, news, and job-change signals from the last 90 days. Contact level: title, tenure, LinkedIn, recent activity for every name you scraped.
3
Score against ICP. Run a scoring prompt from the Clay table using Claude, ChatGPT, or whatever LLM you prefer. Feed it your ICP and have it score each account on fit. Every account gets a 1 to 5 score with the reason attached.
4
Draft outreach for A-tier. For every account scoring 4 or 5, AI drafts a LinkedIn message your AEs can send, tailored to what the person talked about on a recent panel or something specific from their profile. Layer in invites to dinner, lunch, or whatever you are hosting.
5
Ship to the team in Slack. Each AE wakes up Monday of the show to a Slack thread with their personalized list. Booth numbers, names, session times, pre-drafted DMs ready to send.
The stack
FireCrawlClayClaude CodeSlackHubSpot
Steal this for any event
Works for customer summits, partner events, even conferences you are not attending. If your ICP is going to be in one building, you can scrape the event site for speakers, panelists, sponsors, anyone mentioned as attending, score the list, and arm your team before anyone sets foot inside. The pipeline looks identical. Just point it at whatever event page you have got.
Play 02 · Dynamic Expansion Email

Dynamic Add-On Engine to Expansion Email

Turn your add-on catalog and account usage into personalized expansion revenue.

Dynamic Add-On Engine to Expansion Email diagram
The problem

Most expansion emails are generic because the data required to personalize them lives in five different places and nobody has wired it together. A SaaS customer is on a $4K-per-month plan with four of your twelve add-ons activated. The "consider upgrading" email goes to every account in that plan tier with the same copy.

It drives almost nothing, because it asks the customer to do all the work of figuring out which add-ons are relevant. The ones they would actually activate are sitting in your product catalog and their usage data.

The result

The generic email was a nothing-burger. The dynamic version turns your add-on catalog into a merchandised, personalized expansion offer per account. Built once, runs forever, re-renders per customer on every send.

The play
1
Pull your add-on catalog. Pull from your product API if you have one. If not, scrape your own pricing and add-ons pages and structure as JSON: name, description, prerequisite plan, dependencies, price.
2
Apply eligibility logic with AI. Not every add-on is eligible for every account. Feed the catalog plus the account plan tier and current activations into Claude or your LLM of choice. Each row gets an eligible true/false flag plus a reason (prerequisite missing, already activated, plan-tier mismatch).
3
Match to account history and look-alikes. Look at what the account has already activated, plus what similar customers in their segment activate next. AI ranks the eligible add-ons by likelihood-to-activate.
4
Generate the HTML block. Top 3 to 5 matched add-ons render into a responsive HTML card grid. Name, one-line value prop, price, one-tap activate CTA.
5
Drop into HubSpot. The HTML block lives as a custom module. When the email fires, HubSpot pulls the block rendered for that specific account. Plan-aware. Eligibility-filtered. Personalized per customer, every send.
The stack
FireCrawlClayClaude / GPTHubSpotCustom HTML Module
Our use case: Clicklease
The example above is real. We built it for Clicklease, an equipment leasing platform: a customer approved for $25K, used $10K, gets a dynamic block of complementary equipment priced inside their remaining credit window. Same pattern works wherever you have a catalog plus account data: SaaS add-ons, marketplaces, field service parts.
Play 03 · Inbound to CEO DM

Inbound Form to CEO LinkedIn DM + Auto Competitor Intel

The 90-second response that makes every other follow-up look asleep.

Inbound Form to CEO LinkedIn DM + Auto Competitor Intel diagram
The problem

Demo-request forms are the warmest moment in your funnel. The average B2B company takes 42 hours to respond to one. Best-in-class teams hit 5 minutes. By 42 hours, your prospect has already booked three other calls.

The fix isn't picking a faster follow-up. It's running more than one at the same time: a real email and an automated LinkedIn DM that goes out within 90 seconds. The kicker: the DM lands from the CEO's profile, not a shared inbox or an SDR.

The result

The CEO looks personally attentive without actually being personally attentive. Response time collapses from hours to seconds. The message opens a real conversation, not a demo calendar link, on a channel the prospect actually checks.

The play
1
Form submission fires the webhook. HubSpot form to Clay webhook to a record created with email, company, title.
2
Clay enriches the record. LinkedIn URL lookup, firmographics, tech stack via BuiltWith, recent news, funding signals. By the end of this step you know everything publicly available about the prospect and their company.
3
AI identifies their top 3 competitors. Feed Claude the company website, product description, segment, and stage, then ask: who are the three most likely competitive alternatives this buyer is evaluating, and the sharpest reason per? Returns three named competitors with one-line reasoning. Runs in seconds.
4
AI drafts the DM. Prompt includes the prospect name, role, enriched context, the three competitors, and a tone-and-voice sample from the sender so the DM sounds like them. The opener signals genuine attention, so it lands warm, not boilerplate.
5
HeyReach auto-sends within 90 seconds. Message goes out from the CEO profile when they are game. If not, the AE, VP, or BDR sender works the same way. Replies flow back with the full enriched context attached.
The stack
HubSpotClayHeyReachClaude / GPTLinkedIn
If the CEO won't sign up
The CEO sender is the kicker, not the play. Plenty of founders aren't comfortable handing over their LinkedIn, and that's fine. The DM can land from an AE, a VP of Sales, or a BDR. Anyone with a credible profile works. You lose some of the surprise factor. You keep the speed, the multi-channel coverage, and the personalized reasoning. That's most of the lift.
Play 04 · Ad Engagement to Outbound

LinkedIn Ad Engagement to Clay to Outbound

The ad does the warming. The signal fires. The BDR calls. That is the whole play.

The problem

LinkedIn ads generate impressions, clicks, comments, reactions. LinkedIn gives you none of it at a person level. Your CEO's thought leader ad might reach the exact 400 VPs of Legal Ops you're targeting and all you'll see in Campaign Manager are engagement metrics.

The signal is there. The tool layer that captures it and routes it to a human is what's missing.

The result

Ad spend finally connects to results. Every dollar you drive into engagement now produces a routed, scored signal to a human who can act, and pipeline you can attribute back to the campaign that sourced it.

The play
1
Connect Fibbler to LinkedIn and your CRM. Fibbler pulls engagement data from the LinkedIn API and matches it to your CRM accounts by domain. No tagging, no scripts on landing pages. Every account engaging with your campaigns gets logged automatically.
2
Push engagement to Clay via Fibbler Signals. Fibbler has a native Clay integration via webhook. Set up a Signal: pick the campaigns, the engagement types you care about, and the lookback window. You get account names at this stage, not contacts yet.
3
Score and enrich in Clay. Not every engaging account is equal. Score each account on fit (ICP, segment, tech stack), then enrich the contacts you actually want to reach. Score the contact too if it sharpens the tier.
4
Route by tier. Tier 1 fires a Slack alert and an open task in HubSpot for the BDR. Tier 2 gets a personalized DM sent from the AE profile via HeyReach. Tier 3 goes into nurture.
5
Close the loop in your CRM. Fibbler pushes engagement data into HubSpot so you can build native reports on influenced pipeline and influenced revenue. You can finally answer "did ad spend produce pipeline?" with a number, not a vibe.
The stack
LinkedIn AdsFibblerClayHeyReachHubSpotSlack
Pro tip
LinkedIn's native retargeting needs 300+ engagers before it will serve. Run your thought leader ad spend until your engagement pool clears that floor before you expect the retargeting audience to be usable. The compounding doesn't start on day one. It starts when the pool is deep enough for the algorithm to work with.
Play 05 · Signal-Based Outbound

Signal-Based Outbound

Listen to what your target accounts are talking about on LinkedIn. Score it. Reach out when it matters.

Signal-Based Outbound diagram
The problem

LinkedIn is loud. Your buyers are posting, commenting, sharing, and reacting all day. Some of it is about your category. Most of it isn't. Buried in that noise are the conversations that actually matter: a target account talking about a problem you solve, a competitor they're frustrated with, a project they just kicked off.

Almost nobody surfaces those signals, sorts them, and does anything with the list. The signal is sitting in plain sight.

The result

Your AEs and SDRs know what their target accounts are talking about on LinkedIn before they pick up the phone. Instead of cold outreach with a generic value prop, you reach out with context, referencing the exact post or topic the prospect surfaced last week. The first line of the email is the prospect's own words.

The play
1
Define your target list. Decide which accounts you want to listen to (your top 500 ICP accounts, say) and which personas at those accounts. The list of contacts is the input to everything else.
2
Monitor their LinkedIn activity nightly. A scraper pulls every recent post from every contact on the list once a day. You are not watching engagement on your own posts. You are watching what your buyers are saying.
3
Filter for relevance. Run keyword and regex filters first to gate out the 70 to 80 percent of posts that aren’t about your category. What’s left goes to an LLM for the actual scoring: 1 to 10 on relevance, plus a one-line summary and a suggested outreach angle.
4
Score and route. Posts scoring 6 or higher push downstream into Clay, your CRM, and Slack with the full context attached. Below the threshold, the post stays in the database but does not fire an alert.
5
The SDR opens with the prospect's own words. "Saw your post last week about the deploy pipeline issues your team has been hitting. Curious what tipped it." Beats any cold opener you can write.
The stack
LurkrClaySlackOutreach / Salesloft
The tool behind this play
We built a proprietary tool we call Lurkr to run this play for ourselves and our clients. You give it a list of target accounts and the personas you want to listen for. Lurkr monitors what those people post on LinkedIn, scores each post for relevance, and routes the high-fit ones to your team. There are off-the-shelf options out there (Trigify is a good one), but we built our own because it is easier to customize the keyword filters, scoring logic, and routing rules to each client's exact ICP.
Play 06 · Anonymous Visitor

Anonymous Visitor to Account Alerting

Someone at an ICP account just hit your pricing page. Your team should know within 30 seconds.

Anonymous Visitor to Account Alerting diagram
The problem

A huge chunk of your website traffic is your ICP. They visit pricing, they compare integrations, they download a case study, they leave. No form fill, no chat, nothing. Your sales team has no idea they were ever there.

You're buying traffic, converting a fraction of it on forms, and letting the rest evaporate anonymously.

The result

Your site stops being a black box. Every anonymous ICP visit turns into a routed, scored, context-rich task on a real human's desk.

The play
1
Install an anonymization tool. RB2B is solid for US-based person-level ID. Vector and Warmly cover broader patterns including company-level matching for international and smaller firms. Pick one based on your traffic profile, or layer two for fuller coverage.
2
Layer in company-level coverage if you need it. Combining person-level and company-level identification gets you 70 to 80 percent of B2B traffic identified. One caveat: international identification carries compliance considerations under GDPR, UK GDPR, and similar laws. Run it past your legal team before you deploy.
3
Pipe the webhook into Clay. Every identified visit creates a Clay row. Clay enriches with firmographics, tech stack, intent data, recent job-change signals, plus any data points relevant to your offering.
4
Score by page + fit. A pricing-page visit from a VP Marketing at an ICP-fit company is a 5. A blog visit from an intern at a non-ICP company is a 0. One Clay rule with weighted inputs. No fancy ML.
5
Alert and log. Score 4 or 5 fires a Slack alert to the territory BDR. Score 2 or 3 goes into a slow drip. Every identified visit also gets logged to the contact record in your CRM, so the visit history is there next time someone opens the account.
The stack
RB2BClayHubSpotSlack
The pattern matters more than the tools
The pattern is: identify, enrich, score, route. Plenty of tools can run each stage. Identify: RB2B, Vector, Warmly, or any anonymization tool. Enrich: Clay or your favorite enrichment stack. The sequence is the play. The tools are the implementation. Start with whatever your current stack already pays for and layer in from there.
Play 07 · Job-Change + Funding Signals

Job-Change + Funding Signals to Warm Outreach

Your best champion just took a senior role at a new company. Reach out before they pick the next vendor.

Job-Change + Funding Signals to Warm Outreach diagram
The problem

Your customer list is the warmest network you have. When a champion leaves Company A and takes a senior role at Company B, there's a tight window where they're picking vendors and rebuilding their stack. Newly hired execs spend most of their budget in the first 100 days. Champions who already used your product are 3 to 5x more likely to convert versus cold outreach.

Most teams find out six months later when the new person books a demo. By then they've signed with someone else. The trigger is public. The outreach just has to fire automatically.

The result

Your pipeline fills itself from the customer base you already built. Net-new logo acquisition starts with a familiar name in the inbox.

The play
1
Build the champion list. Export every champion, admin, power user, and decision influencer from the CRM. Load into Clay as a monitored list with ownership attached.
2
Monitor for job changes. Tools like Clay or UserGems watch the list automatically. When a champion employer changes, a webhook fires with the new company and role.
3
Monitor funding and expansion in parallel. Crunchbase and other resources via Clay surface new funding rounds at any ICP-fit company. New funding means new hiring and a limited budget window before the next stack gets locked in.
4
Combine and sequence. Both signals flow into the same Clay table with the trigger date. A 3-touch sequence auto-fires: Day 1 congrats DM. Day 4 case study email. Day 10 meeting request referencing the new role.
5
Alert the original AE. The AE who worked with the champion at their previous company gets a Slack ping too. They are the warmest reach-in. A familiar name in the inbox beats cold outreach 10 times out of 10.
The stack
ClayUserGemsCrunchbaseHubSpotSlack
Pipeline lives in CS
Your CS team is sitting on one of your best pipeline sources. They just haven't been told it's pipeline. The "customer reference" and the "new-logo champion" are the same person. If the signal doesn't get captured and the outreach doesn't fire automatically, the window closes quietly and nobody knows it was there.
Play 08 · Competitor Displacement

Competitor Displacement via Tech Stack Data

Find every company running your competitor. Rank them. Displace them systematically.

Competitor Displacement via Tech Stack Data diagram
The problem

Your biggest competitors already did the expensive part. They sold your buyer on the category. Those accounts know the problem, know the tool exists, know how to use it. They picked the wrong product, or the right product at the wrong price.

Your displacement list is sitting in a data source you can query this week.

The result

Competitor displacement stops being a one-off side project and becomes a systematic program with a renewal-aware timeline.

The play
1
Pull the competitor customer list. BuiltWith and Apollo both expose tech stack data. Filter to every company running your top 3 competitors. Start narrow.
2
Enrich and fit-score in Clay. Firmographics, ARR, headcount, industry against your ICP. Drop anyone who is not a fit. What is left is your displacement universe.
3
Estimate the renewal window. When did the competitor tool first appear in the stack? Most B2B SaaS is on 12 or 24-month terms. A Clay AI prompt estimates the likely window. Accounts inside 90 days go to the top.
4
Draft the displacement message. Not "we’re better." Instead: the specific limitation of the tool they are on, plus a customer who switched and what they saw. Clay pulls your case study library and matches by industry and company size.
5
Route by tier and territory. A-tier (fit + renewal within 90 days) gets personalized high-touch outreach. A note from the founder, the CRO, someone in the C-suite. B-tier goes into a BDR sequence. Every account has a renewal countdown on the opportunity record.
The stack
BuiltWithApolloClayClaudeHubSpotOutreach
Don't message the whole list
The temptation is to blast every competitor customer in your ICP. The math doesn't math. You want a steady monthly cohort of 40 to 80 accounts hitting the sequence so your BDR can actually personalize each touch. Quality beats volume on displacement every single time. This is the opposite of spray and pray.
Play 09 · Pre-Meeting Briefs

Automated Pre-Meeting Research Briefs

Every AE walks into every call with a 90-second brief that used to take an hour to write.

The problem

AEs are supposed to show up prepared. Most don't, because the research is manual and their calendars are full. The best AEs spend 20 to 40 minutes prepping for every first meeting. The worst spend zero.

The delta shows up in every call: which competitors got mentioned, which pain points got surfaced, which follow-ups actually landed. Prep quality is the hidden variable most teams never measure.

The result

Every first call starts with the AE knowing what the prospect cares about, what's on their stack, and which questions open real conversation. The floor rises for the whole team, not just your best reps.

The play
1
Pull the meeting list from the calendar. A Clay webhook watches the AE team calendars for external prospect meetings. 60 minutes before the call, brief generation fires.
2
Enrich the company and attendees. Clay grabs firmographics, recent news, funding, tech stack, hiring signals. Each attendee LinkedIn, last 3 jobs, recent posts, mutual connections.
3
Summarize with AI. Claude runs a structured prompt built off your own template, tuned to your industry. Output is fixed: 3-sentence company summary, top 3 likely pain points, stack relevance, one-sentence attendee bios, 5 open-ended questions. No freeform essays.
4
Deliver to Slack 30 minutes before. Each AE gets a DM. Brief is around 250 words, readable in 90 seconds, with a one-click link back to the deal record in HubSpot for anyone who wants the full context.
5
Log to the deal record in HubSpot. The same brief attaches to the account and opportunity so it is referenceable later, not lost in a Slack thread. Managers can audit prep consistency. The next rep in the deal gets the context without asking.
The stack
Google Calendar / OutlookClayClaudeSlackHubSpot / Salesforce
Steal this for any meeting type
Works for expansion meetings, QBRs, and CS check-ins too. Calendar trigger, enrichment, AI summary, Slack brief. The prompt changes by meeting type. Expansion prep pulls usage data. QBR prep pulls ticket volume and adoption scores. Same pipeline, swapped inputs.
Play 10 · Always-On Email Engine

Always-On Email Engine

Built once. Always generating revenue.

Always-On Email Engine diagram
The problem

Most lifecycle and nurture programs are set-and-forget. Every customer in a tier gets the same generic email. Every new signup drops into the same onboarding sequence. The work of figuring out which customer types you actually have and what each one needs to hear right now never happens, so the automation runs but nothing resonates.

The engineered version segments the audience, maps the message, and lets it run.

The result

For one fintech client, the engine is generating $1.2M per month in originations. Marketing automation done well. Customers are segmented by type, messaging is mapped to where they are in the lifecycle, and new customers get the right message at the right time.

The play
1
Map your customer types. Not just plan tier or company size. Real behavioral segments: who they are, where they are in the lifecycle, what they have activated, what they have not, what they are likely to need next.
2
Map messaging to each segment. What does this customer need to hear right now? Onboarding nudge, expansion offer, cross-sell, win-back, re-engagement. One message map per segment, written for that customer actual moment.
3
Build the lifecycle automation in HubSpot. Triggers fire on lifecycle events: signup, activation, usage threshold, dormancy, account anniversary. Each event drops the customer into the right message track for their segment.
4
Layer in account context from Clay. Firmographics, tech stack, funding, hiring signals enrich the segment so the message lands with real context, not generic copy.
5
Monitor and refine, don't rebuild. Watch what is resonating per segment. Refresh messaging, add new segments as the customer base evolves. The system produces without quarterly tear-downs.
The stack
HubSpotClayOutreach
Pro tip
The segments and the message map are the moat, not the copy. Most teams obsess over subject lines and skip the work of figuring out which customer types they have and what each one needs to hear. Get the map right and the automation runs itself. The clever copy can come later.
Play 11 · CRM Hygiene + Signal Scoring

CRM Data Hygiene + Custom-Event Signal Scoring

The play that decides whether the other ten actually work.

CRM Data Hygiene + Custom-Event Signal Scoring diagram
The problem

Every play in this book falls apart on dirty data. Signal-based outbound fires on bad contacts. Dynamic emails render against junk. Pre-meeting briefs surface the wrong attendee's LinkedIn. Most teams know this and still treat hygiene as a once-a-year cleanup project.

The math doesn't math. Hygiene has to run daily or the whole engine degrades.

The result

The other 10 plays fire on clean data. Signal scoring becomes trustworthy instead of noisy. Routing moves from "title matches ICP" to "behavior plus fit match ICP."

The play
1
Define hygiene rules as data, not vibes. Every object in HubSpot gets a health score: required fields present, email validity, LinkedIn URL valid, last-enriched date under 90 days, owner assigned. Visible on the record.
2
Auto-fix what is auto-fixable. Clay watches every new and modified record. Missing LinkedIn URL: auto-append. Stale title: re-enrich. Invalid email: flag and validate via NeverBounce or Bouncer. Runs continuously, not in batches.
3
Score custom events, not just fields. Pricing visit, demo request, trial signup, feature usage, third-party intent. Each event has a weight. Accounts get a rolling signal score that decays over time.
4
Route by signal pattern, not title alone. A VP Marketing at a 500-person company who just visited pricing twice and engaged with a founder post: one action. Same title plus a 6-month-old ebook download: different action.
5
Operate the system weekly. One RevOps owner. 30 minutes a week to review signal scores, event fire rates, and enrichment queue health. Anything red becomes a Monday morning ticket.
The stack
HubSpotClayNeverBounce / BouncerCustom Workflows
The uncomfortable truth
This is the least exciting play in the book and the one that decides whether the other ten work. The teams that build the flashy plays without the hygiene foundation spend year two tearing everything out and rebuilding. Do this first. The rest compounds.
If you only remember three things
  1. 1.The signal is almost always already there. The work is capturing it, scoring it, and routing it to a human before the window closes.
  2. 2.Clean data is the whole game. Build Play 11 first. Every flashy play above it degrades the moment your CRM goes stale.
  3. 3.The tools are interchangeable. The sequence is the play. Start with whatever your stack already pays for and layer in from there.

Want the playbook PDF? Or want us to run these with you?

The full playbook PDF has all 11 plays, diagrams, and stacks in one place. Or book a call and we'll map which plays would move the needle against your current GTM setup.