AI-Powered Brand Content Pipeline
AI agent team gets an idea, researches it live, collaborates, and produces all content types for all platforms. Human approval via Slack. 130+ posts/month across 3 brands for ~$64/mo.
An AI-powered content pipeline for 3 brands. An agent team gets an idea, researches it live, collaborates, and produces all content types for all social media platforms. Human approval via Slack. Automatic publishing.
Phased approach: Phase 1 ships a working content pipeline with no centralized knowledge base — agents research live, collaborate, and produce. Phase 2 adds competitor intelligence, RAG knowledge base, and analytics feedback loops.
Three Brands:
| Brand | Domain | Category | Current Presence |
|---|---|---|---|
| dokwallet | dokwallet.com | Crypto wallet | App Store + Play Store, basic social |
| doktransfers | doktransfers.com | File transfer | Web app, minimal social |
| vesappsai | vesappsai.com | AI chat | Web app, growing user base |
Pipeline (Phase 1): Idea → Live research → Agent team produces content → Human approval via Slack → Publish to all platforms
Pipeline (Phase 2): Scrape competitors → Analyze patterns → Knowledge base → Enhanced ideation → Agent team → Approval → Publish → Analytics feedback
| Topic | Decision |
|---|---|
| Project name | content-factory |
| Monorepo | Yes, single Python repo |
| Platforms | LinkedIn, Facebook, Instagram, X/Twitter, TikTok, YouTube Shorts, branded blogs |
| Content types | Post, blog, reel, story, short, video, image, carousel, thread, poll, infographic |
| Workflow engine | n8n (scheduling/HITL/Slack) + CrewAI or ADK (agents) |
| Database (Phase 1) | PostgreSQL 16 (plain JSONB, no extensions) |
| Database (Phase 2) | PostgreSQL 16 (pgvector + Apache AGE) |
| Content calendar | Postiz or mixpost |
| Batch execution | Claude Code CLI batch mode |
The factory produces all content types across all major platforms. Below is the full spec sheet with AI production cost per unit (Quality tier models).
| Content Type | Dimensions | Aspect Ratio | Duration / Limits | AI Production Cost |
|---|---|---|---|---|
| Feed Post (image + caption) | 1080x1350 | 4:5 | Caption: 2,200 chars | $0.09 (1 image $0.055 + text ~$0.03) |
| Carousel | 1080x1350 per slide | 4:5 | 2-20 slides, 2,200 chars | $0.39 (6 images $0.33 + text ~$0.06) |
| Story | 1080x1920 | 9:16 | 15s per frame, 24h expiry | $0.09 (1 image $0.055 + text ~$0.03) |
| Reel | 1080x1920 | 9:16 | 15-90s, max 4GB | $0.57 (30s video $0.21 Seedance + text ~$0.03 + TTS ~$0.00 + captions ~$0.03 + thumbnail $0.055 + assembly ~$0.20) |
| Reel (template) | 1080x1920 | 9:16 | 15-90s | $0.14 (3 images $0.055 + text ~$0.03 + music + MoviePy assembly) |
| Content Type | Dimensions | Aspect Ratio | Duration / Limits | AI Production Cost |
|---|---|---|---|---|
| Text Post | — | — | 3,000 chars | $0.03 (text only, ~500 tokens out) |
| Image Post | 1200x627 or 1080x1080 | 1.91:1 or 1:1 | Caption: 3,000 chars, image <10MB | $0.09 (1 image $0.055 + text ~$0.03) |
| Carousel / Document | 1080x1080 per slide (PDF) | 1:1 | 1-300 pages, max 100MB | $0.48 (8 slides $0.055 + text ~$0.04) |
| Video Post | 1920x1080 or 1080x1920 | 16:9 or 9:16 | 3s-10min, max 5GB | $0.87 (30s video $0.21 + text ~$0.03 + TTS + thumbnail + assembly) |
| Article | 1200x627 featured image | 1.91:1 | 125,000 chars (~20K words) | $0.26 (1500 words text ~$0.20 + 1 featured image $0.055) |
| Newsletter | 1200x627 header | 1.91:1 | Same as article, sent to subscribers | $0.26 (same as article) |
| Content Type | Dimensions | Aspect Ratio | Duration / Limits | AI Production Cost |
|---|---|---|---|---|
| Feed Post (image) | 1080x1350 | 4:5 | Caption: 63,206 chars | $0.09 (1 image + text) |
| Carousel | 1080x1080 per card | 1:1 | 2-10 cards | $0.42 (6 images + text ~$0.06 + link per card) |
| Story | 1080x1920 | 9:16 | 20s per frame, 24h expiry | $0.09 (1 image + text overlay) |
| Reel | 1080x1920 | 9:16 | 15-90s, max 4GB | $0.57 (same as IG Reel) |
| Video Post | 1280x720 min | 16:9 or 9:16 | Up to 240min, max 10GB | $0.87 (30s AI video + text + assembly) |
| Content Type | Dimensions | Aspect Ratio | Duration / Limits | AI Production Cost |
|---|---|---|---|---|
| Tweet (text only) | — | — | 280 chars (free) / 25,000 (Premium) | $0.01 (minimal tokens) |
| Tweet + Image | 1600x900 or 1080x1080 | 16:9 or 1:1 | Up to 4 images, 5MB each | $0.09 (1 image + text) |
| Thread | — | — | Up to 25 tweets, 280 chars each | $0.06 (text only, ~5 tweets, ~$0.01 each) |
| Video Tweet | 1920x1080 or 1080x1920 | 16:9 or 9:16 | Up to 140s (free) / 4h (Premium) | $0.57 (30s video + text) |
| Content Type | Dimensions | Aspect Ratio | Duration / Limits | AI Production Cost |
|---|---|---|---|---|
| Short Video | 1080x1920 | 9:16 | 15s-10min (up to 60min upload) | $0.57 (30s AI video + text + captions) |
| Photo Carousel | 1080x1920 | 9:16 | 4-35 slides | $0.48 (8 images + text + music) |
| Story | 1080x1920 | 9:16 | 15s, 24h expiry | $0.09 (1 image + text overlay) |
| Content Type | Dimensions | Aspect Ratio | Duration / Limits | AI Production Cost |
|---|---|---|---|---|
| Short | 1080x1920 | 9:16 | Up to 3min, max 60s recommended | $0.57 (30s AI video + text + captions) |
| Standard Video | 1920x1080 | 16:9 | Up to 12h, max 256GB | $3.50+ (3min AI video ~$2.50 + script ~$0.20 + TTS ~$0.10 + thumbnail + assembly) |
| Community Post | 1080x1080 | 1:1 | 7,000 chars + image/poll | $0.09 (image + text) |
| Content Type | Dimensions | Aspect Ratio | Duration / Limits | AI Production Cost |
|---|---|---|---|---|
| Standard Pin | 1000x1500 | 2:3 | Description: 500 chars, title: 100 chars | $0.09 (1 image + text) |
| Idea Pin | 1080x1920 per page | 9:16 | 2-20 pages, mix of image/video | $0.48 (8 images + text) |
| Video Pin | 1000x1500 or 1080x1920 | 2:3 or 9:16 | 4s-15min | $0.57 (30s video + text) |
| Content Type | Dimensions | Aspect Ratio | Duration / Limits | AI Production Cost |
|---|---|---|---|---|
| SEO Article | 1200x630 featured image | 1.91:1 | 1000-2000 words, SEO meta | $0.36 (text ~$0.25 + featured image $0.055 + SEO meta ~$0.05) |
| Long-form Article | 1200x630 + inline images | 1.91:1 | 2000-5000 words, 3-5 images | $0.75 (text ~$0.40 + 5 images $0.28 + SEO ~$0.05) |
| Infographic | 1080x3000+ | ~1:3 tall | Data visualization | $0.30 (data research ~$0.10 + image generation ~$0.15 + text ~$0.05) |
| Content Type | Cost | What’s Included |
|---|---|---|
| Text-only post | $0.01-0.03 | LLM text generation, platform formatting |
| Image post | $0.09 | 1 Flux Pro image + caption text |
| Carousel (6-8 slides) | $0.39-0.48 | Multiple images + text per slide |
| Story (image) | $0.09 | 1 image + text overlay |
| Reel/Short (AI video, 30s) | $0.57 | Seedance 1.5 video + text + captions + thumbnail |
| Reel/Short (template, 30s) | $0.14 | 3 images + MoviePy assembly + music |
| Thread (5 tweets) | $0.06 | Text only, multi-part |
| Blog article (SEO) | $0.36 | 1500 words + featured image + SEO meta |
| Long-form blog (5 images) | $0.75 | 3000 words + 5 images + SEO |
| Video post (30s AI) | $0.87 | AI video + script + TTS + thumbnail + assembly |
| LinkedIn article | $0.26 | 1500 words + featured image |
| Infographic | $0.30 | Data research + tall image + text |
Cost assumptions (Quality tier): Text via Claude Sonnet 4.6 (~$0.01/500 tokens out), Images via Flux Pro 1.1 ($0.055/image), Video via Seedance 1.5 no-audio ($0.21/8s clip), TTS via Google Cloud free tier, Assembly via MoviePy/FFmpeg (free). All costs are AI generation only — no infrastructure.
Monthly output across 3 brands: 130+ posts/month
| Format | Count/month |
|---|---|
| LinkedIn posts + threads | 40 |
| Carousels (IG/FB/LI) | 30 |
| Blog articles | 12 |
| Reels / Shorts (IG/TikTok/YT) | 30 |
| Stories | 18 |
| Polls + Infographics | 10 |
Server: Hetzner CPX41 — 8 shared vCPU, 16GB RAM, 240GB NVMe — ~$21/mo
Docker Compose — 6 containers:
| Container | RAM | Purpose |
|---|---|---|
app (FastAPI) |
512MB–1.5GB | All services as modules |
postgres |
1.5GB | Document DB (Phase 1: JSONB only; Phase 2: +pgvector +AGE) |
n8n |
512MB | Scheduling, Slack HITL, workflows |
postiz or mixpost |
512MB–1GB | Content calendar UI |
redis |
128MB | Required by n8n + Postiz |
caddy |
64MB | Reverse proxy + auto HTTPS |
| Total | ~4–5GB | Fits easily on 16GB |
Monthly cost: ~$26 (server $21 + backup $5)
Migration path to Fargate: 5–8 days effort when revenue justifies $300+/mo.
| Option | Monthly Cost | Notes |
|---|---|---|
| Hetzner VPS (recommended) | ~$26 | Best value, Docker Compose |
| AWS Fargate | ~$300–420 | Managed, follows vest-ai-cdk |
| GCP Cloud Run | ~$105–115 | Scale-to-zero |
| Hybrid VPS + Free Tiers | ~$22–28 | Risk: free tier expiry |
| Provider | Price/mo |
|---|---|
| Hetzner CPX41 | ~$21 |
| Contabo | ~$12–15 |
| DigitalOcean | ~$96 |
| Vultr | ~$96 |
Phase 1: Simple PostgreSQL 16 — plain JSONB for content drafts, brand configs, publish logs, cost ledger. No vector/graph extensions needed.
Phase 2: Unified PostgreSQL 16 with extensions:
| DB Role | Solution | Notes |
|---|---|---|
| Document DB | PostgreSQL JSONB | 90–95% of MongoDB for this use case |
| Vector DB | pgvector extension | Good for <500K vectors |
| Graph DB | Apache AGE extension | Cypher queries, content relationships |
| Object Storage | S3 / Hetzner / R2 | Generated media, templates, brand assets |
Scale-up path: Split to dedicated FalkorDB (graph) + Qdrant (vector) when needed.
| Phase | Model | Cost/mo |
|---|---|---|
| All LLM phases | Gemini 2.0 Flash | ~$2 |
| Images (195) | Flux Schnell ($0.015/img) | ~$3 |
| Video (24 reels) | Template-based (MoviePy + FFmpeg) | ~$0.24 |
| TTS | Google Cloud TTS free tier | $0 |
| Total | ~$15 |
The quality tier uses the best model for each phase: fast/cheap models for routing and analysis, premium models for creative writing. Prompt caching (brand guidelines ~3K tokens, system prompts ~1.5K) saves an estimated $10–25/mo since cache reads cost 10% of input price.
| Phase | Model | Cost/mo |
|---|---|---|
| Routing/decisions (650 calls) | Gemini 2.0 Flash | $0.12 |
| Research agents | Gemini 2.5 Flash | $2–3 |
| Ideation | Claude Sonnet 4.6 | $0.83 |
| Writing | Claude Sonnet 4.6 | $8–10 |
| Editing | Claude Sonnet 4.6 | $4–5 |
| SEO/analytics | Gemini 2.5 Flash | $1–2 |
| Image prompts | Gemini 2.5 Flash | $0.50 |
| Images (195) | Flux Pro 1.1 ($0.055/img) | ~$5 |
| Video (24 reels) | Template + 6 AI (Seedance 1.5) | ~$6 |
| TTS | Google Cloud TTS free tier | $0 |
| Total | ~$38 |
| Phase | Model | Cost/mo |
|---|---|---|
| All LLM phases | Claude Opus 4.6 | $64 |
| Images (195) | Ideogram v3 Quality | $18 |
| Video (24 reels, 45s avg) | Veo 3.1 4K + audio | $655 |
| TTS | ElevenLabs Pro plan | $99 |
| Total | ~$836 |
| Scale | Posts/mo | AI Cost/mo |
|---|---|---|
| 3 brands | 130 | ~$38 |
| 6 brands | 260 | ~$65 |
| 10 brands | 430 | ~$100 |
| 1000 posts | 1000 | ~$180 |
| Budget | Quality | Premium | |
|---|---|---|---|
| Hetzner VPS + backup | $26 | $26 | $26 |
| AI costs | $15 | $38 | $836 |
| Monthly total | ~$41 | ~$64 | ~$862 |
Benchmarked against the northern_lights_iceland reel
produced with neural-reels (Veo 2.0 via Vertex AI):
| Spec | Value |
|---|---|
| Model | Veo 2.0 (veo-2.0-generate-001) |
| Scenes | 7 clips, 8s each |
| Resolution | 720x1280 (9:16 portrait) |
| FPS / Codec | 24fps, H264 |
| Final reel | ~81s assembled, 13.3MB |
| Model | Per Clip | Per Reel (7 clips) | Audio | Platform | Quality Tier |
|---|---|---|---|---|---|
| Veo 2.0 (baseline) | $3.40 | $23.80 | No | Vertex AI | High |
| Veo 3.1 Fast | $1.20 | $8.40 | Yes | Vertex AI | Very High |
| Runway Gen-4.5 | ~$1.00 | $7.00 | No | Direct API | Best (Elo #1) |
| Kling 3.0 | ~$1.00 | $7.00 | No | Direct API | Very High (Elo #3) |
| Vidu Q3 | $0.66 | $4.62 | Yes | Direct/Novita | High |
| Hailuo 02 Pro | $0.64 | $4.48 | No | fal.ai | Very High (#2 benchmarks) |
| Seedance 1.5 Pro | $0.41 | $2.87 | Yes (48kHz) | fal.ai | High |
| Runway Gen-4 Turbo | $0.40 | $2.80 | No | Direct API | Very High |
| Wan 2.1 | $0.40 | $2.80 | No | fal.ai | High (best open-source) |
| Hailuo 02 Std | $0.36 | $2.52 | No | fal.ai | High |
| Pika 2.2 | $0.32 | $2.24 | No | fal.ai | Good-High |
| LTX-2.3 Fast | $0.32 | $2.24 | No | fal.ai | Good (open-source) |
| Seedance 1.5 (no audio) | $0.21 | $1.47 | No | fal.ai | High |
| CogVideoX | $0.20 | $1.40 | No | fal.ai | Below |
| LTX-Video | $0.06 | $0.42 | No | Replicate | Lower |
Seedance 2.0 is geo-locked to mainland China (Jimeng/Doubao). International API launch indefinitely delayed due to copyright lawsuits from Disney, Netflix, Paramount, Sony, and Warner Bros.
| Aspect | Detail |
|---|---|
| Access | Requires +86 phone + mainland China IP |
| API status | Indefinitely delayed (was planned Feb 24, 2026) |
| Copyright issue | MPA + major studios issued cease-and-desist over training data |
Proxy services analysis: Most services advertising “Seedance 2.0” actually serve Seedance 1.5 Pro. Only Kie AI credibly had 2.0, but deactivated it.
| Provider | Actual Model | Cost (8s video) | Legitimate | Recommended |
|---|---|---|---|---|
| Atlas Cloud | 1.5 Pro (NOT 2.0) | $0.18 | Yes | YES |
| fal.ai | 1.5 Pro | $0.41 (with audio) | Yes | YES |
| BytePlus (official) | 1.5 Pro | $0.49–0.99 | Yes | YES (enterprise) |
| Kie AI | 2.0 (deactivated) | $0.30 | Uncertain | NO |
| laozhang.ai | Unverified | $0.08 est. | Uncertain | NO |
Recommendation: Do NOT rely on Seedance 2.0 proxies for commercial production. Use Seedance 1.5 Pro (legitimate, stable) or alternatives at similar quality: Veo 3.1 Fast, Kling 3.0, Hailuo 02 Pro. Seedance 2.0 quality is meaningfully better than 1.5 Pro (9/10 vs 7.5/10), but compliance risks (ToS violation, data privacy, service stability) make proxy access unsuitable for production.
| Tier | Approach | Monthly (24 reels) |
|---|---|---|
| Budget | Template-based (MoviePy + FFmpeg) | ~$0.24 |
| Quality | Template + Seedance 1.5 or Hailuo 02 Std for hero content | ~$5–15 |
| Premium | All AI-generated via Veo 3.1 or Runway Gen-4.5 | ~$170–655 |
85–90% of business reels are template-based, not AI video generation:
| Approach | Cost/video | Monthly (24) | How |
|---|---|---|---|
| MoviePy + FFmpeg | $0.01 | $0.24 | Images + text + music + transitions |
| Remotion Lambda | $0.03 | $0.72 | React templates → MP4 |
| ShortGPT | $0.02–0.20 | $0.50–5 | Stock footage + TTS + overlays |
| Seedance 1.5 (no audio) | $0.21 | $5 | AI video, good quality |
| Hailuo 02 Std | $0.36 | $8.64 | AI video, high quality |
| Veo 3.1 4K | $27/reel | $655 | Premium AI video |
Goal: A working agent team that takes an idea, researches it live (web search, not RAG), collaborates, and produces finished content for all types and platforms. Human approval via Slack. Publish everywhere.
What’s in Phase 1: Agent team, all content types, all platforms, publishing, cost tracking, Slack approval.
What’s NOT in Phase 1: No competitor scraping, no centralized knowledge base/RAG, no analytics feedback loops, no competitor pattern analysis. Agents research each topic fresh from the web.
Live web research, facts, data, trends
Gemini 2.5 FlashAll content types, image prompts, video scripts
Claude Sonnet 4.6Brand voice, quality, revision loop
Claude Sonnet 4.6Platform adaptation, specs, quality gates
Gemini 2.0 FlashImages, videos, carousels, stories
Flux + Seedance APIs| Agent | Role | Model | Notes |
|---|---|---|---|
| Researcher | Live web research on topic, gathers facts/data/trends | Gemini 2.5 Flash | Web search tools, no RAG |
| Writer | Generates all content: text, image prompts, video scripts, carousels | Claude Sonnet 4.6 | Platform-aware output |
| Editor | Brand voice check, quality review, revisions (max 3 rounds) | Claude Sonnet 4.6 | Brand guidelines in system prompt |
| Router | Adapts content to each platform’s specs, quality gates | Gemini 2.0 Flash | Character limits, image sizes, hashtags, CTAs |
| Media Producer | Generates images (Flux), videos (Seedance/template), assembles carousels | API calls | Orchestrates media generation APIs |
Idea (manual input or RSS/news trigger)
→ n8n triggers agent team
→ Researcher agent (web search, live research)
→ Writer agent (text, image prompts, video scripts)
→ Editor agent (brand voice, revision loop)
→ Router agent (adapts to each platform + content type)
→ n8n → Slack approval (approve/reject/revise)
→ Postiz/mixpost calendar → Scheduled publish
→ Publisher → LinkedIn / Facebook / Instagram / X / TikTok / YouTube / Blog
| Module | Function |
|---|---|
common/ |
Brand config, platform specs, shared models, LLM client |
ideation/ |
RSS/news ingestion, manual idea input API |
generator/ |
Agent team (researcher + writer + editor + router + media producer) |
publisher/ |
Platform posting (LinkedIn, Instagram, Facebook, X, TikTok, YouTube, Ghost) |
analytics/ |
Cost tracking only (no engagement analytics yet) |
| Unit | Description | Test |
|---|---|---|
| 1 Repo scaffold | src/ structure, pyproject.toml, Dockerfile,
CLAUDE.md |
uv sync succeeds |
| 2 Docker Compose | FastAPI, PostgreSQL (plain JSONB), n8n, Redis, Caddy | docker compose up healthy |
| 3 PostgreSQL schema | SQLAlchemy + Alembic: brands, ideas, drafts, publish_log, cost_ledger | alembic upgrade head |
| 4 Brand config | YAML configs for 3 brands with Pydantic validation | Unit tests pass |
| 5 Common utilities | LLM client (Claude + Gemini), platform specs, cost tracker | Unit tests pass |
| Unit | Description | Test |
|---|---|---|
| 6 Researcher agent | Web search + live research. Gemini 2.5 Flash | Research for “crypto wallet security tips” |
| 7 Writer agent | All content types from research. Claude Sonnet 4.6 | LinkedIn post draft generated |
| 8 Editor agent | Brand voice review, revision loop (max 3) | Catches off-brand tone in test draft |
| 9 Router agent | Adapts content to platform specs | Same idea → LinkedIn post + IG carousel + X thread |
| 10 Media producer | Flux Pro images, Seedance 1.5 video, carousel assembly | Image + video generated |
| Unit | Description | Test |
|---|---|---|
| 11 n8n approval | Webhook → Slack → Approve/Reject/Revise. 24h timeout | Slack buttons work |
| 12 RSS + news | RSSHub + newspaper4k: crypto/tech/AI feeds | --fetch populates DB |
| 13 LinkedIn publisher | Official API: text, images, documents, articles | Post on test account |
| 14 Instagram publisher | instagrapi: posts, carousels, stories, reels | Post on test account |
| 15 Facebook publisher | Graph API: posts, images, videos | Post on test page |
| 16 X/Twitter publisher | API v2: tweets, threads, images, polls | Tweet on test account |
| 17 Blog publisher | Ghost CMS or static pages. SEO metadata | Article published |
| Unit | Description | Test |
|---|---|---|
| 18 Postiz/mixpost | Calendar scheduling, optimal times, multi-brand | Post in calendar |
| 19 Cost tracker | Per-request LLM costs, daily/weekly/monthly per brand | Cost report generated |
| 20 TikTok publisher | TikTok API: short videos, descriptions, hashtags | Video on test TikTok |
| 21 YouTube Shorts | YouTube Data API v3: Shorts upload | Short on test channel |
| 22 Kill switch | Slack /kill-post {id} → delete/unpublish |
Post removed |
Wave 1 (1-5): [scaffold] [docker] [schema] [brands] [utils]
↓
Wave 2 (6-10): [researcher] [writer] [editor] [router] [media-producer]
↓
Wave 3 (11-17): [n8n-approval] [rss] [li-pub] [ig-pub] [fb-pub] [x-pub] [blog-pub]
↓
Wave 4 (18-22): [calendar] [cost-tracker] [tiktok-pub] [yt-shorts-pub] [kill-switch]
Goal: Add competitor intelligence, centralized knowledge base (RAG), analytics feedback loops, and content performance optimization. Agents now learn from past content, competitors, and engagement data.
What Phase 2 adds:
flowchart LR
subgraph INGEST[" Data Ingestion "]
direction TB
IG["Instagram\nScraper"]
LI["LinkedIn\nScraper"]
FB["Facebook\nScraper"]
RSS["RSS / News\nFeeds"]
end
subgraph DB[" PostgreSQL "]
direction TB
JSONB["JSONB\nDocuments"]
VEC["pgvector\nEmbeddings"]
GRAPH["Apache AGE\nGraph"]
end
subgraph AGENTS[" AI Agent Team "]
direction TB
RESEARCH["Researcher\n(Gemini 2.5 Flash)"]
WRITER["Writer\n(Claude Sonnet)"]
EDITOR["Editor\n(Claude Sonnet)"]
ROUTER["Router\n(Gemini 2.0 Flash)"]
MEDIA["Media Producer\n(Flux + Seedance)"]
RESEARCH --> WRITER --> EDITOR
ROUTER -.-> WRITER
WRITER -.-> MEDIA
end
subgraph HITL[" Approval "]
direction TB
N8N["n8n\nWorkflow"]
SLACK["Slack\nApprove / Reject"]
N8N --> SLACK
SLACK -->|Revise| N8N
end
subgraph PUBLISH[" Publish "]
direction TB
CAL["Postiz\nCalendar"]
LI_PUB["LinkedIn"]
IG_PUB["Instagram"]
FB_PUB["Facebook"]
X_PUB["X / Twitter"]
TT_PUB["TikTok"]
YT_PUB["YouTube"]
BLOG["Blog"]
CAL --> LI_PUB & IG_PUB & FB_PUB & X_PUB & TT_PUB & YT_PUB & BLOG
end
INGEST --> DB --> AGENTS --> HITL -->|Approved| PUBLISH
PUBLISH -.->|Analytics| DB
**Scraper (n8n scheduled) → Competitor data → PostgreSQL (JSONB + pgvector)**
RSS/News (n8n scheduled) → Ideation agents → Content ideas ranked
→ **Knowledge base: brand voice, competitor patterns, past winners**
→ Agent team → Draft → Approval → Publish
**Analytics (n8n scheduled) → Engagement metrics → Performance feedback → Ideation**
**Weekly Slack report → Next week's ideas + last week's performance**
| Unit | Description | Test |
|---|---|---|
| 23 PostgreSQL extensions | Add pgvector + Apache AGE. Migrate schema | alembic upgrade head |
| 24 Instagram scraper | instaloader: posts, captions, hashtags, engagement | --dry-run succeeds |
| 25 LinkedIn scraper | Posts, articles, engagement | --dry-run succeeds |
| 26 Facebook scraper | Posts, reactions, shares | --dry-run succeeds |
| 27 X/TikTok scraper | snscrape/TikTok API: posts, engagement, trending | Scraper runs |
| Unit | Description | Test |
|---|---|---|
| 28 Competitor analysis | Pattern extraction via Gemini 2.0 Flash | Patterns in DB |
| 29 Knowledge/RAG service | pgvector similarity search for agent context | Query returns context |
| 30 Enhanced researcher | Upgrade: RAG + web search, competitor-aware | Research includes competitor insights |
| 31 Enhanced ideation | Ranked ideas from trends + competitor gaps + past performance | Ideas ranked with context |
| Unit | Description | Test |
|---|---|---|
| 32 Performance analytics | Engagement metrics from all platforms | Metrics fetched |
| 33 Weekly Slack report | Sunday 6pm: ideas + performance per brand | Report sent |
| 34 SEO pipeline | Keywords, meta tags, schema markup | Meta tags generated |
| 35 Content feedback loop | Top-performing patterns → ideation weights | Feedback influences ideation |
| 36 A/B content variants | 2-3 variants per piece, track performance | Variants tracked |
Phase 1 complete
↓
Wave 5 (23-27): [pg-extensions] [ig-scraper] [li-scraper] [fb-scraper] [x-tiktok-scraper]
↓
Wave 6 (28-31): [competitor-analysis] [rag-service] [enhanced-researcher] [enhanced-ideation]
↓
Wave 7 (32-36): [analytics] [weekly-report] [seo] [feedback-loop] [ab-variants]
No content is published without human approval:
/kill-post {id} Slack commandAll competitors have active LinkedIn + Facebook + Instagram presence.
| Competitor | Website | Why We Watch | |
|---|---|---|---|
| MetaMask | metamask.io | MetaMask | Market leader, sets the standard for wallet UX content |
| Exodus | exodus.com | Exodus | Excellent educational content, multi-chain narrative |
| Phantom | phantom.app | Phantom | Strong meme game, community engagement |
| ZenGo | zengo.com | ZenGo | Security-first messaging, MPC explainers |
| Zerion | zerion.io | Zerion | DeFi-native content, portfolio tracking angles |
| Competitor | Website | Why We Watch | |
|---|---|---|---|
| fromsmash | fromsmash.com | Smash | Creative branding, “no size limit” positioning |
| wetransfer | wetransfer.com | WeTransfer | Best-in-class brand storytelling, creative community |
| jumbomail | jumbomail.me | Jumbomail | B2B messaging, enterprise file transfer use cases |
| Competitor | Website | Why We Watch | |
|---|---|---|---|
| Character.ai | character.ai | Character.AI | Viral content strategy, personality-driven branding |
| Replika | replika.com | Replika | Emotional connection angle, companion AI narrative |
| Repo | GitHub | Reuse For | Key Patterns |
|---|---|---|---|
| social-media-agent | langchain-ai/social-media-agent | Slack HITL + LinkedIn/Twitter posting | LangGraph agent graph, Slack interactive buttons, OAuth |
| crewAI-examples | crewAIInc/crewAI-examples | Instagram Post, Content Creator crews | Multi-agent definitions, task delegation, tool integration |
| neural-reels | AymanKB/neural-reels | ADK multi-agent video generation | Google ADK architecture, Veo/Imagen/TTS tools, MoviePy |
| ALwrity | AJaySRawat/ALwrity | SEO pipeline, content generation | Google Trends, SERP analysis, keyword clustering |
| agentic-rag-for-dummies | pchunduri6/rag-demystified | RAG retrieval pattern | LangGraph + vector store, embedding pipeline |
| ai-knowledge-graph | Local | FalkorDB schema + populate | Graph schema design, Cypher queries |
| postiz-app | gitroomhq/postiz-app | Content calendar, scheduling | REST API, multi-account, media upload |
| mixpost | inovector/mixpost | Alternative scheduler | Analytics, media library, workspace support |
| MoneyPrinterV2 | FujiwaraChoki/MoneyPrinterV2 | YouTube Shorts automation | Video assembly, FFmpeg pipeline, batch generation |
| Auto_Social_Media_Content_Generator | manoj-ch-12/Auto_Social_Media_Content_Generator | Canva API + platform specs | Canva Connect API, platform-specific sizing |
| Model | Input/Output per MTok |
|---|---|
| Claude Opus 4.6 | $5 / $25 |
| Gemini 3.1 Pro Preview | $2–4 / $12–18 |
| GPT-5 | $1.25 / $10 |
| Model | Cost per Image |
|---|---|
| Ideogram v3 | $0.09 |
| Flux Kontext Max | $0.08/MP |
| Imagen 4 | $0.02–0.06 |
| Nano Banana 2 | $0.04 |
| Model | Provider | Cost/sec | Resolution | Audio | API |
|---|---|---|---|---|---|
| Veo 3.1 | $0.15–0.60 | Up to 4K | Built-in | Vertex AI | |
| Runway Gen-4.5 | Runway | ~$0.50 | 1080p | No | Runway API |
| Kling 3.0 | Kuaishou | ~$0.13 | 1080p | No | Kling API |
| Seedance 1.5 Pro | ByteDance | ~$0.05 | 720p | Yes (48kHz) | fal.ai |
| Hailuo 02 | MiniMax | ~$0.04–0.08 | 720p–1080p | No | fal.ai |
| Pika 2.2 | Pika | ~$0.04 | 1080p | No | fal.ai |
| Wan 2.1 | Alibaba | ~$0.05 | 720p | No | fal.ai |
| Vidu Q3 | Shengshu | ~$0.08 | 1080p | Yes | Vidu API |
| Model | License | Min VRAM | Rec. VRAM | 720p 9:16 | 8s Gen Time (H100) | Self-hosted Cost | Link |
|---|---|---|---|---|---|---|---|
| Wan2.1-14B | Apache 2.0 | 40 GB | 80 GB | Yes | ~450s (~7.5 min) | $0.39–0.67/video | GitHub |
| Wan2.1-1.3B | Apache 2.0 | 8 GB | 24 GB | Unstable | N/A (480p only) | $0.01–0.02/video | GitHub |
| CogVideoX-5B | Apache 2.0 | 16 GB | 24 GB | Yes | ~60s | $0.017–0.046/video | GitHub |
| LTX-2.3 | Open | 12 GB | 32 GB | Yes | ~120–180s est. | $0.008–0.026/video | GitHub |
| HunyuanVideo v1.5 | Open | 14 GB | 80 GB | Yes | ~30–40s (optimized) | $0.026–0.11/video | GitHub |
| Open-Sora 1.2 | Apache 2.0 | 24 GB | 80 GB+ | Yes | ~120–180s est. | $0.01–0.03/video | GitHub |
| Mochi 1 | Apache 2.0 | 22 GB | 60 GB | No (480p max) | N/A | $0.02–0.05/video | GitHub |
| Seaweed-7B | N/A | ~40 GB | ~40 GB | Yes (paper) | Real-time (claimed) | Weights NOT released | arXiv |
Key findings: RTX 4090 (24GB) can only run CogVideoX-5B, LTX-2.3, and HunyuanVideo v1.5 (with offloading) at 720p. Wan2.1-14B and HunyuanVideo full require A100 80GB or H100. Seaweed-7B (the model behind Seedance) weights are not publicly available — self-hosting is not possible.
| GPU | VRAM | Can Run | Price/hr (cheapest) |
|---|---|---|---|
| RTX 3090 | 24 GB | CogVideoX-5B, LTX-2.3, Wan2.1-1.3B | $0.09/hr (Vast.ai) |
| RTX 4090 | 24 GB | CogVideoX-5B, LTX-2.3, HunyuanVideo v1.5 (offload) | $0.20/hr (RunPod spot) |
| L40S | 48 GB | All above + HunyuanVideo v1.5 native | $0.31/hr (Vast.ai) |
| A100 80GB | 80 GB | All models including Wan2.1-14B | $0.67/hr (Vast.ai) |
| H100 80GB | 80 GB | All models, fastest generation | $1.50/hr (RunPod spot) |
| Model | GPU | Gen Time | Provider | Cost/Video |
|---|---|---|---|---|
| LTX-2.3 | RTX 3090 | ~5 min | Vast.ai ($0.09/hr) | $0.008 |
| CogVideoX-5B | RTX 4090 | ~3 min | RunPod ($0.34/hr) | $0.017 |
| HunyuanVideo v1.5 | H100 | ~1 min (optimized) | Vast.ai ($1.55/hr) | $0.026 |
| Wan2.1-14B | H100 | ~15 min | Vast.ai ($1.55/hr) | $0.39 |
| Model | API Cost/Video | Best Self-Host | Savings | Worth Self-Hosting? |
|---|---|---|---|---|
| LTX-2.3 | $0.32 (fal.ai) | $0.008 | 97% | Yes, at 5+ videos/day |
| CogVideoX-5B | $0.20 (fal.ai) | $0.017 | 91% | Yes, at 10+ videos/day |
| Wan2.1-14B | $0.40 (fal.ai) | $0.39 | ~0% | No — API is competitive |
| HunyuanVideo | N/A (limited API) | $0.026 | N/A | Best at scale (requires H100 optimization stack) |
| Server | GPU | VRAM | Monthly | Models Supported | Cost/Video (utilized) |
|---|---|---|---|---|---|
| GEX44 | RTX 4000 SFF Ada | 20 GB | ~$204/mo | LTX-2.3, CogVideoX-5B (quantized) | ~$0.014 |
| GEX131 | RTX PRO 6000 | 96 GB | ~$989/mo | All models | ~$0.023–0.11 |
Self-hosting economics: For 24 reels/month, API is more cost-effective. Self-hosting breaks even at ~100+ videos/day (LTX-2.3 on cheap GPUs) or when using HunyuanVideo with full optimization stack on H100. Hetzner dedicated is best for continuous workloads — GEX44 at $204/mo can produce ~14,400 videos/month at $0.014 each. Note: Hetzner GPU prices rising ~30-37% from April 2026.
| Model | Cost | Quality | Link |
|---|---|---|---|
| ElevenLabs | $99/mo Pro | Best quality, voice cloning | elevenlabs.io |
| OpenAI TTS-1-HD | $15/1M chars | Very good, 6 voices | platform.openai.com |
| Google Cloud TTS | Free tier (4M chars/mo) | Good, many languages | cloud.google.com/text-to-speech |
| Coqui XTTS v2 | Free / open source | Good, voice cloning | github.com/coqui-ai/TTS |
| Risk | Likelihood | Mitigation |
|---|---|---|
| Instagram account bans | High | Residential proxies, rate limits, warm-up, official API |
| LinkedIn API approval delays | Medium | Apply Week 1, manual posting via Postiz |
| Content quality / brand safety | Medium | Mandatory human approval, brand voice calibration |
| Scraper breakage (Phase 2) | High | Multiple fallbacks, 48h alerts, degrade to RSS |
| VPS single point of failure | Medium | Automated backups (restic → object storage) |
| Multi-model API dependency | Low–Med | Fallback models per phase |
| Platform T&C violations | Medium | Official APIs where possible |
| Video generation cost spikes | Low | Default to template-based, AI video only for hero content |