Systems, the decisions behind them, and what broke.
Long-form notes on building automation that survives contact with reality. Written for people who build, not a recap of this week's AI headlines.
Dedup is a policy, not a feature
A CRM hygiene system that catches duplicate records before they're created, not after, and why 'merge duplicates' is the wrong problem to solve.
Answer only what you can cite
Building an internal knowledge chatbot on Google Drive and a vector store, and why the retrieval layer, not the model, is where this kind of system actually lives or dies.
Lead intake nobody has to watch
A two-stage kickoff-and-worker pattern for lead import, and why splitting 'accept the lead' from 'process the lead' is the difference between a system that scales and one that falls over during a spike.
The signal, checked, before the rep ever notices
How a buying-signal detection system decides what NOT to escalate, and the routing and verification logic that sits between a raw signal and a rep's inbox.
Sentence in, campaign out
A production system that turns a plain-English targeting description into a live, deduplicated outbound sequence, and the one architectural call that made it trustworthy.
The boring choice is usually the senior one
Why I keep choosing deterministic pipelines over agents, and how to tell which problem you actually have.
A classifier that fires on everything is just noise wearing a costume
Tuning a signal-detection system around what it chooses *not* to surface — and why precision beats recall in any tool a human has to trust.
Plain English In. Production Workflow Out.
A production setup that turns plain-language descriptions into live n8n workflows via the MCP server — and an honest accounting of where it breaks.
Why Every B2B Marketer Needs to Understand n8n
LLMs, MCPs, and AI agents: what each layer actually does, and how n8n ties them into workflows that replace costly human capital where it counts.