I built an AI content-updating automation that finds articles to update, researches what needs changing, drafts revisions, and publishes them to my website.

Google Sheets is the control center. Search Console provides the performance data, GitHub Actions runs the automation, and ChatGPT/Codex handles the AI research and drafting.

It takes about 10 minutes a day to review, make changes, and approve articles.

There's no Zapier, Make, or n8n subscription in this setup. I've designed it to run within the included service limits and existing AI subscription, without paying for separate model API usage.

Behind every process is a whole library of skills and instructions that guide SEO, content writing, research, source validation, and every step - but I’ll cover that another day.

Here's what I've built into the system.

Search Console Automatically Identifies Content Opportunities

GitHub Actions collects Search Console data for every published article on my site.

It retrieves clicks, impressions, CTR, average position, and the queries each article appears for.

Then it compares the latest 28 days against the previous 28 days and the equivalent period last year.

That data is then assessed against a scoring system using five signals:

  • Click decline (+35): A drop of at least 25%, with minimum traffic and supporting impression or ranking signals.

  • Ranking opportunities (+25): Articles ranking in positions 4–20 with at least 100 impressions.

  • CTR decline (+20): Top-ten pages with CTR down at least 25% and sufficient impressions.

  • Content age (+15): Articles older than 180 days with enough impressions to need investigation.

  • Query overlap (+10): Searches appearing for multiple articles that may indicate content overlap.

Each page gets a Priority Score out of 100, with an explanation of which conditions it met.

The higher the score, the sooner AI looks at the article to determine whether it needs updating.

For example, a page ranking at position 12 could benefit from additional information to give it a push, even if its traffic hasn't declined.

A page losing 30% of its clicks might have no content problems at all. Search demand could have fallen.

The system also stores up to ten important queries per page, ordered by impressions, so AI can investigate the searches behind the numbers.

AI Investigates Search Intent, Competitors, and Content Accuracy

Shortlisted articles are passed to an AI research worker along with their content, performance data, and search queries.

The researcher examines:

  • Search intent: Whether the article still answers what people searching its main queries expect.

  • Competitors: Current ranking pages, their formats, and information missing from my article.

  • Content accuracy: Outdated statistics, product details, claims, and sources.

  • Internal overlap: Other articles targeting similar searches and possible keyword cannibalization.

  • SEO and GEO/AEO: Missing answers, content structure, source evidence, and opportunities to improve information coverage.

The AI has to identify the problem, explain its findings, and provide links to supporting sources.

For example, if a comparison article ranks at position 13, the researcher checks whether the competing results contain newer product information, different criteria, or sections that my article lacks.

It might recommend adding a missing table, replacing outdated pricing information, or improving a specific section.

If the evidence doesn't point to a content change, the system can flag the article for investigation instead.

The research also checks whether the problem might be technical, so a rankings decline doesn't trigger a content rewrite by mistake.

Google Sheets Manages the Research and Approvals

All the research findings are added to an Update Queue tab, which is where the first human in the loop enters.

Each row contains the article, priority score, reason for review, affected queries, research findings, evidence links, and proposed edits.

The update plan is divided into four fields:

  • Preserve: Sections, examples, citations, and information that should stay unchanged.

  • Add: Missing sections, new information, or additional evidence.

  • Rewrite: Existing content that needs improving.

  • Remove: Outdated, duplicated, or inaccurate information.

I can edit the proposed changes before approving anything.

There are three main decisions:

  • Approve: Accept the recommendation and move the article into the approved content tab.

  • Hold: Keep it in the queue while AI addresses my feedback.

  • Reject: Stop the proposed update.

I've also built in a feedback system.

If the suggested update is too extensive, misses an important source, or targets the wrong search intent, I can explain the problem directly in the column next to the decision.

That feedback is recorded and passed into relevant future AI tasks, so the same instructions inform later research and drafting.

AI Creates the Revised Article in Google Docs

Approved recommendations move into a second tab called Approved Content.

This contains the approved article outline, research sources, instructions, and an editable plan for the article.

Here I can edit any part of the update or leave feedback for AI to do it.

There are a few more decision selections in this tab that control the next AI run, self-explanatory, but say I am happy with the outline and changes then select ‘Complete’.

The AI then retrieves the existing published article and creates the updated version in Google Docs using the approved instructions.

I specifically designed this stage to preserve accurate existing content.

If only two sections need updating, I don't want AI rewriting the other ten, removing internal links, changing examples, or replacing good information.

It drops the link to the Google Doc in the sheet so I can just access it when I need to.

From the Sheet, I can request another revision, hold the draft, or mark it Complete.

I can also edit the document myself, and the automation includes version checks to prevent an older AI result from overwriting newer human changes.

Only a completed, approved draft can move to publishing.

Publishing and Performance Tracking Are Automated Too

My website is a static site deployed through Cloudflare.

After final approval, AI updates the existing article files, applies my publishing rules, and triggers the deployment.

It preserves the existing URL and handles the headings, internal links, images, metadata, and formatting.

The system then records the publication date and the Search Console performance from before the update.

Scheduled data collection continues, allowing me to compare the updated article against its previous performance.

I can inspect changes in clicks, impressions, CTR, average position, and the queries associated with the page.

If another problem appears later, the article can re-enter the research queue.

The previous update history is available, so I can see what changed and when.

Take it Further

This was an initial build that works for me and the way I like to structure my workflow.

It can become more complex. 

For example, once this was working, I vibecoded a whole CMS that used this as the function, and then I didn’t have to access the sheet. I had a dashboard with GA4 data, Bing data, Search Console, and AI search data from Semrush pulled together. 

It had so many features and was powered by a HUGE marketing brain that I spent weeks building. 

So you can adjust this and take it much further at scale. One recommendation though: start small and iterate when you build. Don’t jump into a huge CMS build with 100+ features because when small things don’t work, it becomes a nightmare to fix.

The Complete Build

To clarify, the only input I have in this process:

  • Review the suggested updates

  • Review the outlines

  • Review the draft

It saves hours of manual work and investigation.

I've documented the full automation in my article:

It includes the Google Sheets structure, scoring logic, individual setup prompts, approval stages, and a complete prompt you can give Codex or Claude Code to build a similar system for your website.

You can also adapt the same process to n8n, Zapier, or Make if you already use one of those platforms.