4 Weeks in: Building a 10-Agent Marketing Platform While Taking Naps

Six days. That’s how long I waited after launching DIALØGUE before starting my next project.

You might be thinking “shouldn’t you be, I don’t know, marketing your podcast generator? Getting users? Fixing bugs?” And you’d be absolutely right. But here’s the thing – I wanted to see how far and how fast I could push myself with the new AI tools. Call it a speed run, call it overambition, call it what happens when Claude Code and Gemini 2.5 Pro make building fun again.

Table of Contents

The Timeline That Shouldn’t Be Possible

Let me put this in perspective:

DIALØGUE: 6-7 months from first line of code to launch

Marketing Suite: 4 weeks in, already have 3 working AI agents talking to each other

Looking through git history, by end of day one, I had:

Multitenant architecture with organization → client → campaign hierarchy

Initial React frontend with authentication

– A working Business Strategy Agent using 11 different frameworks, covering different regions. These frameworks are used by top global/regional consultancy firms. For example:

Supabase integration with Row Level Security

That’s more than I accomplished in the first month of building DIALØGUE.

The Numbers That Keep Me Going

Some quick metrics from the past 4 weeks:

Features shipped: 3 complete agents + multi-tenant architecture

Lines of code: ~117,000 (Python: 39k, TypeScript: 58k, SQL: 20k, Javascript: the rest)

Database tables: 39 (each serving a specific purpose – more on this later)

Git commits: 232 (in about 26 days)

Coffee consumed: Don’t ask

Why This Project Is Actually 10x Harder

DIALØGUE was complex, sure. AWS Lambda functions, Step Functions, eventually migrating everything to Google Cloud Run. But fundamentally, it was a single-purpose tool: generate podcasts. One user type. One workflow. One happy path.

This Marketing Suite? Let me show you what I mean:

A Real Scenario: An agency manages Nike and Adidas (hypothetically). The agency’s strategist uses the Business Strategy Agent to analyze Nike’s position. That analysis automatically saves to strategy_outputs table. When they switch to the Persona Agent, it pulls Nike’s strategy to inform persona development – but it CAN’T see Adidas data. Meanwhile, Nike’s brand guidelines in the brand_guidelines table cascade down to the Content Agent, ensuring every piece of content uses Nike’s voice, not Adidas’s.

This requires:

– organizations table with SME vs AGENCY types

– clients table (only for agencies)

– campaigns with foreign keys to both org AND client

– strategy_outputs with campaign-level isolation

– brand_guidelines with hierarchical inheritance

– Row Level Security policies on every single table

That’s just one workflow. Now multiply that by 10 agents, each with their own data requirements.

What’s Actually Working (And What’s Still Chaos)

Working (The 3 Live Agents + Business Intelligence)

Business Strategy Agent: This isn’t your typical SWOT generator. It applies 11 comprehensive frameworks:

– SWOT Analysis

– Porter’s Five Forces (Competitive rivalry, Supplier power, Buyer power, Threat of substitution, Threat of new entry)

– Business Model Canvas (9 building blocks of business design)

– ICE Prioritization (Impact, Confidence, Ease scoring)

– BCG Growth-Share Matrix (Stars, Cash Cows, Question Marks, Dogs)

– VRIO Framework (Value, Rarity, Imitability, Organization)

– Three Horizons Model (Current core, Emerging opportunities, Future bets)

– Blue Ocean Strategy (Eliminate, Reduce, Raise, Create grid)

– McKinsey 7S Framework (Strategy, Structure, Systems, Shared Values, Skills, Style, Staff)

– OKRs Framework (Objectives and Key Results)

– Jobs to Be Done (Customer jobs, Pains, Gains)

Each framework generates structured data that feeds into other agents. When you run a SWOT analysis, the “Opportunities” automatically inform the Marketing Strategy Agent’s growth tactics.

Persona Agent: Generates detailed customer personas with 15+ attributes AND – here’s the wild part – you can interview them. Actual conversation:

You: “What frustrates you most about current project management tools?”

Persona (Tech Startup Founder): “The constant context switching. I need to check Slack, then Asana, then our analytics dashboard. By the time I figure out what needs attention, I’ve lost 30 minutes.”

Each interview response gets smarter because it pulls from persona_interactions history. Users are spending 20-30 minutes in these interviews. One user said “It’s like focus groups but instant and actually useful.”

Marketing Strategy Agent: This is the bridge. It takes your business strategy, understands your personas, and creates actionable go-to-market plans. It doesn’t just say “use social media” – it maps specific personas to specific channels with specific messaging. Zero-budget tactics for bootstrapped startups. 70-20-10 budget allocation for SMEs. Multi-channel orchestration for enterprises.

Business Intelligence (The Hidden Hero): Every conversation with any agent automatically extracts insights and builds organizational knowledge. Talk to the Strategy Agent about entering the European market? That insight saves to ai_insights table. Next week when you’re using the Content Agent, it already knows about your European expansion plans. No re-explaining. No context lost.

Still Building (The Next 7 Agents)

Campaign Execution Agent: This is where things get scary. How do you safely store API keys for Google Ads, Meta, LinkedIn, TikTok? Current plan involves encrypted storage in platform_credentials table with audit logs for every API call. But the permission model keeps me up at night.

Analytics Agent: Which APIs to integrate first? Google Analytics 4? Meta ads? LinkedIn Analytics? The challenge isn’t just pulling data – it’s normalizing it across platforms so you can actually compare apples to apples.

ROI & Budget Agent: Real-time tracking across multiple platforms with different attribution models. How do you reconcile Google’s data-driven attribution with Meta’s model? Still figuring this out.

The Other 4 Agents: Quick Wins (finding immediate opportunities), Competitive Intelligence (ethical competitor analysis), Client Success (retention strategies), and Content Agent (which actually already works but needs polish).

The Hard Questions That Keep Me Up

Brand name: how should I call this application? 😛 If you have good suggestions, let me know below!

API Security: How do you handle API keys for multiple ad platforms without becoming a security nightmare?

Cohesive Experience: How do you make 10 specialized agents feel like one unified platform instead of 10 different tools duct-taped together

– and many more 🙂

The Architecture Evolution: Learning from Pain

With DIALØGUE, I learned the hard way about race conditions. Remember that 3-minute signup bug? New users would wait forever because the auth trigger and Edge Function were racing to create the same user record.

This time, I built it right from day one. Here’s an actual example from a couple of days ago:

The Problem: The Marketing Strategy Agent needs to know what personas exist, what strategies have been created, and what brand guidelines to follow – all while maintaining complete data isolation.

The Solution: Instead of having each agent query multiple tables (slow, complex, error-prone), I built an Enterprise Context Service that acts as a single source of truth:

// Before: Each agent making multiple queries
  const personas = await supabase.from('personas').select()
  const strategies = await supabase.from('strategies').select()
  const guidelines = await supabase.from('brand_guidelines').select()

  // After: One intelligent service
  const context = await getEnterpriseContext(campaignId)
  // Returns filtered, cached, properly-scoped data in 45ms

The result? The Content Agent can instantly access brand voice guidelines, see which personas to write for, and understand the marketing strategy – all in one call that respects data boundaries.

The Speed Difference Is Real


September 14th was insane. Look at the actual git log with timestamps:

08:04 AM - Migrated frontend to standardized API client
08:19 AM - Completed API standardization (100% coverage)
11:34 AM - Phase 1: Centralized route configuration
            (no more hardcoded URLs anywhere)
1:00 PM  - Phase 2: Standardized all 10 agent pages
            (consistent URL patterns like /agents/strategy/:campaignId)
1:10 PM  - Phase 3.1: Core context management
            (workspace → client → campaign hierarchy in URLs)
4:31 PM  - Phase 3.2: Navigation components became context-aware
            (breadcrumbs show "Nike › Summer Campaign › Strategy Agent")
4:38 PM  - Phase 3.3: All agents integrated with context system
            (switching campaigns preserves your place)
5:03 PM  - Phase 3.4: Testing & Polish
            (92% bundle size reduction through code splitting)

Six major architectural improvements. The URL system alone touched 40+ files across the codebase. Before AI assistance, this would have been a week-long refactor with probably a few broken features along the way.

And I actually was not in front of the computer most of the time 😀

It was a Sunday so we went to church, super market, had a full lunch with seafood, took a nap, went to Costco and played some games on my ipad. This is possible because of AI assisted coding. Thanks to Claude Code and Gemini CLI!
Here’s what that URL standardization actually means for users:

// Before: Lost context when switching between agents
  "/strategy" // Which campaign? Which client? Who knows?

  // After: Context preserved in URL
  "/workspace/nike/campaign/summer-2025/agents/strategy"
  // Bookmark it, share it, refresh it - context stays intact

Why Build This When DIALØGUE Just Launched?

Because I can. Because the tools have gotten that good. Because after 20+ years in advertising, I finally have the skills to build the marketing platform I always wanted to use.

But mostly? Because I want to document what’s possible when you combine domain expertise with modern AI tools. This isn’t about replacing developers – it’s about amplifying them. Four weeks ago, building something this complex would have required a team. Now it requires determination, good AI assistants, and a dangerous amount of caffeine.

What’s Next?

I’m targeting an alpha launch in October/November. Here’s what needs to happen:

– Finish the remaining 7 agents

– Build the campaign planning interface

– Figure out the ad platform integration security

– Make sure the agency UI/flow is sensible

– Test everything with actual users (terrifying)

The Analytics Agent alone will need to aggregate data from Google Analytics, ad platforms, and internal metrics into unified dashboards. The ROI Agent needs near real-time budget tracking across multiple platforms.

Each one is a project in itself. But at this pace? It’s actually feeling possible???

Want to follow along? I’ll be sharing more updates as I build.

Building in public means sharing the chaos along with the victories. Right now, it’s mostly chaos. But it’s productive chaos, and that’s what counts.

Check back in a month. If all goes well, you’ll be able to test a marketing platform that has AI agents doing the work of an entire marketing department. If it doesn’t go well… well, at least the blog posts will be entertaining. 😛

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.