Guy Stevens// AI Automation Engineer · Agentic Systems Builder

Most AI agents are demos.
Mine run in production, with an SLA.

I'm the solo architect and engineer behind Dually: a multi-agent appointment-booking platform for a regulated industry. LLM conversational agents, n8n orchestration, multi-tenant CRM, compliance guardrails written in code, not prompts. Sold to paying clients and backed by a guaranteed-appointment SLA.

ai_ops · monthly usage telemetry
2,100,000,000
TOKENS / MO · ≈70M A DAY
10,379
RETURNS / MO · ≈346 A DAY
[funding] self-funded · my own money on my own conviction
[loop] the system learns as I go · every session feeds the next
[uptime] keep building · keep learning · don't stop until it's done
REAL MONTHLY USAGE · MY OWN SYSTEM · MY OWN MONEY
$5M+
agency revenue overseen
$100K+/mo
ad spend managed
teams of 6
built & led
1 platform
designed, built & run solo
01Origin

I was a licensed life insurance agent. I paid a lead vendor $11,000 and got almost nothing back. They had no skin in the game.

So I built my own pipeline.
Ads. Funnel. CRM. Automated follow-up.
My production went from $10K to $48K a month in annual premium.

Same me. Same carriers. Same work ethic. Different system.

Then I looked around and realized every independent agent in the industry was stuck in the same broken loop: buy leads, chase them, get ghosted, repeat. So I productized the fix. That product is Dually, and this page is a tour of what's under its hood.

the pattern, eight years running
finda business bleeding leads & appointments
buildthe machine that fixes it
scalewith a team, or with agents
repeatnew industry, better tools, every time
currentlyagents instead of headcount
02The system

One lead's journey, end to end. No humans until the sales call.

Cold Meta ad to booked calendar slot, fully automated. Every node below is live and running. Scroll on for the deep dives.

dually · production architecture
CAPTURE DATA CONVERSATION META ADS client-funded · lead forms NEXT.JS FUNNEL Vercel · live in prod n8n ORCHESTRATION 11 workflows · deployed by one command ATTIO CRM multi-tenant · schema-as-code per-client isolation CLIENT SHEET mirror · WON / LOST sync COMPLIANCE RAIL · ENFORCED IN CODE, NOT PROMPT RAIL·IN opt-out intercept LLM AGENT gpt-4o-mini versioned playbook RAIL·OUT claims filter iMESSAGE 2-way qualify quiet hours 9a–8p CAL.COM real slots offered in lead's timezone BOOKED on the client's calendar stage sync → BOOKED LEARNING LOOP · HUMAN-REVIEW GATED transcripts → score → propose → approve → playbook vN+1
live automated path review-gated loop data sync stack: Meta · Next.js/Vercel · n8n · Attio · OpenAI · SendBlue · Cal.com · Resend
WHY IT MATTERS This isn't a chatbot bolted onto a form. It's a distributed system: capture, data, and conversation lanes with per-client isolation, timezone-aware scheduling, and a compliance boundary the model physically cannot cross. Clients never log into any of it. They just get booked appointments.
03Deep dive · conversational agent

A 6-stage lifecycle agent with a compliance rail it can't cross.

qualify → book → confirm → remind → rebook → recycle. Six n8n workflows running one agent through the entire lead lifecycle over iMessage, in a regulated industry where one bad sentence is a legal problem.

iMessage · lead-side view
new lead · "Marcus" · self-employed · WA · demo persona
Hey Marcus, saw you requested info on retirement options that don't ride the market. Two quick questions so I don't waste your time.
sure
Are you self-employed or W2? And are you putting anything toward retirement right now?
self employed. maxing a SEP but want something more flexible
qualified: income ✓ industry ✓ strategy ✓
Got it, that's exactly what this call covers. I have tomorrow at 2:15 or Thursday at 10:30, your time. Which works?
tomorrow works
Locked in for 2:15pm Tuesday. Confirmation text incoming. It's a 20-minute call, nothing to prepare.
cal.com: booking created · attio: stage → BOOKED · reminders queued 24h + 1h
SIMULATED CONVERSATION · DEMO DATA · REAL SYSTEM BEHAVIOR
message path · every single turn
RAIL·INopt-out / STOP / legal-freeze intercepted before the model ever runs
MODELgpt-4o-mini + versioned playbook + conversation memory keyed to phone #
RAIL·OUTbanned-claims filter: "guaranteed", "tax-free", return percentages
SENDquiet hours 9am–8pm lead-local · 20h frequency cap
▲ the learning loop has no write path to the rail. Deterministic code, not a system prompt asking nicely.
coach/ · review-gated learning loop
transcripts score propose HUMAN REVIEW playbook vN+1
agent behavior improves weekly from real conversations. every change human-approved, versioned, one-command rollback. no retraining.
6 workflows 6 data tables 10 scripted test personas simulator: full engine, zero texts sent no-show rebooks + 30/60/90d recycle inference ~$5–15/mo
WHY IT MATTERS Anyone can prompt a model to sound helpful. Production means the failure modes are handled: compliance in deterministic code, a simulator to test against 10 personas before a real phone is touched, and a feedback loop where humans gate every behavior change.
04Deep dive · orchestration & tooling

I don't migrate workflows. I build the tool that migrates workflows.

When Make.com stopped being the right home for the pipeline, I wrote a converter that ingests Make blueprint exports and rebuilds them as native n8n workflows, then a deployer that stands up the entire stack in one command.

zsh · make-to-n8n
$ node deploy-all.mjs
credentials created ............ 5
data tables created ........... 6
workflows deployed ............ 11
webhooks bound ................ sendblue · cal.com
seed client loaded ............ TEST-CLIENT
report written ................ DEPLOY_REPORT.md
 
done. idempotent · re-runnable · legacy twins kept inactive for instant rollback
$

what the tooling actually does

Parses Make blueprint JSON, maps modules to n8n nodes, rebuilds the Make Data Store + OpenAI pattern as a native n8n AI Agent with chat memory keyed to the lead's phone number. It even fixed a latent quote-injection bug the Make version had by JSON-encoding dynamic bodies.

Tested end-to-end against an offline mock of the n8n public API before it ever touched the real instance. Cutover repoints SendBlue and Cal.com webhooks with a --cutover --go flag; rollback is instant.

11 workflows in one run 5 blueprints validated on n8n 2.28.6 offline mock API for E2E tests zero npm installs · Node 18+
WHY IT MATTERS Migration by hand is labor. Migration by tool is leverage. This is the difference between an operator who uses automation platforms and an engineer who builds meta-tooling on top of them.
05Deep dive · the agent org chart

Four AI agents run the back office. A human gate guards the door.

The business itself is staffed by a scoped internal agent team: content, outreach, client delivery, incident triage. Each agent has least-privilege tool access, drafts into the repo, and nothing external ships without sign-off.

.claude/agents/ · scoped subagent team
content-studio weekly short-form + LinkedIn drafts pipeline-outreach reactivation · pre-call prep · debriefs client-delivery weekly reports · SLA pace math ops-triage incident-only · zero idle cost HUMAN APPROVAL every external action CLIENT COMMS · sent by a human reports, remediation drafts, install messages PUBLISHED CONTENT · human posts it scripts, captions, LinkedIn set, outreach DMs MONEY & INFRA · never agent-touched ad spend, billing, live workflows, credentials REPO ARTIFACTS · agents write here freely drafts land in versioned files, reviewable diffs
least-privilege tool scopes per agent agents answer BLOCKED: rather than fabricate a contractual number no credentials, no dashboards, no spend
WHY IT MATTERS Autonomy is an engineering budget, not a vibe. I decide per action class what an agent may do alone, what needs review, and what it must never touch. That's the exact discipline agent platforms need at scale.
06Deep dive · Dually OS

Most people build agents. I also built the layer that manages the fleet.

Dually OS is a local control panel that rescans the entire repo on boot and indexes every skill, agent, automation, SOP, and funnel into a structured graph. It knows what exists, what's missing, and it can generate the missing piece in the correct schema.

dually-os · 127.0.0.1:4711
BOARDGRAPHGAPSCHAINS
lead-pipelinesms-agentdelivery growthcontentops billinginfrastrategy
GAP · capability: post-call testimonial chase ▸ scaffold artifact
CHAIN · friday-ops: pace check → report → distill ▸ write slash command

an internal developer platform, for a company of one

Zero-dependency Node service (node:http + vanilla JS, localhost-only). A scanner extracts metadata from each file's own structure and auto-assigns it to one of 9 clusters. Four views answer four questions: what exists, how it connects, what's missing, what should run as one chain.

The generation engine closes the loop: click a gap, get the missing skill, agent, or automation scaffolded in the repo's exact conventions, including runnable slash commands.

rescans repo on every boot 4 views · 9 clusters 4 artifact generator kinds zero npm dependencies
WHY IT MATTERS This is platform thinking applied to agents: inventory, observability, gap analysis, and code generation over the whole system, not just one more workflow. It's the part of the job most candidates have never even seen.
07Deep dive · the model router

One model is a tool. A fleet, routed well, is a system.

I don't push everything through one LLM. Tasks route to the most capable tool for the job, and the token budget follows: heavyweight reasoning only where it earns its cost, fast cheap models for volume, media models for media, research models for facts. That's how 2.1 billion tokens a month get spent like a budget, not a bar tab.

route by capability · dispense tokens by task value
ROUTER right tool · right task right cost claude code engineering core hermes custom agent runs gpt generalist + code cursor in-IDE builds gemini multimodal + research perplexity live web research nano banana image generation veo 3 video generation
8 tools in daily rotation route by capability, not habit token spend weighted to task value 2.1B tokens/mo dispatched
WHY IT MATTERS Model choice is a cost and capability decision, made per task. It's the same discipline that keeps the SMS agent on gpt-4o-mini at $5–15 a month while the hard engineering runs on frontier models. Cheap where cheap wins, heavy where heavy earns it.
08Deep dive · the second brain

Nothing I think gets lost. Nothing I learn gets learned twice.

Every voice note, brain dump, meeting recording, and chat history becomes a markdown file, linked into an Obsidian knowledge graph, and backed up daily to a private GitHub archive. The system I log into tomorrow already knows what I figured out today.

obsidian · living knowledge graph
voice note brain dump meeting rec chat history .md obsidian brain daily git push private GitHub
every thought captured to markdown linked, searchable, versioned backed up daily · private repo feeds the next session's context
WHY IT MATTERS Compound interest applies to context. No time wasted, no thought ignored, no idea lost in a notepad. Every session starts where the last one actually ended, so the system gets smarter every single day I use it.
09The rest of the machine

Four more systems, same standard.

CRM schema-as-code · attio-setup

The entire multi-tenant CRM schema builds from one config file. Idempotent by api_slug: re-runs only create what's missing, with a --dry-run that prints would-create / exists / error per line. Select values are contract-locked to the funnel's config so data maps 1:1 with zero transforms.

28 attributes2 pipelines · 8 + 4 stageswebhook · 4 eventszero deps

web properties · designed, built, shipped

The B2B marketing site and the consumer funnel are both mine end to end: copy, design, build, deploy. Next.js on Vercel. The funnel feeds the pipeline you scrolled past; the site sells the service it powers.

duallymkt.com  ·  apply.protectplanning.com

Next.js · Vercelfunnel → webhook → CRMCRO-led design

media pipeline · vsl-v2

A slide deck JSON becomes a finished 1080p sales video: cloned-voice narration, burned captions, demo splices. Captions are word-aligned by transcribing the actual voiceover with faster-whisper, so every line fires exactly when spoken.

4-step build pipelineElevenLabs TTSfaster-whisper alignmentzero-key self-test via macOS say

daily self-briefing · ai_brief

A Python service that scrapes AI labs, HN, reddit, and arXiv, dedupes against a permanent seen-DB, ranks, and has Claude write me a briefing that lands in my inbox at 6:00am with an audio version. It's how I stay current, automated like everything else.

launchd · 6:00am daily~$0.15/day all-inmd + html + mp3fuzzy dedup, 7-day window
10Eight years · five chapters
One move, repeated:
find the broken lead process.
Build the machine that fixes it.
This time with agents instead of headcount.
CH.01 · 2018–2022

Founder, freelance agency

Solo digital marketing for home-service businesses. Lead gen, websites, hosted CRM sub-accounts. Owned the whole client lifecycle alone.

▸ first business, zero employees
CH.02 · MAR 2022–NOV 2023

Dept head, Pool Builder Marketing Pros

Joined as the sole media buyer. Built and led a team of 5 as the department scaled. Directed every client account at a $5M+/yr agency.

▸ $100K+/mo spend owned
CH.03 · 2024–2025

Closer & funnel architect, Freedom Forever

In-home solar closer. Trained and ran 6 door-to-door setters on a standardized pitch and closed 100% of the appointments they set. Built the lead funnel that became the statewide standard, then went nationwide.

▸ nationwide funnel replication
CH.04 · DEC 2024–DEC 2025

Licensed life insurance agent

Sold IUL and retirement-positioned products. Built my own lead-gen and qualification automation instead of buying leads. That system became the blueprint.

▸ $10K → $48K/mo AP
CH.05 · OCT 2025–PRESENT

Founder & lead engineer, Dually

The blueprint, productized: a multi-agent booking platform sold as a paid B2B service to independent agents, with a guaranteed-appointment SLA.

▸ everything on this page
11Transparency

Everything above is the highlight reel. Here's the rest.

I'm not perfect. My failures outnumber my wins, by a long shot. A laundry list of dead domains in GoDaddy. Businesses that folded. Ideas that never made it off the drawing board. Mistakes that cost real money and real time.

But I never stopped. I never quit.
I pivoted, or I asked for help.

I've learned more from the failures than from any success on this page. Eight years of that is what built these systems. Not talent. Reps.

So here's what I'm actually looking for: stability. One team, one mission. Something I can give all my energy and focus to, something I'm proud of, stand behind, and support wholeheartedly. If that's what you're building, the buttons below are for you.

transparency.log
failuresmore than the wins · every one survived
dead domainsa laundry list, still in GoDaddy
drawing boardideas that never shipped · lessons that did
responsepivot, or ask for help · never quit
resulteverything on this page
failed more than I've won learned more from the failures never quit · pivoted or asked for help
12Contact

Hiring for AI engineering, automation, or agent platforms?

I'm looking for a team building something I can stand behind, where the energy I put in compounds into something real. I bring the full loop: find the broken process, design the system, build it, ship it, run it in production, own the result.

You can hire someone who can whiteboard an agentic architecture.
Or someone who runs one in production, with revenue on the line.