Teardown No. 42 · SEO

How Henrik Holen built a weekly marketing agent, and why $3.30 of its first $4.23 run went to polling Slack

Henrik Holen builds small side products. He wanted an AI agent to work as a product marketer for them, covering SEO maintenance, competitive monitoring, blog content and a few marketing ideas each week. His first version ran on Anthropic's Managed Agents API with a Saturday cron job and a Slack channel. The agent ran a sense, maintain, ideate cycle, and he picked which ideas to pursue. He later rebuilt it as an n8n workflow. That version adds direct calls to OpenAI and Perplexity to check whether his product appears in their answers. He reports no traffic or revenue results. His main finding is that "The plumbing was 80% of the effort both times."

The problem

He wanted an agent that could do the recurring marketing work around his side projects. That work is “SEO maintenance, competitive monitoring, blog content, coming up with a few good marketing ideas every week.” AssetJay, his asset management product for small teams, is the project named in the note.

The blueprint (as he describes it)

  1. Version 1: a persistent cloud session. He used Anthropic’s Managed Agents API, which gives a persistent Claude session in the cloud with bash, file access and the ability to call APIs. He gave it access to the AssetJay repo through a GitHub access token and to traffic data from Lodd, his own analytics product. All communication ran through a Slack channel. A Saturday cron job woke it up weekly.

  2. Run a three-part cycle.

    • Sense: pull traffic from Lodd and check which AI crawlers are hitting the site. Check whether the product shows up in ChatGPT and Perplexity responses. Crawl competitor pages for pricing changes.
    • Maintain: crawl every page and check meta tags, JSON-LD and heading hierarchy. Auto-fix what is obvious and flag the rest.
    • Ideate: three marketing ideas grounded in the data, with effort estimates.

    He then picks which ideas to pursue, “if any.”

  3. Drop the step that did not pay off. A create step wrote blog posts. He dropped it because the posts “needed enough editing that the time saved was marginal.”

  4. Fix the plumbing. The Slack connector failed because the OAuth credential in Anthropic’s vault kept failing. He switched to the Slack Web API via curl. The first full run cost $4.23, and $3.30 of that was the agent polling Slack every 60 seconds while it waited for his replies. He built a Trigger.dev bridge that only pokes the agent when he responds. He says it helped, “but the whole thing felt held together with string.”

  5. Require evidence for competitor claims. The agent once reported that a review site “explicitly named AssetJay weaknesses”. The criticisms were real, but they were about a different product with a similar name. The system prompt now requires exact quotes and source URLs for any competitor claim.

  6. Cut the verbosity. The first weekly report listed every passing SEO check with methodology before results. He told it: “if everything passes, just say ‘all clear.’ Lead with findings, not process.”

  7. Version 2: rebuild in n8n. The cycle stayed the same, but it now runs as a visual workflow. Two entry points feed a single AI agent node:

    • a weekly schedule trigger
    • a Slack mention handler, so he can ask questions at any time

    The agent connects to Lodd (42 analytics tools), Tavily for web search and Supadata for scraping. It also makes direct API calls to OpenAI and Perplexity to check whether the product appears in their responses. V1 guessed at citations through web searches. He calls the direct calls “a big improvement.”

  8. Let the platform remove the workarounds. In n8n, Slack integration is native. There is no polling cost because the workflow only runs when triggered. The Trigger.dev bridge is gone. The workflow is easy to duplicate for a second product.

  9. Template details (from the n8n write-up his note links to, on lodd.dev).

    • The weekly prompt compares the last 7 days to the previous 7 and flags changes over 20%.
    • It proposes up to 3 actions, each with an effort estimate.
    • Competitor claims without a source URL are marked as unverified.
    • Reports stay under 500 words, and the agent remembers the last 10 interactions.
    • Slack questions get a reply in the thread. The weekly report posts to the channel.

Stated results

  • No traffic, sign-up or revenue results are stated for his products.
  • The first full v1 run cost $4.23, of which $3.30 was Slack polling.
  • He calls the maintain and sense layers “the real value”. He describes them as “Weekly SEO sweeps and competitive monitoring that just happen without me thinking about it.”
  • He calls the ideation layer “surprisingly good.” His example idea: “write a Sortly comparison because that’s the query where you don’t show up and they just raised their pricing.”
  • In the template write-up: “When I first ran it for my own product, GPT listed ten competitors and I wasn’t mentioned.” It does not say which product.
  • “The plumbing was 80% of the effort both times. The agent itself was the easy part.”

Caveats

  • Lodd is his own product (web analytics built for AI agents), and both versions use it for traffic data. The n8n template is hosted on lodd.dev, promotes Lodd and links to a Lodd sign-up with a free tier. AssetJay is also his own product.
  • The value claims are his own judgement. No before-and-after figures are given.
  • The template includes an anonymised sample weekly report (50 visitors, 4 signups). It does not say which product the report is from, so it is not counted as a result here.
  • The field note puts the ChatGPT and Perplexity checks in the sense step. The template puts them in the maintain step.
  • The note is a living document and “will keep changing.”
  • Handles: LinkedIn linkedin.com/in/henrikholen, GitHub github.com/hholen, YouTube @holenventures, Substack holenventures.substack.com (verified 2026-10-20: all linked from holenventures.com). X @HenrikHolen links a different site (henrikholen.com) and a Bluesky account under his name has no bio, so neither is tagged. Threads, Instagram, Mastodon, TikTok: not checked.

Sources


Want agents like these working your distribution? See the Agent Stack Teardown. Get new teardowns weekly: subscribe (double opt-in).

Get one teardown a week.

Same format, a new operator every issue. Double opt-in.