// gtm engineer · san francisco
Henry Marble.
I build the systems
behind GTM motions.
Former SDR turned GTM Engineer with 5 years at Cloudflare and Pave. I know where GTM systems break because I lived it: bad routing, cold Tier 1 inbounds, sequence data that never reaches revenue outcomes, scoring tools reps ignore because they can’t explain the number, handoffs that drop context. My build philosophy: lower every barrier between a rep and their next best action, and give managers the insight to coach on specifics rather than gut feel.
// beacon — gtm intelligence platform
Five modules, each targeting a distinct failure point in outbound sales operations. One shared data layer. One MCP server.
Closes the attribution gap Outreach explicitly admits exists: no step-level meeting attribution. Ingests sequence data from Outreach and Salesloft, maps it to Salesforce pipeline outcomes at the step level, diagnoses failure modes in underperforming steps, and generates persona-aware LLM rewrite recommendations. Includes "Ask Beacon" for natural language analytics with streaming responses and auto-generated charts.
What's built: Position-adjusted Bayesian attribution model with U-shaped multi-touch credit allocation · step intent classifier (6 types) with intent-specific thresholds · 5-module classifier pipeline with RewriteEngine deep module and LLMClient Protocol abstraction · 34KB messaging intelligence knowledge base · 6-tool FastMCP server (Railway, SSE) · Next.js dashboard with 7 views, 3 role personas (Manager, RevOps, Rep), streaming Ask Beacon, and interactive rewrite drawer · 9 Supabase migrations · test suite with boundary tests and canned LLM client
MCP server giving GTM reps instant access to product knowledge, objection handling, and competitive intel from any interface they already use. The server is the product; channels are wrappers.
What's built: FastMCP server with ask_product tool · PostHog knowledge base (objections, competitors, personas, pricing) · llm.py provider abstraction (Anthropic, OpenAI, Gemini) · ingest.py pipeline · Slack bot with gap logging to Notion · Railway / Docker deployment
Rep signal prioritization engine. Configurable weighted scoring across multi-source account signals with plain-English reasoning per score. Built for teams too small for 6sense but drowning in intent noise.
In development: Configurable weighted scoring model · signal ingestion adapters (intent, job change, product usage, CRM activity) · time decay functions · Claude API plain-English reasoning layer · prioritized account list UI
Account hierarchy normalization engine. Ingests hierarchy data from multiple sources, resolves conflicts, flags discrepancies, and produces a clean sellable account structure.
What's planned: Multi-source ingestion (SEC EDGAR, OpenCorporates, CRM) · probabilistic entity resolution via Splink · conflict detection and confidence scoring · clean hierarchy output with source attribution · Claude API disambiguation layer
AE/SDR pairing intelligence layer. Unified account-level touchpoint timeline across both reps, pre-inbound attribution surfacing, and pairing-level messaging performance.
What's planned: Unified touchpoint timeline (Outreach + Salesforce) · pre-inbound attribution detection with configurable lookback window · dead messaging flagging · shared account book view · pairing performance analysis via Loop data layer
// plays
End-to-end workflows built with real tools, real APIs, and real world scenarios.
The problem
Inbound fails because most systems are architected around the form-fill as the unit of scoring. Real buying intent is an account-level pattern unfolding across multiple people, properties, and weeks. The current stack can't synthesize it — so reps act on 4% of the iceberg.
What's built
Synthesis layer: Reads every observable interaction across every surface — Marketo, Salesforce, Warmly/RB2B, Bombora, G2. Rolls person-level activity up under account context, weights first-party above third-party, tracks velocity and buying committee composition.
Signal-weighted scoring model: Repeat-visit multipliers, velocity triggers, and committee composition bonuses. HOT status gated on first-party points. Every score has a "see sources" path — no black box.
Tier 1 SLA state machine: Modeled in Supabase with 60/120-minute escalation. Lead records stay in Salesforce; ephemeral Postgres handles timer state only.
Rep delivery surface: Slack Block Kit DM with 5 action buttons — Outreach, Sales Nav, Salesforce, Account Intel, Explain. Wired to the workflow that acts. Not a dashboard to open.
Pipeline
The problem
Clausewise (fictional Series B CLM/contract management platform) wants to expand from legal into financial services. No existing account list, no ICP definition for the vertical, no signal data to prioritize outreach. The GTM team needs a repeatable enrichment pipeline, not a one-off spreadsheet.
What's built
Find: Sourced financial services accounts matching Clausewise's ICP criteria using Clay's built-in company search, filtered by industry, headcount, and funding stage.
Enrich: Claygent columns checking each account's blog for recent product announcements and careers page for open compliance/legal roles. These act as buying signals: a company hiring a Head of Legal or posting about SOX compliance is more likely to need a CLM tool.
Transform: Tiered accounts into Tier 1 (strong fit + active signals), Tier 2 (fit, weaker signals), and Tier 3 (marginal fit) using conditional logic. AI-generated personalized email openers per account referencing specific signals found during enrichment.
Export: Formatted for CRM import with all enrichment columns, tier assignment, and personalized openers ready for sequence loading.
Pipeline
The problem
Job change signals are one of the strongest buying triggers in B2B, but most teams either miss them or dump them into a spreadsheet. When a VP of Security starts at a new company, you have a 2-week window before they settle in. The signal needs to hit the right rep, in the right CRM, with enough context to act on immediately.
What's built
Ingest: Webhook endpoint accepts job change payloads from any source. Event-driven architecture, not polling. Source-agnostic: works with LinkedIn Sales Nav exports, Apollo alerts, or custom scrapers.
Enrich: Apollo Organization Enrichment API adds employee count, industry, HQ location, and funding data to each signal. Turns a name + title into a scored, contextualized lead.
Score: Custom ICP scoring engine in a Code node. Title seniority (10-40pts), company size (10-25pts), industry fit (10-20pts), previous company signal (15pts). Deterministic, explainable, adjustable.
Route: Three-tier Switch node. Tier 1 (70+): creates lead in Salesforce + HubSpot, DMs the assigned rep directly in Slack with score breakdown and CRM link. Tier 2 (40-69): creates lead in Salesforce + HubSpot, assigns to an SDR via segment-based round robin. Tier 3 (<40): HubSpot only for nurture. Dual-CRM write shows CRM-agnostic thinking. Create-or-Update prevents duplicates.
Pipeline
Slack DM output
Tier 1 signals DM the assigned rep directly with the contact name, new title, company, ICP score breakdown, and a link to the Salesforce record. No channel noise. The rep who owns the account gets the signal where they already work.
// doom inc — mock b2b security saas org
Full GTM operations stack for a fictional Series B cybersecurity company. Same org, two CRMs — demonstrating cross-platform RevOps fluency.
Full Salesforce build simulating the RevOps infrastructure of a fictional Series B security SaaS. Custom data model, lead routing, SLA enforcement, and operational reporting — the kind of system a GTM Engineer would own on day one.
What's built: 7 custom Lead fields · 6-rule routing chain (segment + persona → rep or queue) · Tier 1 SLA breach Flow · post-conversion Apex trigger with test coverage · 4 operational reports · GTM Ops dashboard · scoped permission set
HubSpot mirror of the DOOM Inc GTM stack — same fictional Series B security SaaS, different CRM. Built to demonstrate cross-platform RevOps fluency: contact lifecycle management, deal pipeline configuration, and automated workflows without writing a line of Apex.
What's built: Custom contact properties (ICP Fit, GTM Segment, Persona, SLA Tier) · deal pipeline with stage-gated automation · enrollment workflows for SLA breach alerting and post-conversion follow-up · active lists for segment-based reporting · operational dashboard surfacing pipeline health by segment and rep
CRM / GTM
Code / Data
Automation
Dev Tools
I've spent 5+ years working inside GTM motions — Cloudflare BDR, Pave SDR. Sequences, CRM hygiene, pipeline data, tool sprawl. I know where the systems break because I've felt it firsthand: leads routed to the wrong rep, Tier 1 inbounds sitting cold for hours, no visibility into queue depth, conversion with zero handoff.
I'm building the technical skills to fix that. Currently working through Salesforce development, GTM systems design, and shipping my own app on the side.
UC Berkeley, Anthropology. UCLA Extension, Cybersecurity Boot Camp.