Content Pipeline v2

Автоматическая контент-система на n8n | Tim Zinin | Обновлено 22 марта 2026

Архитектура

flowchart TB subgraph SCOUT["SCOUT - Разведка | cron 6ч"] direction LR S1["Google News EN/RU
9 запросов"] --> S4["Фильтр 24ч
+ дедупликация"] S2["HackerNews
Top AI stories"] --> S4 S3["GitHub Trending
AI repos за 7 дней"] --> S4 S4 --> DB_NEWS[("news_feed")] end subgraph WRITER["WRITER - Автор | cron 03:00"] direction LR W1["TOP-5 новостей
по score"] --> W2["MiniMax M2.5
700-1200 символов
x5 постов"] W2 --> W3["Quality Gate
12 проверок"] W3 --> DB_POST[("posts
3-5 постов/день")] end subgraph ILLUSTRATOR["ILLUSTRATOR - Художник | cron 03:30"] direction LR I1["Посты без картинок"] --> I2["Gemini 2.5 Flash
pop-art стиль"] I2 --> DB_IMG[("posts +
image_url")] end subgraph ADAPTER["ADAPTER - Адаптер | cron 04:00"] direction LR A1["Неадаптированные
посты"] --> A2["MiniMax M2.5
10 платформ"] A2 --> DB_PP[("platform_posts
пост + комментарий
+ reply + ссылка")] DB_PP --> SYNC["Синхронизация
Content Dashboard"] end subgraph CURATOR["CURATOR - Куратор | после Adapter"] direction LR CUR1["5 постов x 10 платформ
= 50 адаптаций"] --> CUR2{"Распределение
по частоте"} CUR2 --> CUR_TH["Threads RU/EN
все 5 постов"] CUR2 --> CUR_TG["Telegram
2 лучших"] CUR2 --> CUR_LI["LinkedIn
1 лучший"] CUR2 --> CUR_VK["VK / FB
1-2 поста"] CUR2 --> CUR_EN["Bluesky / Mastodon
2-3 поста"] CUR2 --> CUR_ART["Dev.to / Hashnode
1 статья/нед"] end subgraph PUBLISH["PUBLISHER - Публикация | cron */30 06-21"] direction LR PUB_DIRECT["Direct API
TG, LinkedIn, VK
Bluesky, Threads RU
Mastodon, Dev.to, Hashnode"] PUB_PUBLER["Publer API
Facebook, TikTok
Threads EN"] end subgraph STATS["ANALYST - Аналитика | cron 21:00"] direction LR ST1["Сбор engagement
APIs платформ"] --> ST2["Performance
Score"] ST2 --> DB_ENG[("engagement")] ST2 --> ST3["Daily Report
в Telegram"] end SCOUT --> WRITER WRITER --> ILLUSTRATOR ILLUSTRATOR --> ADAPTER ADAPTER --> CURATOR CURATOR --> PUBLISH PUBLISH --> STATS STATS -.->|"feedback loop
лучшие темы"| SCOUT style SCOUT fill:#dbeafe,stroke:#2563eb style WRITER fill:#dcfce7,stroke:#16a34a style ILLUSTRATOR fill:#fef3c7,stroke:#d97706 style ADAPTER fill:#ede9fe,stroke:#7c3aed style CURATOR fill:#fff7ed,stroke:#ea580c style PUBLISH fill:#fce7f3,stroke:#db2777 style STATS fill:#e0f2fe,stroke:#0284c7

Workflows (n8n)

DONE Scout - Разведка

  • Google News RSS (EN + RU, 9 запросов)
  • HackerNews Top Stories (AI фильтр)
  • GitHub Trending (AI repos за 7 дней)
  • Фильтр: 24ч для новостей, блоклист URL
  • Дедупликация по hash(title)
  • Cron каждые 6 часов

DONE Writer - Автор

  • Берёт TOP-5 неиспользованных новостей
  • MiniMax M2.5 (700-1200 символов RU) x5
  • Anti-AI writing rules в промпте
  • Quality Gate (12 проверок, score >= 65)
  • Извлечение product_url + product_name
  • Cron 03:00 MSK

DONE Illustrator - Художник

  • Gemini 2.5 Flash через Docker сервис
  • Pop-art стиль (красный/жёлтый, halftone)
  • Fisheye perspective, девушки каждый 3-й
  • PNG на corp.timzinin.com/content-images/
  • Cron 03:30 MSK

DONE Adapter - Адаптер

  • 10 платформ: TG, LI, Threads RU/EN, VK, Bluesky, FB, Mastodon, Dev.to, Hashnode
  • Составные сущности: пост + комментарий + reply
  • Ссылка: body / comment / reply / none
  • Авто-синхронизация Content Dashboard
  • Cron 04:00 MSK

DONE Curator - Куратор

  • ID: EYPcT5B4rLmQRQBM, cron 04:30 MSK
  • Tier 1: TG 2/день, Threads RU/EN 5/день, Bluesky 3/день
  • Tier 2: LinkedIn 1 (ПН/СР/ПТ), VK/FB 1 (ПН/СР/ПТ), Mastodon 1/день
  • Tier 3: Dev.to/Hashnode 1 (только ПН)
  • Quality-based: лучшие по score → приоритетным платформам
  • scheduled_at в Dubai timezone (UTC+4)

NEXT Publisher - Публикатор

  • Автопубликация без HITL (контент достаточно качественный)
  • Direct API: TG, LinkedIn (+комментарий), Threads RU (+reply), VK, Bluesky, Mastodon
  • Publer API: Facebook (+комментарий), TikTok, Threads EN (+reply)
  • Dev.to + Hashnode: статьи через API
  • Cron */30 06:00-21:00 MSK

NEXT Analyst - Аналитик

  • Сбор engagement через API платформ
  • Performance score per post
  • Daily report в Telegram (21:00 MSK)
  • Feedback loop: лучшие темы приоритетнее в Scout
  • Cron 21:00 MSK

Платформы

ПлатформаЯзыкМетодСимволовСсылкаКартинка
TelegramRUDirect API600-1000В телеДа
LinkedInRUDirect API1000-1500КомментарийДа
Threads RURUDirect API100-300ReplyДа
VKRUDirect API800-1500В телеДа
BlueskyENDirect API250-300В телеДа
FacebookRUPubler API600-1000КомментарийДа
Threads ENENPubler API100-300ReplyДа
MastodonENDirect API400-500В теле + хештегиДа
Dev.toENDirect API2000-4000В концеНет (статья)
HashnodeENDirect API2000-4000В концеНет (статья)

БД - PostgreSQL (schema: content)

erDiagram news_feed { serial id PK text title text url text source int score text title_hash UK boolean used text pub_date timestamptz fetched_at } posts { serial id PK int news_id FK text post_text int char_count text topic_cluster int quality_score text image_url text product_url text product_name text status } platform_posts { serial id PK int post_id FK text platform text adapted_text int char_count text comment_text text reply_text text link_url text link_placement boolean include_image text image_url timestamptz scheduled_at timestamptz published_at text status } engagement { serial id PK int platform_post_id FK int views int likes int comments float engagement_rate } news_feed ||--o{ posts : "generates" posts ||--o{ platform_posts : "adapts to" platform_posts ||--o{ engagement : "tracks"

Инфраструктура

КомпонентГдеСтатус
n8n (6 workflows)Contabo Docker :5678Active
PostgreSQL (schema content)n8n Docker ComposeActive
Gemini Image ServiceDocker :8800 (internal)Active
Approval BotContabo :8791Active
Content Dashboardcorp.timzinin.comActive
Publer APIapp.publer.comConnected
MiniMax M2.5api.minimax.ioActive
OpenRouter (Gemini)openrouter.aiActive