The content engine that watches the market for you.
Every trend, turned into content your channels can post.
- One scan turns a single trend into drafts for every channel.
- Nothing ships until a human approves, edits or rejects it.
- Three brands, one engine, each with its own sources, prompts and voice.
- Client / status
- BOLD Precious Metals & MineralView · in production
- Business outcome
- One trend → platform-ready drafts in hours
- Risk control
- Human approval before anything ships · per-call cost audit
- What we delivered
- Architecture, build, operate
The market moves faster than any content team.
One pipeline. Three live brands. One codebase. Each scan reads feeds, video channels and data APIs, ranks what matters, and turns the winners into per-platform drafts. Nothing ships until a human clicks approve.
Trend intelligence
Dozens of sources, normalized and de-duplicated, then scored for relevance, credibility and urgency. It reads the full article, not just the headline.
Multi-channel drafts
One insight becomes LinkedIn, X, Facebook and Instagram copy, blog and newsletter drafts, plus YouTube and Reels scripts. All in one scan.
Video pipeline
Approved Reels scripts feed a storyboard generator that plans the video shot by shot, with continuity held across scenes. The front half of a full AI video subsystem.
A deterministic DAG, not a chatbot with tools
Every scan is an explicit graph of nodes: Python worker, PostgreSQL, Next.js review UI. Deterministic order, per-node logging, per-node rerun. When one node misbehaves, we rerun that node, not the pipeline.
- 🔁
Scan engine
Discover, score, draw the insight, pick the formats, draft. An explicit node graph, resumable on failure, with any node re-runnable in isolation.
- 🚦
Multi-provider router
Picks the model per task across OpenAI, Gemini and others, with automatic fallback and a cost circuit-breaker.
- 🎥
Storyboard generator
Gemini turns an approved Reels script into renderer-neutral scenes of 3 to 8 seconds, narration sliced per scene, durations validated against spoken length.
- 🔌
Anti-lock-in IR
Storyboards carry zero provider vocabulary. A thin adapter per video model compiles neutral scenes into that provider's format, so adding a renderer is one file.
The problems only production finds
Four we hit running this unattended, and what we changed.
Budget models flatten scripts
A budget model cut cost 30x, then silently dropped the on-screen and b-roll cues that make a script filmable. We now tier by task: premium for video scripts, budget for short captions.
Headline-only sources
Aggregator feeds carry headlines with no body, so the drafts came out thin. Direct publisher feeds fixed it: we now favour insights with enough substance to write from.
Zombie scans
A hard-killed worker leaves scans stuck in "running" forever. Workers now claim rows atomically (SKIP LOCKED) and a reaper sweeps stale runs, so the pipeline survives crashes and scales.
Every clip a different world
Naive per-scene prompts give each shot its own lighting, palette and props. Storyboards now carry a shared continuity anchor and a style reference threaded through every scene.
From feed to feed-ready
One deterministic graph from source to feed-ready, colour-coded by what runs in production today.
Sources
Publisher RSS
rss · atom · sitemap
YouTube
channel + trending
Structured APIs
EIA · RRC (Socrata)
Per-brand
BOLD · MineralView
Content scan · DAG (TS-defined, Python-run)
Discover
normalize + de-duplicate
Score
relevance · urgency · virality
Insight
why it matters here
Decide formats
per platform, buildable-first
Draft content
posts · blog · long + short scripts
Human review · Next.js UI
Review actions
writes content_reviews
Version history
list & set active version
Manual rerun
regenerate as a new version
Storyboard · Gemini (standalone)
Renderer-neutral scenes
3–8s · continuity anchor + style reference
Writes JSON
video_jobs.storyboard_json
Async render subsystem · not built
Render worker
scene = unit of retry
Provider adapters
still → QA → animate
TTS voiceover
word-accurate script
Compositor
clips + VO + captions
QA gate → review
then publish
Platform services · shared by every node
PostgreSQL (Neon)
drafts · jobs · reviews
AI-call audit log
prompt · tokens · cost · latency
Prompt Manager
versioned templates + rollback
Provider router
Gemini ⇄ OpenAI + rate-limit breaker
What it changes
Business outcomes for the brands, engineering outcomes for the team that operates it.
Days → hours
Monitoring, scoring and drafting run unattended. The team approves instead of producing.
Platform-ready
One insight becomes drafts for social, blog, newsletter and video. No rewriting by hand.
3 brands, 1 engine
Each brand keeps its own sources, prompts and voice. Onboarding is a source list, not a fork.
| Outcome | What it means in practice |
|---|---|
| Predictable spend | A measured multi-scan baseline pins cost per node. Task-tiered routing cut projected monthly API spend ~25% with no hit to video quality. |
| No silent failures | Schema-enforced outputs, non-empty guards and the stale-run reaper mean a bad scan surfaces as a logged failure, not a quietly thin draft. |
| Full audit trail | For any published piece, we can show exactly which source, prompt version and model produced it. |
Send us a YouTube channel. Get the audit back.
Not a demo and not a deck. We point the same engine at your last 50 videos and send back what it finds: a health score, rewritten titles, timestamped fixes. Free, no obligation, back in two working days.
Want a content engine like this?
Realisier Labs designed, built and runs Trendelier. If your team is drowning in content, we can build an engine tuned to your industry, your sources and your voice.
Start the conversation