Один пост — 770 000 просмотров, 35 000 лайков, топ-1 на всём аккаунте; в комментарии залетел Киевстар. Ведение блога превратили в конвейер «сгенерировал — одобрил в один тап — опубликовалось само», сохранив авторский голос.
Частный преподаватель немецкого вёл Threads полностью вручную: сам придумывал посты, оформлял скриншоты-мокапы, публиковал и вручную отслеживал, что заходит. Это съедало время, а контент выходил нерегулярно — поэтому аккаунт по сути стоял на месте.
Контент должен был попадать в очень конкретный личный голос — резкий, ироничный, с чёрным юмором, — чтобы Threads давал охваты, а посты мягко вели аудиторию на уроки. Делать это стабильно, каждый день — отдельная полноценная работа поверх основной. Поэтому не делалось.
Цель: превратить ведение блога в конвейер «сгенерировал — одобрил в один тап — опубликовалось само», сохранив авторский голос и нарастив охваты и заявки.
Собрал автономную контент-систему, которая ведёт весь цикл сама.
Как показала практика — это оказалось важнее самого текста. Прежде чем что-то генерировать, система выгружает все посты аккаунта и ранжирует их по охвату, определяя, какие форматы реально работают на этой аудитории. Дальше пайплайн делает упор на выигрышный формат, разбавляя достаточным разнообразием, чтобы не приедалось. Большинство систем автоматизации этот шаг пропускают и генерят вслепую — а попадание в проверенный формат площадки это половина результата.
Сухой вывод модели всегда читается как робот. Система строит «профиль голоса» из реальных постов автора и подбирает похожие удачные примеры под каждую генерацию (few-shot на векторном поиске), после чего прогоняет каждый черновик через LLM-as-judge — модель оценивает текст на соответствие голосу автора и дотягивает, пока не пройдёт. Никаких общих описаний тона — реальное схождение к конкретному живому стилю.
Выигрышный формат — POV-скриншот: короткая подпись-курсор поверх мокапа уведомления (сообщение «ученика», уведомление об оплате). Система генерит их визуально неотличимыми от настоящих, используя реальные посты автора как референс. Текст и детали на картинке правятся прямо из бота свободным описанием, а режим серий-продолжений позволяет сделать «часть 2» вирусной истории с тем же персонажем и тоном.
Автор смотрит готовые карточки в Telegram — одобрить, поправить, отклонить, перегенерировать — и одобренные посты сами публикуются в Threads по таймингу через Threads Graph API.
Автор оценивает посты («его голос / не его»), а посты, приведшие заявку на урок, помечаются — так система постоянно точнее попадает и в голос, и в форматы, которые реально конвертят.
Python, FastAPI, Celery для фоновых задач и планировщика. PostgreSQL с pgvector для поиска по стилю, Redis. Провайдер-агностичный LLM-слой (OpenAI / xAI Grok / Anthropic) с выбором наименее «зацензуренной» модели под резкий голос и структурированным JSON-выводом по схемам. Image-модель с реальными образцами автора как референсами и программным шаблоном рендера как резервом. Threads Graph API (OAuth, двухшаговая публикация, инсайты) и Telegram-бот (aiogram) для согласования. Docker Compose, развёртывание на выделенном сервере, автоматические миграции.
Преподаватель получил контент-редакцию в кармане: система сама предлагает готовые посты в его голосе с реалистичными визуалами, публикация — по одному тапу одобрения. Ручная работа свелась к согласованию.
Цифры говорят сами за себя. Один пост набрал 770 000 просмотров и 35 000 лайков, стал топ-1 постом на всём аккаунте, и в комментарии зашёл Киевстар — один из крупнейших телеком-брендов страны. Таких охватов аккаунт никогда бы не вытянул вручную.
И главное — это не разовый вирусный пост. Теперь так выходит каждый день, независимо от того, есть у клиента время или нет. Потому что стабильность — это вопрос системы, а не силы воли.