Open source · MITRuns on your Cloudflare account

The AI growth team you don’t have to talk to.

Coding agents wait for your next prompt. GrowthHarness works like a senior SEO team: it researches before it writes, drops keywords you can’t win, and checks every claim against your site, in every language you sell in. You decide what gets published.

$npm run setup -- --local && npm run dev

Then walk away. It works the night shift.

  • Bring your own model key
  • Your domain, your data
  • Every article reviewed before you see it
05:30 You’re offline
Seven toy-like team members sit in a half circle around the AI Growth Leader’s desk: Strategist, Deep Researcher, Keyword Researcher, Topic Editor, Editor-in-Chief, Writer and Reviewer. Strategist · strategy v4 done for 3 languagesStrategy v4 done 3 ready for you Approved 3

Last night

    Waiting on you

    3articles ready
    • pt-BRComo ler em inglês sem traduzir
    • pt-BRInglês para reuniões: frases que funcionam
    • deEnglisch lesen ohne Übersetzen

    Each one passed independent review.

    The team view is the real console with sample data. The night log is illustrative.

    You already have a coding agent

    It writes first. Then it waits for you.

    Ask a coding agent for ten SEO articles and it starts typing. It doesn’t check what people search, what Google already ranks, or whether you can win. Someone has to direct it, and that person is supposed to know SEO.

    ~/my-saas · agent session

    write 10 seo blog posts for our pricing page keywords

    Done. I created 10 posts in /content/blog. Want me to publish them, translate them, or research more keywords?

    waiting for inputlast activity 3 days ago
    1. 01
      You make the SEO calls.Which searches matter? Can you beat what ranks today? What should you skip? It does what you ask, so the expertise has to come from you.
    2. 02
      You carry the context.New session, same story: your product, your strategy, what was already published.
    3. 03
      You check the work.Is that price right? Is this claim on our site? Nobody else is reading it.
    4. 04
      You remember to come back.Search results show up weeks later. No session lasts that long, so the follow-up lives in your head.

    You wanted AI to take marketing off your plate. Now you direct it, and you are the SEO expert it doesn’t have.

    How an SEO expert works

    Most of SEO happens before the first sentence.

    Each step belongs to a specialist with its own brief. Each one answers the question a senior SEO would ask at that point, and leaves a written record you can open.

    1. 1StrategyStrategist · Deep Researcher

      What should search do for this business, and where can it actually win?

      Market research
      Who already owns these searches, and how they serve them.
      Battlefields and trade-offs
      Which topics to fight for, and which to leave alone on purpose.
      SEO_STRATEGY.mdRESEARCH_NOTES.mdVersioned, one line of versions per language.
    2. 2KeywordsKeyword Researcher

      What do people really type, and what are they trying to get done when they type it?

      Search intent
      Learn, compare, buy, or use a tool. The page has to match it.
      SERP analysis
      What Google shows for the query today, so you know what you are up against.
      Volume and difficulty
      Measured data when DataForSEO is connected. Missing numbers stay unknown.
      Cannibalization
      Two of your own pages competing for one search. Flagged before it happens.
      Keyword mapEvery keyword has a reason, or a reason it was dropped.
    3. 3TopicsTopic Editor

      What should we write now, and what should wait?

      Topic clusters
      Pages planned to support each other inside one subject.
      Defer
      When the evidence is thin, it asks for research instead of filling a quota.
      Topic groupOr a research request, with the reason.
    4. 4WritingEditor-in-Chief · Writers

      What does the reader need answered, and can we back up every claim?

      Coverage plan
      The reader’s questions this page answers, and the ones it leaves to another page.
      Claim ledger
      Each fact is saved with the exact sentence it came from.
      Internal links
      One to three per language, only to published pages in the same language.
      Draft + evidenceSelf-checked in a fresh session before handoff.
    5. 5ReviewReviewer

      Would a careful editor let this go out under your name?

      Independent review
      A separate reviewer reads the exact draft, checks claims, coverage and links.
      AI tone
      Read for the patterns that make text sound generated. No detector tricks.
      Pass / ReviseRevisions go back to the same writer.
    6. 6PublishAfter you approve

      Can search engines and AI crawlers read it and show the right language to the right person?

      hreflang
      Tells Google which language version to show each searcher.
      Canonical and structured data
      One URL per page, schema built only from real article data.
      Sitemap and IndexNow
      Search engines hear about the page when it goes live.
      /pt/blog/…Server-rendered HTML on your domain.

    Its work

    Don’t trust the model. Read its work.

    Every step leaves a document. Here is one run for a reading app expanding into Brazilian Portuguese.

    Sample output · Glossly is a fictional product · numbers are illustrative

    SEO_STRATEGY.mdpt-BRversion 3by Strategist

    Role of search

    Reach Brazilian professionals at the moment they struggle with an English article for work. Search is the main way they look for help, and Glossly’s in-page definitions solve exactly that moment.

    Where we compete

    • Reading English without translating word by word
    • English for work: emails, meetings, documentation
    • Comparisons of reading tools, once we have our own data

    How we win

    Specific, practical guides written for working adults. The pages ranking today are mostly written for students and exam prep.

    Not doing

    • “tradutor inglês português”. Google’s own translator box and DeepL own this. The searcher wants a one-off translation, not to learn.
    • TOEFL and IELTS prep. Off our product, and the ranking pages come from schools with credentials we don’t have.

    Hypothesis to test

    • Work-context guides earn clicks from people already reading English daily. Signal: impressions on work-related queries within 8 weeks of publishing.

    The shortcuts it refuses

    What it won’t do, even when it would be faster.

    Most AI SEO tools fail in the same few ways. These are the ones this team is built to avoid.

    The usual shortcut
    What this team does
    Hit a keyword quota on every page
    No quotas. Pages cover what the reader needs, not a keyword count.
    Generate a page for every keyword
    One topic group at a time. It can defer or ask for research.
    Fill gaps with plausible facts
    Every claim is saved with its source sentence. Unsupported claims are cut.
    Translate one article into ten languages
    Each language is researched as its own market, with its own strategy.
    Add FAQ or rating schema for rich results
    Structured data comes only from the real article and site.
    Use tricks to get past AI detectors
    It rewrites what sounds generated. Detector tricks are banned.
    Treat missing data as zero
    Unknown stays unknown, and the documents say so.

    Without you driving it

    Everything you would have typed, the team already handles.

    A Growth Leader runs a team of specialists: strategist, researchers, topic editor, editor-in-chief, writers and an independent reviewer. They hand work to each other and report back to the Leader. Nobody waits for you to say what is next.

    The Growth Leader at the desk

    you pick the next step

    It decides what to do next

    The Leader looks at where each language stands and hands the work to the right specialist.

    Daily run started. pt-BR and de have no topics this week.
    The Writer with a tablet

    you carry the context

    It remembers the whole job

    Each task keeps its full history from start to finish. If a run is interrupted, it resumes where it stopped.

    Worker restarted. Writer resumed the same draft.
    The Reviewer with a tablet

    you check the work

    It checks its own work

    An independent Reviewer reads every draft against your site. Data it can't find stays marked unknown.

    Sent 1 draft back: a price it quotes isn’t on your site.
    The Keyword Researcher with a tablet

    you translate everything

    Every language is its own market

    Research and topics run separately for each language you sell in. Articles go live on your domain under /en/, /pt/ or /de/.

    de keyword map: 41 terms, 6 with unknown volume.

    Your part is one decision.Set the goal once. After that you only see finished articles that passed review, and you choose what goes live.

    Research→Write→Review→You approve→Live

    Under the hood

    Claude Code is a harness for code. GrowthHarness is a harness for growth.

    For an agent that runs for weeks, the prompt is the easy part. The work is in everything around it, and all of it is open source.

    continuous runs

    One task, one history

    A task keeps its identity and conversation for its whole life. Long histories are compacted; the original is kept.

    durable steps

    Survives restarts

    Work runs as durable workflow steps. Interrupted tasks resume, and external jobs are never submitted twice.

    self-audit

    Checks itself every 30 turns

    The agent decides whether to keep going or finish. Usage is recorded, and it never forces a stop to wait for you.

    hard rules in code

    Judgment stays with the model

    Workspace isolation, approvals and quality checks are enforced in code. What to research and write is left to the agents.

    bring your own model

    Any provider, per role

    OpenRouter, OpenAI, Anthropic or a custom endpoint. Planning, writing and review can each use a different model.

    workers · d1 · r2 · durable objects

    Your Cloudflare account

    The console, the agents and your published blog all run in one Worker you deploy. Sitemap and IndexNow included.

    Before you install

    What it doesn’t do yet

    Start it tonight.

    Then walk away. Check back for something to approve.

    View the source on GitHub →
    Node 22.18+ · runs locally first
    $ git clone https://github.com/ahamoment-101/growth-harness.git
    $ cd growth-harness && npm ci
    $ npm run setup -- --local
    $ npm run dev
    # add a model key in .dev.vars, then give the Leader a goal