The problem
The agency sells to three audiences in three languages. Publishing authority content for all of them, at the cadence search engines reward, costs what an editorial agency charges: tens of thousands a year.
Machine translation was not an option either: a French investor and a Berlin local do not need the same article, they need different arguments.
What I built
A form takes a topic. Forty-nine nodes later, six Google Docs exist: a proofreading copy and a ready-to-paste HTML copy, in German, English and French, each with meta description, structured data, tags and internal links.
- Keyword expansion from Google's own autocomplete: free, no API key, real search data.
- One master article, then two persona adaptations: German locals, international expats, French-speaking investors.
- Internal links chosen from the live sitemap, bucketed per language.
- A third mode that takes an article somebody else wrote and translates and formats it through the same chain.
- Every run emails a summary, with a warning banner in the subject line if any stage degraded.
Select a real-world topic to watch how the 49-node pipeline expands user search intent via Google Autocomplete and crafts 3 distinct strategic angles—never a literal translation.
How it works
Nothing reaches the website without a person reading it first.
Under the hood
Adaptations, not translations
The English and French articles are written for different readers, not translated from the German. The expat needs to know what a Milieuschutz zone means for them; the investor needs the yield implications; the local needs neither explained.
TRADE-OFF Three prompts to maintain instead of one translation call, plus three focus keywords, generated per language, instead of a German keyword awkwardly jammed into a French sentence.
AI detectors disagree with each other
An article scored 82% “AI” on one detector. I rewrote the voice, tested five strategies, and got it to a modest improvement. Then I ran the same text through a second detector: 27% AI, “strongly convinced this was written by a human”.
Worse, the optimisation was making the prose worse: forcing burstiness produced a mechanical rhythm of its own, which is just a new tell.
DECISION Stop. Search engines do not penalise AI writing, they penalise bad writing. The only lever that survives scrutiny is a human editor.
One greedy regex, literal asterisks in every FAQ
The Markdown-to-HTML converter matched bold as \*\*([^*]+)\*\*, a character class that forbids an internal asterisk. Any nested emphasis, like a bolded question containing an italicised term, fell straight through and shipped as literal asterisks on the live site.
FIX A lazy match, \*\*(.+?)\*\*, applied before italics. Reproduced in Node first, on the exact failing string, before touching the workflow.
Never publish automatically
The pipeline can write directly to the CMS. It doesn't. It produces documents, and a person decides.
TRADE-OFF Slower. But a mediocre article published automatically costs more, in brand and in search ranking, than the twenty minutes of reading it saved.
Results
Articles in three languages, around 1,400 to 1,800 words each, for roughly thirty cents in model costs. The pipeline degrades gracefully: when one adaptation fails, the other two languages still ship, and the notification email says so in its subject line rather than reporting a cheerful success.
Still open. Internal links occasionally come back empty, swallowed by a silent catch three layers down. The warnings are now surfaced to the email; the root cause is next.
Stack
- n8n, self-hosted: 49 nodes, one linear pipeline, three input modes
- Gemini 2.5 Pro / Flash: article, adaptations, metadata, internal linking
- Google Autocomplete: keyword expansion, free and unauthenticated
- Google Drive & Docs API: six documents per run
- Sitemap parsing: internal links resolved per language
What I took away
I spent a full day trying to beat an AI detector, and the thing I learned was that the detectors are noise: the same paragraph, unchanged, scored 82% and 27% on two of them.
Optimising against a metric you have not validated is how you make a product worse while feeling productive.