Living document · last tended today · revision 01 seeded 20 May 2026
Field notes / autonomous-marketing-agent

Running an autonomous marketing agent

I gave a Claude agent a Slack channel, a product repo, and a Saturday cron job, and told it to keep AssetJay's marketing running. Three weeks in, the interesting part isn't what it does, it's how much managing an AI feels like managing a person.

seedling ~5 min read

I’ve been playing around with Anthropic’s Managed Agents API, making it work as a product marketer for AssetJay. SEO maintenance, competitive monitoring, blog content, coming up with a few good marketing ideas every week.

The setup: Anthropic’s Managed Agents API, which gives you a persistent Claude session running in the cloud. It has bash, it can read and write files, it can call APIs. I gave it access to the AssetJay repo via a GitHub PAT, traffic data via Lodd’s MCP server, and a Slack channel for all communication. Once I figured out to wake it up consistently, it worked well. The whole thing costs about $5 a week in API tokens, which is either super expensive or dirt cheap, depending on your perspective.

At its core, the agent runs a four-step cycle: maintain, sense, ideate, create.

Maintain crawls every page on assetjay.com and checks the mechanical SEO stuff. Title tags, meta descriptions, JSON-LD, heading hierarchy, stale year references. Auto-fixes the obvious things, flags the rest. Most weeks it reports “all clear, no fixes needed”, but surprisingly, found the odd thing to improve.

Sense pulls traffic data from Lodd, checks which AI crawlers are hitting the site, monitors whether AssetJay shows up when you ask ChatGPT or Perplexity about equipment tracking, and crawls competitor pages for pricing or feature changes.

Ideate proposes three marketing ideas grounded in the data from the first two layers. What to do, why, estimated effort. I pick which to do, if any.

Create researches competitor content for the target query, writes a draft following the SEO/AEO structure I use across all my product sites, and posts it to Slack for review. After I approve, it commits to the repo and gets published.

Nothing publishes without me saying “ship it” in Slack. Smooth as silk. In theory.

In practice, I ended up having to solve a few issues to get it to run as I wanted:

Slack MCP didn’t work. The OAuth credential in Anthropic’s vault kept failing. Switched to the Slack Web API via curl. Works fine, but MCP would be some much nicer.

Self-polling was the dominant cost. I wanted the agent to be responsive while it was work. That was expensive. The first full run cost $4.23. Of that, $3.30 was the agent polling Slack every 60 seconds via bash sleep loops, waiting for my replies. The fix was a Trigger.dev bridge that watches the Slack channel and pokes the agent only when I actually reply. Agent goes truly idle between messages, no polling, no cache reads. Costs dropped, though not to zero. If you’re building anything with Managed Agents that involves human-in-the-loop, solve the polling problem first.

It hallucinated a competitor mention. The agent reported that a review site “explicitly named AssetJay weaknesses” with specific criticisms about pricing and navigation. The criticisms were real, but they were about a different product with a similar name. The agent pattern-matched “Asset-something” and attributed the wrong company’s problems to mine. The system prompt now requires exact quotes and source URLs for any competitor claim.

It was way too verbose. The first weekly report listed every passing SEO check with methodology explanations before results. Updated the prompt: “If everything passes, just say ‘all clear.’ Lead with findings, not process.”

Once everything worked out though, it was fun to see it work. The maintain and sense layers are very useful automations. Weekly SEO sweeps and competitive monitoring that just happen without me thinking about it. The 95% of weeks where nothing is wrong, I see “all clear” and move on.

The ideation layer is better than I expected. Because it has real traffic data and competitive context, the ideas are grounded. Not just “write a comparison post” but “write a Sortly comparison because that’s the query where you don’t show up and they just raised their pricing.”

The content layer also worked well. It’s not Hemingway, but if your product voice is nondescript, you can get far doing this.

It’s not worth spending $5 week on this experiment for assetjay.com, but once the operational kinks were worked out, it delivered.


This note is a living document and will keep changing. It's not an article. It's a notebook page I'm letting you read over my shoulder. If you spot something I'm wrong about, or if you've worked through the same thing differently, reply to henrik@holenventures.com.