Belt & Suspenders: Content Automation Architecture¶
Parent doc: VELLOCITY_MEDIA_GROWTH_STRATEGY.md Created: 2026-03-31
Design Principle¶
Two independent systems cover the same workflow. Neither depends on the other. If one fails, the other keeps content flowing.
┌─────────────────────────────────────────────────────────────┐
│ YOU (V) │
│ Write scripts · Record on studio days · Review & approve │
└─────────────┬───────────────────────────────┬───────────────┘
│ │
┌───────▼────────┐ ┌────────▼───────────┐
│ 🟣 BELT │ │ 🟤 SUSPENDERS │
│ Metricool │ │ OpenClaw + Claude │
│ │ │ │
│ Schedule posts │ │ Daily briefings │
│ Cross-post │ │ Buffer monitoring │
│ Analytics │ │ Content generation │
│ Rush hours │ │ Threads queue │
│ 8 channels │ │ Metricool API sync │
└───────┬─────────┘ └────────┬────────────┘
│ │
▼ ▼
┌──────────────┐ ┌──────────────────┐
│ Published to │ │ Telegram alerts │
│ all platforms │ │ + draft assets │
└──────────────┘ └──────────────────┘
The Belt: Metricool¶
Role: Primary scheduling, publishing, and analytics hub.
Connected channels (itsrondavis brand): | Channel | Handle | Connected | |---------|--------|-----------| | YouTube | Ron Davis | Yes | | TikTok (business) | itsrondavis | Yes | | Facebook (Page) | Ron Davis | Yes | | LinkedIn | Ron Davis | Yes | | Instagram (Pro) | itsrondavis | Yes | | Threads | itsrondavis | Yes | | Bluesky | itsrondavis.bsky.social | Yes |
What Metricool does: - Schedule posts across all 7 social channels from one UI - Cross-post TikTok → Facebook natively - Cross-post LinkedIn text → Threads natively - Cross-post LinkedIn text → Bluesky natively - Best-time-to-post recommendations (aligns with rush hour data) - Post-level analytics per platform - Audience demographics (age, gender, country, city) - Report generation
What Metricool can't do: - Generate content (scripts, carousels, captions) - Track production cadence (buffer depth) - Send proactive alerts to Telegram - Pull metrics into a unified milestone tracker - Schedule Substack or podcast publishing
API credentials needed:
METRICOOL_USER_TOKEN → Account Settings → API section
METRICOOL_USER_ID → From browser URL or API response
METRICOOL_BLOG_ID → Brand ID from browser URL
The Suspenders: OpenClaw + Claude CLI¶
Role: Content creation, production tracking, proactive alerts, and failover monitoring.
OpenClaw (GPT-5.1 Codex on M1 Pro Max)¶
| Cron Job | Schedule | Purpose |
|---|---|---|
| Daily briefing | 8 AM CT daily | "What to post today" — pillar, channels, times, format |
| Buffer monitor | Mon 9 AM CT | Published vs. expected counts, behind alerts |
| Metricool sync | Mon 9:15 AM CT | Pull real post counts from Metricool API into tracker |
| Threads queue | 10 AM CT daily | Post next queued Threads item (backup to Metricool) |
Files on OpenClaw (/home/node/openclaw/media-tools/):
- daily-briefing.js + content-calendar.json
- buffer-monitor.js + content-tracker.json
- metricool-client.js
- crosspost-threads.js + threads-queue.json
OpenClaw env vars:
METRICOOL_USER_TOKEN, METRICOOL_USER_ID, METRICOOL_BLOG_ID
THREADS_USER_ID, THREADS_ACCESS_TOKEN (optional — manual fallback exists)
Claude CLI (on M4 Pro)¶
| Tool | Command | Purpose |
|---|---|---|
| Substack draft | claude dispatch -p "$(cat dispatch-substack.md) ..." |
Script → newsletter article |
| YouTube SEO | claude dispatch -p "$(cat dispatch-youtube-seo.md) ..." |
Script → title, tags, thumbnail brief |
| Full pipeline | ./repurpose-pipeline.sh script.txt ... |
1 script → 8 assets (8 parallel agents) |
No env vars needed — uses existing Claude auth.
Continuity Matrix¶
| Scenario | Belt (Metricool) | Suspenders (OpenClaw) | Impact |
|---|---|---|---|
| Normal operation | Schedules & publishes | Briefs, monitors, generates | Full coverage |
| Metricool is down | Nothing publishes | Briefing tells you what to post manually | You post manually using briefing |
| OpenClaw is offline | Still publishes on schedule | No briefings or monitoring | Content keeps flowing, just no alerts |
| Both down | Nothing | Nothing | You check .ics calendar and post manually |
| Traveling (no studio) | Publishes from 2-week buffer | Daily Telegram briefings keep you aware | Buffer buys you time |
| API token expires | Metricool UI still works | Sync fails, manual --log still works | Degrade gracefully |
Key insight: Metricool is the publishing engine. OpenClaw is the production cockpit. Claude is the content factory. They overlap intentionally.
Data Flow¶
1. CREATION (you + Claude)
┌──────────────────────────────────────────────┐
│ YouTube script │
│ ↓ │
│ ./repurpose-pipeline.sh │
│ ↓ │
│ 8 draft assets in ./output/ │
│ • substack-article.md │
│ • youtube-seo.md │
│ • clip-suggestions.md │
│ • linkedin-carousel.md │
│ • instagram-carousel.md │
│ • linkedin-polls-text-threads.md │
│ • thumbnail-brief.md │
│ • podcast-show-notes.md │
└──────────────────────────────────────────────┘
↓ (you review & approve)
2. SCHEDULING (Metricool)
┌──────────────────────────────────────────────┐
│ Upload assets into Metricool │
│ Schedule at rush hour times: │
│ Mon 10AM: IG carousel, Threads │
│ Tue 10AM: Bluesky · 12PM: YouTube │
│ 1PM: LinkedIn carousel │
│ Wed 10AM: IG carousel · 6PM: TikTok + FB │
│ Thu 10AM: Bluesky · 12PM: YouTube │
│ 1PM: LinkedIn poll · 6PM: TikTok + FB │
│ Fri 1PM: LinkedIn carousel │
│ Sat 10AM: IG reel │
│ Sun 10AM: Substack (bi-weekly) │
│ │
│ Cross-posts handled automatically: │
│ TikTok → Facebook │
│ LinkedIn → Threads │
│ LinkedIn → Bluesky │
└──────────────────────────────────────────────┘
↓ (publishes automatically)
3. MONITORING (OpenClaw)
┌──────────────────────────────────────────────┐
│ 8 AM: Daily briefing via Telegram │
│ 9 AM Mon: Buffer monitor report │
│ 9:15 AM Mon: Metricool API sync │
│ │
│ Alerts if: │
│ • Any channel falls behind cadence │
│ • Content buffer < 2 weeks │
│ • Milestone target at risk │
└──────────────────────────────────────────────┘
↓ (you take action if needed)
4. CALENDAR (.ics)
┌──────────────────────────────────────────────┐
│ vellocity-content-schedule.ics │
│ Imported into Apple Calendar / Outlook │
│ 22 recurring weekly events │
│ Macro-level view of entire content cadence │
│ Survives all system failures — static file │
└──────────────────────────────────────────────┘
API Keys Summary¶
| Service | Keys Needed | Where to Get | Where to Store |
|---|---|---|---|
| Metricool | USER_TOKEN, USER_ID, BLOG_ID | Metricool → Account Settings → API | OpenClaw env vars |
| Threads (optional) | USER_ID, ACCESS_TOKEN | Meta Developer Portal → Threads API | OpenClaw env vars |
| Claude CLI | Already configured | — | M4 Pro (local) |
| OpenClaw Telegram | Already configured | — | OpenClaw config |
| Substack | None (manual publish) | — | — |
| Podcast host | None (manual publish) | — | — |
| .ics calendar | None (static file) | — | — |
Minimum viable setup: Just Metricool API token + the .ics calendar. Everything else is enhancement.