Skip to content
← All projects

Build · Search operations

SEO / Content Operating System

A weekly search and content pipeline for aftertone.io. It collects performance data, prepares changes, checks them and waits for approval before publishing.

~85%Less weekly manual time
1Human approval step
15 minApproval polling interval

Outcome

A two-phase, human-approved pipeline cut the weekly SEO process from 6–8 hours of manual work to 45–60 minutes of review — about 85% less time, with every change still requiring one explicit approval before it publishes.

Problem

The weekly SEO process had too many manual steps. Data had to be pulled from several services, pages reviewed, edits drafted, quality checked, approved and then entered into the CMS. It was slow and easy to do inconsistently.

Approval could take up to 48 hours. Keeping one process open for that long would be fragile and wasteful.

Solution

I built a two-phase pipeline with a human approval step in the middle. The first phase prepares the work and sends one review email. The second runs on a small scheduled job and acts only after an approval, rejection or timeout.

Steps

  1. Pull organic search data from Google Search Console and traffic data from GA4, including referrals from AI products.
  2. Crawl the sitemap and read the Framer CMS so the analysis covers every published page, including pages outside the content system.
  3. Run a focused analysis step to rank page edits and missing topics by likely value.
  4. Draft field-level edits. New articles are split into separate metadata and body passes because long prose and strict JSON output fail in different ways.
  5. Run code-based checks for word limits, field lengths, banned marketing phrases and edit size. A change is rejected if a supposed small edit rewrites most of the field.
  6. Run a separate review step that can accept the draft or send it back for revision.
  7. Send one HTML and plain-text email with every proposed change and its before-and-after values.
  8. Save the full state to disk and exit. A 15-minute polling job checks the email thread, verifies the sender and message headers, then publishes, rejects or times out.
  9. Write approved changes through a Framer client with explicit field maps and a blocked-collection list. Every published value retains its original value for reversion.
  10. Use file locks, idempotent message handling, retry logic and bounded history files so overlapping or interrupted runs do not corrupt the state.

Results and benefits

The weekly process falls from roughly six to eight hours of manual work to 45 to 60 minutes of review, saving about 85% of the time.

One email contains the complete change set. Automated checks remove malformed drafts before review, and every published field retains the value needed for rollback.

Skills & tools

What it took to build this.

Python
Node.js
Search Console
GA4
Claude
Framer
Workflow design3
  • Two-phase human-approval pipeline
  • Structured output generation
  • Email-based approval workflow
Data2
  • Search Console & GA4 integration
  • Content analysis & ranking
Reliability3
  • State management
  • Idempotent processing
  • Rollback support
Focus
Search operations and human-approved publishing
Status
Operating in production

Related work

More projects.

Get in touch

Working on something difficult in health, care or AI?

I occasionally compare notes with founders, product teams and operators working through high-friction workflows in healthcare, care and applied AI.

Start a conversation