Back to blog
EngineeringMar 9, 2026· min read

GTM Agent v1: Automating Content Production Without Losing Voice

Strug City's first production agent system solves the content bottleneck that every one-person company faces. Here's how we built an automated go-to-market engine that writes, reviews, and ships content while preserving brand voice.

The problem was obvious from day one: building a company requires both engineering and content. Code doesn't market itself. Features don't explain themselves. A one-person operation has to choose—ship product or explain the product.

For months, I watched Strug City's content queue grow while I focused on infrastructure. Every feature shipped without documentation. Every milestone hit without announcement. The engineering was solid; the storytelling was silent.

Today, we're launching GTM Agent v1—an automated system that turns commits into content.

The Content Bottleneck

Every software company faces this: the people who build the product are rarely the people excited about writing about the product. For a one-person company experimenting with an AI team, the bottleneck is absolute. I can't simultaneously ship features and craft marketing copy. Something has to give.

The traditional answer is to hire. Get a content person, a marketing manager, someone who loves writing LinkedIn posts and blog announcements. But Strug City isn't traditional. We're testing whether an AI team can do real company work—not just code, but all of it.

So instead of hiring, we automated.

How GTM Agent Works

The system is built on three components: triggers, agent roles, and a commit-first workflow.

Trigger System

GitHub webhooks listen for specific events—merged PRs with the launch label, new releases, milestone completions. When something significant happens in the codebase, the trigger fires. No manual queue management. No remembering to announce things. The system watches the repo and reacts.

This is critical for a one-person operation. I can't context-switch from debugging to drafting a LinkedIn post. The agent handles the transition automatically.

Three Agent Roles

The GTM Agent isn't a single prompt. It's a coordinated system with three specialized roles:

Content Strategist: Reviews the trigger event, reads relevant code and PRs, and decides what's worth announcing. Not every merged PR deserves a blog post. The strategist filters signal from noise and drafts a content plan.

Content Writer: Takes the plan and produces actual copy—blog posts, social media updates, changelog entries. This agent has the brand guidelines, tone examples, and product context. It writes in Strug City's voice: direct, honest, no hype.

Publisher: Handles the technical side—formatting Portable Text for Sanity, generating URL-safe slugs, uploading assets, setting metadata. The writer focuses on words; the publisher manages the CMS.

Each role is a separate agent with specific context and responsibilities. They coordinate through the task orchestration system we've been building for the past few months.

Commit-First Model

Here's the part that matters for velocity: everything gets committed first, reviewed later.

When the GTM Agent finishes a content piece, it saves it to Sanity as a draft (published: false). The content exists. It's versioned. It's ready. But it's not live. I review every piece before it goes public—checking technical accuracy, adjusting tone, fixing any hallucinated details.

This is the compromise. Full automation would mean the agent publishes directly, but we're not there yet. Brand voice is hard to automate perfectly, and getting technical details wrong damages credibility. So the agent does the first draft—the part that takes the most time—and I do the final review.

It's not zero-touch, but it's close. The bottleneck shrinks from hours to minutes.

What This Means for Velocity

Before GTM Agent: ship a feature, add "write blog post" to my todo list, watch it sit there for a week while I handle more urgent work, eventually write it in a rush or skip it entirely.

After GTM Agent: ship a feature, merge the PR with the launch label, find a draft blog post waiting in Sanity 20 minutes later. Review it, fix any issues, publish.

The time savings are obvious, but the impact goes deeper. When content production is automated, you ship with confidence. Features don't disappear into the void. Launches get announced. The feedback loop closes faster.

For Strug City specifically, this is proof of concept for the entire experiment. We're not just building AI agents that write code—we're building agents that handle the full spectrum of company work. Marketing isn't separate from engineering anymore. It's another system to automate.

What's Next

Version 1 is live and working. The next iteration will expand triggers—not just launches, but customer feedback, competitor moves, industry news. We'll add more content types: technical documentation, case studies, email campaigns.

Eventually, the review step shrinks too. As the agent learns what passes review and what doesn't, the drafts get cleaner. Maybe in v3 or v4, we trust it enough to publish directly for certain content types. But we're not rushing that. Automation is only valuable if the output is good.

For now, GTM Agent v1 does what it needs to do: it solves the content bottleneck. Strug City ships faster because the AI team handles the work that used to block me. That's the whole point of this experiment—not to replace humans, but to let one human do what used to require a whole team.

The agents write. I review. We ship. That's velocity.