ilk.ai
Case study · autonomous content pipeline · in production since Jan 2026

The newsroom that would rather publish nothing than publish filler.

OstomyFan is a health newsroom that runs itself. Five research sources go in. Articles, narrated video, Shorts, and a weekly digest come out in three languages, every day, operated by one person. And on the days when the evidence is too weak, it publishes nothing, and says so. No agency can make that promise. This page shows the machine that keeps it.

0
articles published
95 EN · 104 TR · 94 ZH
0
languages,
published daily
0
independent
research sources
0
automated QA checks
on every draft
0
filler posts.
Ever.
FIGURES AS OF 2026-08-14 · RUNNING DAILY SINCE ~JAN 2026 · OPERATED BY 1 PERSON
“Is this actually autonomous, or a guy with ChatGPT?”

It runs whether or not anyone is at the keyboard.

Every day the machine wakes itself on launchd, the operating system’s own scheduler. It scans, filters, drafts, checks, and stages. Nobody is watching. The one thing it cannot do without a human is go public.

07:00
news scan #1: 5 sources swept
07:30
dispatch #1: draft · QA · stage
10:30
news scan #2
10:45
dispatch #2
14:00
news scan #3
14:15
dispatch #3
SUN
weekly digest: 7 days of video stitched, titled, thumbnailed, chaptered
The pipeline, stage by stage

Nine stages. Two gates. One human finger on the button.

Click a stage, or press play, and watch a day’s work move through the machine. The dashed red exits are the point: this pipeline is built to say no.

GDELT news indexPubMedEurope PMCClinicalTrials.govReddit · demandT1/T2 onlyapproveIngest5 sources · cronDedupelocal · $0/runQuality barevidence gateDraftClaude SonnetQA agent14 checksHuman gatetap to approveTranslateEN · TR · ZHMediaimage · voice · videoDistribute4 surfacesnothing clears the bar →publish NOTHING todayno human approval →never goes publicostomyfan.com ×3InstagramFacebook PagesYouTube EN + TR
Stage 1 of 9

Five sources, on the clock, no hands

Three times a day, the engine sweeps five independent sources: the GDELT global news index, PubMed, Europe PMC, ClinicalTrials.gov, and Reddit. Reddit gets special treatment. The engine reads only titles and rankings, never the posts, and uses them purely as a signal of what patients are asking about. Google Autocomplete and Search Console add what US readers actually type into the search box. Topics chase real demand, not a content calendar.

CADENCEscan 07:00 · 10:30 · 14:00, unattended
SOURCESGDELT · PubMed · Europe PMC · ClinicalTrials.gov · Reddit
DEMANDAutocomplete + Search Console → US search menu
The agent team

Not one model with a prompt. A staffed newsroom of agents.

One agent, the Director, runs the newsroom on Claude Sonnet. It reads the day’s state, picks topics, writes briefs, and hands the work out. Specialist agents take it from there. Expensive frontier models are spent only where judgement changes the outcome. Routine work runs on free local models, and everything that must never be improvised (fetching, gating, publishing, counting the money) is plain Python that does the same thing every time. That is engineering, not prompting.

Director · Claude Sonnetreads state · picks topics · briefs · dispatchesreview draftapprove / revise / rejectBrand GuardianQA subagent · isolated context14 checks per drafttranslator-parityverifier subagentnumbers · sources · meaningLocal models · Ollamagemma · nomic-embed-text$0 per run, on-deviceCodex CLIpublisher APIwrapper codeMCP tool serversmedia generationcalled as toolsDeterministic Pythonfetching · gating · publishing · budget accounting. Never improvised.

The right model for every job

Claude Sonnet directs and writes. DeepSeek translates Chinese. Two small local models, gemma and nomic-embed-text, handle routine translation and story clustering on the operator’s own machine. The API bill for that work is zero.

No agent grades its own homework

The Director produces. The Brand Guardian judges, from a separate context that cannot see how the draft was made. It returns approve, revise, or reject. Producer and approver are never the same mind.

Agents delegate to agents

The Director hands the publisher’s plumbing code to Codex CLI, media generation to MCP tool servers, and translation checks to a verifier agent. Plain Python owns everything that must not be improvised.

Model-agnostic by design

Built around jobs, not around one vendor’s model.

Every stage declares what it needs. Any model that clears the bar can be dropped in. So the whole operation tunes to a budget, instead of handing the client a fixed bill.

frontier modelwhere judgement countscheaper API modelchosen per language, per costlocal model · $0routine work, off paid APIsinterchangeableOne pipeline stagedeclares the bar it needsgates stay identicalswap = one environment variable
  • Several vendors and price points run in production at once: Claude for editorial judgement, DeepSeek for Chinese translation, local Ollama models for clustering and routine translation at $0, and separate engines for images, video, and speech.
  • The editorial model is one environment variable, a single configuration setting. Swapping it is an edit, not a rewrite.
  • The image stage already runs a four-tier fallback across different providers, stepping down automatically when one is out of credit, unavailable, or too expensive. Not a plan on a slide. It runs every day.
  • Routine work never touches a paid API. It runs locally, on purpose.

What that means for a buyer: tell me the budget and I will configure the engine to it. A lean build leans harder on local and cheap models; a premium build spends frontier-model money only where judgement actually changes the output. The workflow, the gates, and the guarantees stay identical either way. What changes is the cost, not the discipline.

Control surfaces

Approved from a phone. Audited from one screen.

Autonomous does not mean unsupervised. The operator carries the publish gate in a pocket, and the whole operation reports to a single private dashboard.

The Telegram gate

When a draft clears review, it lands on the operator’s phone as a Telegram message with two buttons. One tap approves or rejects. The bot then edits its own message to record the decision, so the chat history shows exactly what was decided and when. Nothing reaches the public site without that tap. The buttons are in Turkish because the operator is.

OF
OstomyFan Studio Bot
bot · inline keyboard
Yeni taslak · onay bekliyor
“Örnek makale başlığı” (temsili)
Kaynak: T1 · sistematik derleme
QA: 14/14 geçti · Diller: EN · TR · ZH
after the tap, the bot edits the same message:
✓ Onaylandı · durum güncellendi · butonlar kaldırıldı

Illustration of the real flow, not a screenshot. The sample title is deliberately generic.

The ops dashboard

A private dashboard runs behind GitHub sign-in, and exactly one account is allowed in. One screen shows what is queued, what shipped, what it cost, what is planned, and what the research sweep surfaced. Its admin panel is the web twin of the Telegram gate. The buyer is never handed a black box.

🔒 ops · GitHub OAuth
Overview
Queue
Published
Budget
Calendar
Research
Admin
Published
293
Queue
···
Budget
···

Schematic view. The real dashboard is private; the only real figure shown is the published count.

Engineering discipline

Built like infrastructure, not like a content hack.

For a technical buyer, this is the section that matters. These are the guardrails that let one person sleep while the machine runs.

The budget cannot be gamed

Paid generation runs under a hard spending cap with an automatic stop. The guard keeps two separate account books and always believes the more expensive one. If one book breaks or lies, the machine assumes the worst and stops.

Hung jobs die cleanly

Every unattended run carries a watchdog timer. A stuck job is killed, fails loudly, and the next scheduled slot retries it. Nothing stacks up. Nothing waits for a human to notice.

The robot cannot press publish

A publish gate refuses any article promoted to public inside an automated run. Going live requires the human’s own commit. That rule lives in code, not in policy or good intentions.

Malformed files page a human

Every file is checked before it is saved. A broken one pages the operator immediately, instead of vanishing into the pipeline and surfacing as a silent gap days later.

EU AI Act, already handled

Every generated image carries a machine-readable marker saying AI made it (IPTC DigitalSourceType), because the EU AI Act asks for exactly that. Every article and every account bio disclose the AI assistance.

Licensing respected by design

Google News was removed from the pipeline over its terms of service and replaced with open data (GDELT). Mayo Clinic is never a solo source, and its text is never fed to a model. Reddit contributes titles and rankings, never quotes.

The uncomfortable comparison

What a retainer buys. What an engine does.

A typical agency retainer

  • A handful of posts per month, written to a content calendar, not to the evidence.
  • “Studies show…” with nothing attached. Ask for the actual study behind a claim and watch the thread go quiet.
  • A quota to hit, so on a slow news week filler ships anyway.
  • One language. Video, narration, and translation are separate line items.
  • QA is a proofread. Compliance is your legal team’s problem.

This engine

  • Daily output in three languages: article, hero image, narration, 16:9 master, 9:16 Short, weekly digest.
  • Every claim ships with its source link, evidence grade, study type, and the date it was checked. As data a program can verify, not prose.
  • No quota. When the evidence is weak, it publishes nothing and says so.
  • 14 automated checks plus a human gate on every single piece, every day.
  • AI-provenance marking, disclosure, and source licensing built into the pipeline itself.

Full disclosure:there are no client logos on this page, because there are no clients yet. OstomyFan is my own brand, and this engine has been running it in production every day since January 2026. That is the proof: 293 published articles across three languages, zero filler, one operator. Your brand would be the first, and it would get the operator’s full attention.

The offer

I’ll build this engine for your brand. And run it.

This is a done-for-you operation, not software you install. I adapt the pipeline to your evidence sources, your voice guide, and your compliance rules; I deploy it, monitor it, and keep it honest. Your team keeps exactly one job: the approve button. If you sell to ostomy, IBD, or any health audience that deserves better than filler, this machine already exists. It just isn’t wearing your logo yet.

What running it for you means
  • The full pipeline, tuned to your brand: sources, evidence bar, QA checklist, voice.
  • Daily evidence-gated articles plus image, narration, Shorts, and a weekly digest.
  • Up to three languages with structural parity checks on every translation.
  • Your medical reviewer holds the human gate: one tap to approve, from a phone.
  • Configured to your budget: lean local build or premium frontier build, same gates either way.
  • Run and monitored by me, the person who built and operates the original.
Email me: run this for my brand

ilkay.demiralay@gmail.com. Tell me your brand and your audience; I’ll reply with how the engine would look wearing your logo.