← BackMore about me
What I'm building, what I think, and what's going on in my head while I do it. I update this when something changes, which lately is most weeks.
What I'm working on
Signal-based GTM is the thread everything else hangs off, and it is the most fun I have had building anything. Instead of guessing who to contact, you watch for movement and show up while it still matters.
- MCP servers wrapping internal APIs, so agents can read and write the warehouse, the CRM and the dialer through one interface. The first time an agent filed a real CRM update on its own, it felt like cheating.
- Agents that watch for a trigger, enrich it, score it, and draft the first touch. The send button stays with a human, and that is the part that keeps the output trustworthy.
- A personal brain: everything I learn, read and decide lands in this vault, wired to Claude Code and opencode, so context compounds instead of leaking. It has changed how I think.
- Deterministic engines where accuracy matters. allie-events-engine is the one I shipped as proof: Python, six Claude Code skills, seventeen passing tests.
How I think about a system
Every GTM system I have built has the same shape: source, enrich, reason, act. The idea is simple, but the reasoning layer is the part that is new, and it is why these systems are worth building now.
- Source: a data provider, the CRM, inbound, or product usage. Something has to tell you who to look at.
- Enrich and orchestrate: fill the gaps, then structure the data so it is usable downstream.
- Reason: a model reads the aggregate and makes inferences you could never write as a formula. This is my favourite layer to build.
- Act: a Slack message, a sequence, a CRM update. Delivered where the rep already works.
- Adoption is the real failure mode. A system nobody uses is worse than no system, so the output has to be spoon-fed, not discovered.
- Build for the model six months from now. If a system is not flexible, it is already on the clock.
Scoring, signals and noise
Two scores, not one. Fit and timing are different facts, and they get acted on differently. Splitting them apart changed how I build scoring.
- Firmographic score: the things that barely move - industry, headcount, location. Used for tiering.
- Signal score: the things that change fast - a hire, a funding round, a pricing-page visit, a new tool in the stack. Used for triggering.
- Weight by funnel position. A pricing-page visit is not equivalent to a funding announcement, and a job listing that names your category beats one that merely implies it.
- Job listings are underrated. The text leaks the roadmap: which tools, which regions, which initiatives. I could read them all day.
- Champion tracking is the pipeline I trust most: people who already liked you, landing somewhere new.
- Custom signals carry the alpha. If everyone in your market uses the same signal, nobody gets a reply.
- Noise kills signal programs. Ten unweighted alerts a day and the rep stops opening the channel.
Where AI GTM actually is
Most of what is sold as AI GTM is volume with better grammar. The genuinely new parts are narrower than the pitch, and they are the parts I care about.
- AI SDRs solved drafting, not trust. Tools like Artisan, 11x and AiSDR are great at a competent first touch and dangerous when nobody reads it. The failure mode is rarely the model. It is domain reputation and personalization no recipient asked for.
- Signals beat lists. Everyone has the same firmographic data, so the edge left is timing: who moved today. Athra, Common Room, UserGems and Fibbler are all chasing that, and it is the same thesis I build against.
- Deliverability is the real ceiling. Google and Yahoo bulk-sender rules, DMARC alignment, per-mailbox send ceilings. You cannot out-prompt a burnt domain, so infrastructure comes before copy.
- Answer engines are a GTM channel now. Buyers ask ChatGPT and Perplexity before they ask a vendor, which is why Profound, Peec AI and Otterly exist. Being cited is the new being shortlisted, and it is a fun problem to work on.
- MCP is becoming the integration layer. One server an agent can read and write beats twelve tools with twelve APIs, and it is the reason this job turned into a builder's job.
- Deterministic where it matters. LLM for judgment, code for arithmetic: scores, clocks, costs. A verifier agent checks the output before a human ever sees it.
How I would run it
Same shape every time, whether the company sells to plants or to security teams. Once you see the pattern, you cannot unsee it.
- One warehouse as the source of truth. If a number lives in two places, one of them is wrong.
- Every agent run writes an audit row: input, output, model, cost, verdict, human decision. If I cannot explain why a lead got sequenced, I do not trust the lead.
- Nothing client-facing auto-sends. Automation buys volume; judgment is the last mile.
- Instrument around show-ups and pipeline per unit of cost, not sends and opens.
- Every workflow ships with a runbook, so it survives the person who built it.
How I run the numbers
This is the analytics a much bigger revenue org runs on its floor, pointed at fifteen SDRs and every call they made, because 'the campaign feels slow' is not a diagnosis.
- Instrument everything, define everything: dials, connects, conversations, meetings booked, shows, held. One definition per stage, written down with an owner, otherwise two people quote two numbers and trust neither.
- Analyze per rep and per list, week over week. Who is improving, which list carries pipeline, which talk track holds a conversation: the same cuts an enterprise RevOps team makes, at a scale where I can act on them the same day.
- Own the numbers that matter: show-up rate and demos booked. Reminder cadences and pre-call context move shows; list and script iteration move bookings. Demos booked is the output that compounds; activity is not.
- One dashboard over the CRM, the dialer and the campaigns, so leadership and the floor read the same numbers. No hero metrics, no orphaned spreadsheets.
- One variable per change, the list held constant, weeks compared as cohorts, the result written down. Decisions start from facts instead of the loudest claim in the room.
What I think
A few things I keep coming back to. They are how I decide what to build and what to ignore.
- Builder, not doer. The integration layer should be code, and the human should be judgment.
- Speed is the moat. Compress first touch to payment, and instrument around the number that moves: show-ups, not demos booked.
- Honest evidence. No fake personalization, no invented numbers. Deterministic output a human approves.
- Concentrate on the channel that works. Assumptions need data behind them, and do not reinvent a wheel that is already turning.
- Systematize self-improvement. Plan first, capture the lesson after every correction, and review the whole thing once a year.
What lives in Clay, what lives in code
200+ hours inside Clay, and I can rebuild most of it in-house. The more useful question is not whether I can, but what should live where. Data integrity decides.
- Inside Clay: anything that writes CRM data. Enrichment, scoring, waterfalls, list operations. It stays in the platform so one system keeps the record authoritative and nothing forks.
- In code: everything custom. Agents, logic, small internal tools, versioned and testable in Claude Code and Railway, calling Clay's API where it helps.
- The line is the CRM. A workflow that writes to the record of truth lives where the record lives; one that only reads and drafts can live in code.
- Two versions of the same customer is the fastest way to lose a team's trust, so the split is a rule, not a preference.
What I work with
The stack changes as the job changes, but this is what is open on my machine.
- Agents and code: Claude Code, opencode, Codex, Cursor, Grok CLI, Ollama, whisper.cpp, Playwright.
- GTM: Clay, Apollo, LinkedIn Sales Navigator, Apify, HubSpot, Smartlead, HeyReach, Instantly.
- Data and build: Python, Next.js, PostgreSQL and Supabase, Prisma, n8n when a job has to run with the laptop closed, Railway for the things I ship.
Off the clock
Guitar, slowly working through JustinGuitar's Grade 1, plus martial arts and a light biohacking habit: nootropics, 40Hz focus experiments, whatever rabbit hole is open that week. I read Paul Graham, Kevin Kelly and Steph Ango, and more science fiction than is probably good for me. Games on rotation: Cyberpunk 2077, Zelda BOTW, Persona 5, and Catan with anyone who will sit still. Once a year I sit down with the same forty questions to decide what changes next, with a longer set every decade: the same system instinct, pointed at my own life.