AI-Run Business: Five agents, a video pipeline, and a chatbot that pays for itself
Day 12 of the 30-day AI-run business build. Five agents shipped this week. A video pipeline that posts to YouTube without opening a browser. A course chatbot that earns back its API costs. LangGraph in production. And the second newsletter sent.
DAILY BUILD · MEMBER DIGEST 5 weekdays building — 10 June to 16 June 2026
Ten days in. Five agents shipped, a production orchestration layer wired up, and the second newsletter sent from the system itself. Here's everything that shipped.
Week at a glance
| 5 agents shipped | 2 custom MCP servers built |
| 1 newsletter sent | LangGraph in production |
Agents
Agent 04 — Text-to-Video ✓ Topic in. Avatar video on YouTube. No browser tabs opened.
Agent 05 — Course Chatbot ✓ Freemium gate: static FAQ for anonymous visitors, Claude + Bedrock for signed-in members.
Day by day
Day 08 — The Honest CRM Guide for Developer-Led Teams
A CRM isn't optional when you're building an AI agent stack. It's the memory layer where every lead, conversation, and deal lives so your agents know what's happened before they act. Without it, you're automating chaos.
That's why CRM selection is part of this build. The agents here for lead qualification, follow-up, and enrolment need somewhere to read from and write to.
Five reviewed: Attio, Pipedrive, HubSpot, Salesforce, and Twenty (open-source). The lens: API quality, custom objects, EU data residency, real GBP pricing.
Headline finding: custom objects are locked behind expensive enterprise tiers on HubSpot and unavailable on Pipedrive entirely. Twenty gives you the same capability self-hosted for free.
On AI voice: when a lead calls out of hours, an agent should pick up, qualify them, and log it straight to the CRM. None of the five do this natively at SMB price points. Thoughtly or Kixie wired to your CRM of choice is the answer.
"Most CRM comparison articles are written for salespeople. This one is written for developers and technical founders."
Day 09 — How We Sent Our First Newsletter with Ghost, Mailgun, and Claude
What I assumed would be a five minute job took at least half a day and several trips into browser consoles. Sending the first newsletter required four things to work together:
Ghost
Mailgun
AWS Route 53 (verified sending domain)
Claude (turning seven long build posts into a readable summary)
The setup is straightforward in theory but the verification steps live across different consoles, not the CLI. Mailgun also required an email to support to get the account unblocked. Once connected, every post published in Ghost can be sent as a newsletter automatically. Articles can also be published to the site without emailing.
Day 10 — Orchestration Layer: LangGraph, LangChain, LangSmith
The enrolment agent outgrew Claude Desktop. When a workflow needs to process multiple events, conditionally branch, and loop back until a queue is empty, an interactive chat session is the wrong execution environment.
This post covers the migration to a Python service using LangGraph. The same MCP tools and provisioning logic, now encoded as a typed StateGraph deployed on:
AWS App Runner
LangSmith (tracing on every node)
The core design principle: the LLM is invoked in exactly one place (personalising the welcome email draft). All routing is pure Python. Intelligence and execution stay separate.
"The worker is a tool. Claude is the person deciding which tool to pick up, when, and why."
Day 11 — Agent 4: Text to Video with Avatars
HeyGen, Claude, and YouTube wired into a single automated pipeline via two custom MCP servers.
The agent writes the voice-over script and image references for a 7-slide template, calls create_video_from_template, polls with exponential backoff until the render completes, then uploads directly to YouTube. No manual steps.
Custom MCPs were built instead of using HeyGen's pre-built integration deliberately.
Vendor independence means swapping HeyGen for Runway or Sora later requires changing one file, not rebuilding the agent.
"Templates are leverage. The 7-image template was the force multiplier. Once it existed, every future video was just a data-filling exercise."
Day 12 — Agent 5: Freemium Course Chatbot — Architecture & Stack
A chatbot that sits on every InAgentic workshop page, built around a deliberate cost gate.
Anonymous visitors get instant answers from a static FAQ. No LLM, no API cost. When the question needs intelligence, a magic link sign-in fires inline in the chat thread.
Authenticated users get five Claude Sonnet 4.5 questions on AWS Bedrock, with three tools registered:
trigger_checkout (creates a Stripe session)
check_availability (reads confirmed bookings from PostgreSQL)
send_magic_link (fires inline sign-in from within the chat thread)
The sign-in is the lead capture. The quota is the conversion nudge.
The chatbox is slowly growing into a tool I would use myself.
Principles from week 2
01 — Move to LangGraph when the workflow outgrows the chat session. Claude Desktop and Cowork are the right starting point. A stateful loop that runs unattended at 3am needs a StateGraph, typed state, and a deployment target.
02 — Own your abstraction layer. Custom MCPs over vendor pre-builts. The interface stays stable; the implementation can change. This compounded twice this week, once for HeyGen and once for the YouTube uploader.
03 — Prove it manually before automating. The newsletter was an ai-generated summary, however edited by hand this week. That's intentional. Understand the full loop, improve quality before removing yourself from it.
04 — The gate model works for cost control. Static FAQ plus magic link plus quota is a pattern that works anywhere you need to offer a free tier without unlimited LLM spend. Anonymous path is free. Authenticated path is capped. The cap is the CTA. This applies to any website chat, not just course pages.
05 — Polling beats webhooks for agentic workflows. Webhooks need a publicly reachable endpoint and cross-request state. When a render completes, the vendor pushes a notification to your server, which needs to be running, reachable, and able to connect that incoming request back to the original job.
Polling flips this. The agent asks "are you done yet?" on a loop until the answer is yes. No inbound endpoint, no state management across requests, and the full render timeline is visible in the conversation thread. Easier to debug mid-render and simpler to move between environments.
— Jon Axel · inagentic.ai · jon@inagentic.ai