Content Operations Platform

From Raw Discovery to Delivered Scripts, Fully Automated

Content teams needed repeatable script generation across multiple clients, but manual workflows introduced delays and inconsistent quality. We built a multi-tenant automation platform that discovers content, fact-checks it, generates scripts, and delivers them directly to project management tools.

Business Impact

96%cost cut

Content discovery spend reduced per client

Business Impact

Executive Outcomes

96%cost reduction

Discovery API spend dropped from 96 calls/day to 1 per client

< 24hr turnaround

Scripts go from topic discovery to ClickUp the same day

100%hands-free

Fact-checking and delivery run without human intervention

95%gross margin

Near-zero production cost lets every new client drop straight to profit

The Challenge

The agency was producing short-form video scripts for multiple clients. Each client had different topics, prompts, and preferences. The manual process involved fragmented intake spread across tools, inconsistent script style, and high overhead for status tracking and delivery.

Script production was manual and fragmented, with content scattered across different tools for each client

Topic discovery, fact-checking, and script generation each required separate human effort on every piece

Tavily was burning 96 API calls per day per client due to aggressive 15-minute discovery cycles

No consistent quality control meant scripts varied widely in style and factual accuracy across clients

Delivery to project management tools was manual, with frequent duplicate submissions and status confusion

The Transformation

What changed after we built the system

Before

Script production was manual and fragmented, with content scattered across different tools for each client

After

Sheet-driven control lets each client manage topics, prompts, and preferences without engineering support

Before

Topic discovery, fact-checking, and script generation each required separate human effort on every piece

After

Automated pipeline discovers content, fact-checks claims, and generates scripts end-to-end

Before

Tavily was burning 96 API calls per day per client due to aggressive 15-minute discovery cycles

After

Separated sync and discovery schedules reduced Tavily from 96 calls/day to 1 call/day per client

Before

No consistent quality control meant scripts varied widely in style and factual accuracy across clients

After

Fact-checking pass runs before every script generation, keeping output factually grounded and cited

Before

Delivery to project management tools was manual, with frequent duplicate submissions and status confusion

After

Generated scripts deliver directly to per-client ClickUp lists with dedup and status tracking

How separating sync from discovery cut costs 96x

The original architecture ran both settings sync and content discovery on a single 15-minute schedule. Every cycle, the system would sync client preferences from Google Sheets and simultaneously hit Tavily for fresh topics.

The problem: topic discovery is expensive and does not need to run every 15 minutes. News articles and social media posts do not appear that fast. But settings changes, like a client updating a prompt or adding a topic keyword, do need to propagate quickly.

Splitting into a 15-minute sync job (lightweight, settings only) and a daily discovery job (heavier, API calls) reduced Tavily usage from 96 calls per day to 1 call per day per client. The system responds to settings changes within minutes while keeping API costs under control.

How We Built It

Technical architecture for the curious

Control Plane

Each client manages their own settings in Google Sheets. Non-technical teams tune behavior without code changes.

Google SheetsClient TopicsPrompt ConfigPreferences

Discovery

Multi-source content discovery with daily scheduling. Web, social, and video content converge into a shared flow.

Tavily Web SearchApify InstagramVideo Transcription

AI Processing

Claims are extracted and verified against retrieved sources before script generation. Per-client prompts drive output style.

OpenRouterClaim ExtractionFact-checkingScript Generation

Data

Tenant-isolated state with row-level security. 10 migrations support the schema evolution of a growing client base.

SupabaseMulti-tenant RLS10 Schema Migrations

Delivery

Scripts land in the right ClickUp list automatically. Dedup prevents duplicate deliveries across runs.

ClickUp Per-client ListsURL DedupDraft DedupStatus Tracking
Trigger.dev v4
Supabase
Google Sheets
Tavily
Apify
OpenRouter
ClickUp
TypeScript

Engineering Decisions

Tradeoffs we made and why

Separated 15-minute sync and daily discovery schedules

Benefit

Cut Tavily API costs from 96 calls/day to 1 call/day per client

Cost

Content discovery is only as current as the last daily run, not real-time

Google Sheets as the client-facing control plane

Benefit

Non-technical teams can tune behavior without code changes or engineering tickets

Cost

No built-in validation on sheet inputs, requiring defensive parsing in the pipeline

Mandatory fact-checking before script generation

Benefit

Claims are verified against retrieved sources before appearing in any script

Cost

Adds latency and API cost to every script generation run

Supabase with RLS for tenant state instead of shared Google Sheets

Benefit

Proper relational queries, tenant isolation, and schema migration support

Cost

Higher operational complexity compared to a spreadsheet-based state layer

Certain client names, proprietary workflows, screenshots, and internal assets referenced in this case study are protected under a non-disclosure agreement and have been anonymized or omitted to comply with our confidentiality obligations.

Need content operations that scale without burning budget?

Book a free 30-minute call. We will map your content pipeline, identify the biggest cost drivers, and design automation that scales with your client base.

30 minutes with Apurva. Not a sales call.

Book Your Free Audit