MoltBot: Building a 20-Skill Autonomous AI Agent for Business
How I built an AI that handles CMO/CEO functions — email, research, outreach, reporting — without touching it. Full architecture breakdown.
MoltBot is the AI agent that runs my back office. It handles email triage, lead research, outreach sequences, weekly reports, content scheduling, and meeting prep. I stopped touching most of this work in January. It handles about 85% of inbound email without me.
I want to be clear about what this is and is not. It is not a chatbot. It is not an AGI experiment. It is a collection of 20 focused skills that run on triggers, do a single job, and either finish it or escalate to me. The magic is not in any single skill. It is in the fact that all 20 are always on, always watching, and they never forget.
The Core Insight
Most people trying to build AI agents make the same mistake: they build one giant agent that tries to do everything. One big system prompt. One big loop. One giant context window. It does not work. The model gets confused. The context gets polluted. The cost gets insane. And the moment one step fails, the whole thing fails.
The alternative is to build many small agents, each with one job and a narrow scope. Each agent has its own prompt, its own tools, and its own success criteria. When one fails, it fails in isolation. The others keep running. You debug one at a time. You improve one at a time.
The 20 Skills
Here is the actual list, grouped by function.
Email (5 skills)
- Triage — reads every new email, classifies it as reply, ignore, escalate, or archive
- Autorespond — drafts and sends replies to common categories (pricing, scheduling, support)
- Escalate — flags high-priority threads and drops them into a Slack channel with context
- Follow-up — tracks threads I have not replied to and nudges me after 48 hours
- Unsubscribe — auto-unsubscribes from cold newsletters using their own unsubscribe links
Lead Generation (4 skills)
- ICP Research — reads our target criteria and finds matching companies via public data
- Contact Enrichment — pulls LinkedIn, GitHub, and email for every lead
- Outreach Drafting— writes first-touch cold emails personalized from the target’s recent work
- Sequence Management — schedules and sends 3-step sequences with the right cadence
Reporting (3 skills)
- Weekly Rollup — compiles a Monday morning digest of every vertical
- Revenue Watch — monitors Stripe, alerts on churn or anomalies
- Win/Loss — summarizes closed deals and lost deals with pattern detection
Content (4 skills)
- Calendar Manager — schedules LinkedIn, Twitter, and newsletter posts from a shared queue
- Repurposer — takes a blog post and turns it into 10 social variants
- Distribution — publishes and cross-posts at optimal times per platform
- Engagement Watcher — tracks replies and drafts responses for review
Meetings (4 skills)
- Prep — builds a one-page brief on everyone in the meeting 30 minutes before
- Transcription — records and transcribes with speaker diarization
- Action Items — extracts commitments and auto-creates tasks
- Follow-up — drafts the post-meeting thank-you with next steps
The Architecture
The glue that holds all 20 skills together is n8n. Every skill is an n8n workflow. Triggers fire the workflows: new email arrives, cron job at 7 AM, webhook from Stripe, form submission.
Each workflow calls an LLM (usually Claude for reasoning, GPT-4 for drafting) with a narrow system prompt, gives it the context from the trigger, and either executes an action or flags for review.
Data lives in Supabase. Every action MoltBot takes is logged with a skill name, timestamp, input, output, and outcome. The logs table is my feedback loop: I read it daily, look for mistakes, and refine prompts.
Function Calling Is the Unlock
The single most important pattern in MoltBot is function calling. Instead of asking the model to output a blob of text and parsing it, I define the exact shape of the expected output as a JSON schema and let the model fill it in.
For example, the Triage skill has a function called classifyEmail that returns a JSON object with fields like category, priority, suggestedAction, and confidence. The model has no choice but to return that shape. Parsing becomes trivial.
Trust Is Earned Incrementally
I did not hand MoltBot the keys on day one. Every skill went through three stages.
- Shadow mode — MoltBot does the work but only logs the output. I check every log for 2 weeks.
- Draft mode — MoltBot actually drafts the action (email, post, task) but leaves it in a review queue. I approve everything.
- Autonomous mode — MoltBot executes directly, with a daily audit log I skim.
The cycle for a skill is typically 2 weeks shadow, 2 weeks draft, 2 weeks audited autonomous, then fully trusted. Six weeks feels slow until you realize the alternative is a runaway agent sending cold emails at 3 AM to the wrong people.
The Failure Modes You Need To Plan For
In order of pain: hallucinated facts in drafts, tool failures that the model does not detect, infinite loops on retries, prompt injection from inbound emails, and rate limits from upstream APIs.
The defenses are not fancy. Every draft gets a fact-check pass from a second model. Every tool call has a timeout. Every loop has a max iteration count. Every inbound text gets a sanitization pass. Every API call has a circuit breaker.
Each one of those is five lines of code. Together they are the difference between MoltBot running for 6 months and MoltBot sending your whole contact list a poem about quantum computing.
What It Costs
Token spend: about $180 per month across all 20 skills. n8n cloud: $50. Supabase: free tier. Total operating cost: under $250 per month. For a full-time CMO/CEO replacement across repetitive work, that is a rounding error.
If you are building your own version of this, start with one skill. Email triage is the best first one — highest frequency, clearest success metric, lowest risk. Get it working in shadow mode. Iterate on the prompt until you trust it. Then add the next skill.
Pro members get the full breakdown, code repo, templates, and all the receipts that didn't make the post.
Join Pro