Почему я отказался от найма и выбрал AI-команду
У меня полная занятость в крупном банке. Днём я директор по онлайн-продажам, вечером строю свою студию. Физически написать три длинных гайда в неделю в таком режиме невозможно. Я пробовал: садился в 11 вечера, к часу ночи выжимал один черновик, утром перечитывал и понимал что половину надо переписывать.
Нанять SEO-специалиста и копирайтера стоит $5-10K в месяц. Для студии которая зарабатывает на четырёх клиентах, это непозволительно. Claude Max подписка обходится в $100-200/мес, и на ней можно запускать столько генерации сколько нужно без счетов per-token. Разница в 25-50 раз.
Но дело не только в деньгах. Я не хотел передавать написание текстов другому человеку, потому что блог это мой голос, мой опыт, мои кейсы. Копирайтер напишет гладко, но это будет чужой текст с моей подписью. AI тоже пишет не мой текст по умолчанию, и это критически важный момент. Без специальной архитектуры любой LLM выдаёт то что индустрия уже называет «AI slop»: правильно, гладко, пусто.
Решение было не «заменить себя на AI», а переместить себя с писанины на стратегию и контроль качества. Я накидываю мысли в Obsidian, формулирую тезисы, записываю инсайты из рабочих задач. Пайплайн берёт этот сырой материал, структурирует его в длинный гайд, прогоняет через мой голос и публикует. Я не пишу текст. Я создаю seed-материал, а шесть агентов превращают его в пост. Это логичное продолжение стратегического разворота студии в сторону Digital под ключ: собственные инструменты усиливают услуги, а не живут отдельно.
Ключевое условие которое я поставил перед собой: контент должен звучать как я, содержать мой реальный опыт, и ни в коем случае не быть generic AI-контентом. Если пайплайн не может этого обеспечить, лучше не публиковать ничего. Именно из этого условия выросла вся архитектура: personal knowledge base, ToV injector, fact-checker, confidentiality firewall. Каждый компонент отвечает за конкретную грань качества.
Архитектура пайплайна: 14 этапов от темы до деплоя
Весь пайплайн работает по orchestrator-pattern. Мастер-скрипт run-orchestrator.ts последовательно вызывает 14 суб-агентов через Claude Code CLI. Каждый агент получает свой system prompt, набор инструментов и формат выходных данных. Результат одного этапа передаётся на вход следующему. Cron запускает прогон три раза в неделю: понедельник, среда, пятница в 04:00 по Алматы.
Вот полный цикл. Этап 1, topic selection: trend-spotter выбирает тему из backlog с учётом баланса пилларов и непокрытых интентов. Этап 2, SERP research: serp-analyzer парсит конкурентов в выдаче, находит gaps которые никто не закрыл. Этап 3, knowledge mining: vault-reader идёт в мой Obsidian и достаёт релевантные факты, мысли, истории. Этап 4, trend research: listener сканирует Reddit, X, LinkedIn по ключевым запросам темы.
Этап 5, outline: architect собирает скелет поста из SERP-gaps, vault-фактов и trend-углов. Этап 6, section drafts: N параллельных section-writer'ов пишут каждую секцию отдельно. Этап 7, synthesis: editor склеивает секции в единый поток, пишет intro и conclusion. Этап 8, personal voice: ToV injector калибрует текст под мой голос по 22 feedback-правилам.
Этап 9, fact-check: верификация цифр, утверждений и внешних ссылок. Этап 10, confidentiality firewall: проверка на утечку конфиденциальной информации. Этап 11, SEO optimization: мета-теги, JSON-LD schemas, keyword density. Этап 12, internal linking: ссылки на 2-4 связанных поста. Этап 13, cover generation: программная обложка через next/og. Этап 14, publish: git commit, git push в main, Vercel подхватывает и деплоит.
Полный цикл занимает 17-20 минут. По 40-153 секунды на этап, в зависимости от сложности. Первый полностью автономный прогон прошёл 04.06.2026 с Windows-машины: все 14 этапов за 17 минут, пост «AI Overviews убивают SEO?» опубликован без единого ручного действия. За первые 9 дней пайплайн автономно опубликовал 4 поста.
Важный момент: каждый агент изолирован. Section writer не знает про confidentiality firewall. Fact-checker не знает про SEO-оптимизацию. Это не один гигантский промпт на 50 страниц, а 14 специализированных агентов которые делают одну вещь хорошо. Подробнее о паттернах изоляции и governance-first подходе к агентам я писал в разборе AI-агентов в продуктовой разработке.
Personal Knowledge Base как антидот AI slop
74% нового веб-контента содержит AI, но только 19% SEO-специалистов считают что AI улучшает качество. Термин «AI slop» стал buzzword 2026 года, и заслуженно. Массовый контент без личности автора Google не наказывает за факт использования AI, но наказывает за отсутствие добавленной ценности. March 2026 core update показал это наглядно: сайты с сотнями AI-страниц без уникального контента потеряли 60-80% трафика.
Мой антидот построен на простой идее: AI не сочиняет с нуля, а причёсывает мой сырой материал. Knowledge mining, третий этап пайплайна, идёт в мой Obsidian vault и достаёт релевантные факты, мысли, истории, цитаты. Vault-reader читает конкретные заметки: ретроспективы спринтов, записки по проектам, инсайты из банковской работы, наблюдения по digital-рынку. Это не brand voice document на две страницы, это живая база знаний с тысячами заметок которую я веду каждый день.
Writer-агент на шестом этапе получает outline с привязкой к seed-фактам из vault. Он не придумывает примеры, он берёт мой реальный кейс и оборачивает его в читаемый текст. Разница колоссальная. Когда AI пишет «по нашему опыту, персонализация увеличивает конверсию» это slop. Когда AI берёт мою заметку о том как мы в студии подняли конверсию конкретному клиенту конкретным методом и формулирует это в абзац, это мой контент.
Восьмой этап, ToV injector, добавляет второй слой защиты от generic. Он калибрует текст по 22 feedback-правилам из моего AI-Clon: манера речи, терминология, паттерны мышления. Никаких «в современном мире», никаких «важно отметить», никаких мотивационных твистов в конце. Текст проходит через фильтр который обучен на моих ошибках и корректировках за месяцы работы с AI.
Практики в SEO-сообществе говорят что brand voice documents для AI должны быть в 3-5 раз детальнее чем для людей. Я пошёл дальше: вместо документа у меня целый vault с реальными мыслями. E-E-A-T (Experience, Expertise, Authoritativeness, Trustworthiness) сохраняется потому что опыт принадлежит мне, AI только инструмент изложения.
Confidentiality Firewall: когда автор работает в корпорации и ведёт блог
Мой Obsidian vault содержит всё. Инсайты из банковской работы, цифры по каналам, конверсии продуктов, метрики команды. Knowledge mining этап читает vault и может случайно подхватить факт который не должен попасть в публичный блог. Когда ты одновременно директор в крупном банке и фаундер студии, грань между «могу рассказать» и «нельзя разглашать» проходит через каждую вторую заметку.
Десятый этап пайплайна, confidentiality firewall, решает эту проблему тремя уровнями защиты. Первый уровень, hard blocks: если в тексте найдены названия банков-работодателей, их продуктов или конкретные внутренние метрики, публикация отменяется целиком. Степан получает Telegram-алерт с описанием что именно сработало. Пост не выходит, пока проблема не устранена.
Второй уровень, soft redactions: автоматическая замена общих упоминаний на обобщения. Название банка превращается в «крупный банк в KZ», прошлый работодатель в «топовый банк региона». Это происходит без ручного вмешательства и покрывает случаи когда упоминание не несёт конфиденциальной нагрузки, но всё равно лучше обезличить.
Третий уровень, numeric blocks: паттерны вроде «$XM MRR» или конкретные суммы в тенге ловятся regex'ом и отправляются на ручной review. Не блокируют публикацию, но помечают фрагмент как требующий проверки. Потому что сумма может быть безобидной (стоимость подписки, бюджет рекламы клиента) или конфиденциальной (выручка банка, зарплата).
Источник правды для всех правил, forbidden.yaml. Один файл, машиночитаемый формат. Regex-паттерны с флагами, причины блокировки, действия при срабатывании. Firewall-агент загружает его перед каждой проверкой. Если за одну публикацию сработало два или больше правила подряд, оркестратор ставится на паузу. Лучше пропустить день публикации, чем допустить утечку.
Этот компонент уникален для людей с dual context: основная работа + собственный бизнес. Если ты pure founder, тебе firewall не нужен. Но если ты как я совмещаешь найм с предпринимательством и пишешь на основе всего своего опыта, этот этап не опциональный, а критический.
Quality gates: как не пропустить ошибку при полной автономии
Когда пайплайн публикует три поста в неделю без ручного участия, вопрос «а что если он опубликует чушь?» возникает первым. На него нет одного ответа, есть четыре слоя защиты.
Девятый этап, fact-checker. Агент проходит по тексту, находит все утверждения с цифрами и внешними ссылками, и верифицирует их. Если цифра не подтверждается источником, она либо заменяется на обобщение «по моему опыту», либо удаляется. Внешние URL проверяются на доступность. Я не хочу чтобы читатель кликнул на ссылку и увидел 404.
Одиннадцатый этап, SEO optimization. Помимо мета-тегов и keyword density, агент генерирует структурированные данные: BreadcrumbList, FAQPage, HowTo в формате JSON-LD. Это не про качество текста, это про то как Google видит и индексирует контент. Schema markup повышает шансы на rich snippets в выдаче.
Двенадцатый этап, internal linking. Агент находит 2-4 поста в блоге которые тематически связаны с новым постом и добавляет ссылки. Но он делает и обратное: идёт в старые посты и вставляет в них ссылку на новую публикацию. Reverse linking, обратные ссылки внутри блога. Это строит link graph внутри сайта, что критично для SEO, и делает это автоматически при каждой публикации.
Human-in-the-loop в повседневном режиме отсутствует намеренно. Если бы я ревьюил каждый пост перед публикацией, я бы вернулся к проблеме с которой начал: не хватает времени. Вместо этого я получаю Telegram-алерты при critical failures. Если fact-checker нашёл неподтверждённую цифру, если firewall сработал, если прогон упал, я узнаю об этом в Telegram. Каждая SEO-операция пишет в журнал что сделано, зачем и какой ожидается эффект. Любая регулярная операция это отдельный helper с записью в лог. Я не читаю каждый пост, но я вижу каждый action и каждый failure.
Пост-публикация: refresh, decay detection, meta-rewriter
Публикация поста это не конец работы, а начало его жизненного цикла. Пайплайн продолжает работать с каждым постом после деплоя, и этот хвост не менее важен чем создание контента.
GSC weekly мониторинг собирает позиции, CTR и impressions по каждому посту раз в неделю. Данные ложатся в отчёт, и пайплайн сравнивает текущие показатели с предыдущими. Если пост теряет позиции три недели подряд, decay detection помечает его как кандидата на обновление. Refresher-агент идёт в текст, находит устаревшие факты и цифры, и обновляет их свежими данными. Пост получает новую дату и отправляется в индекс заново.
Meta-rewriter работает по другому триггеру. Если CTR поста ниже 1.5% при нормальном количестве impressions, проблема скорее всего в title или description. Агент переписывает мета-теги, сохраняя ключевые слова но меняя формулировку на более кликабельную. Это A/B-тестирование без A/B-инфраструктуры: просто итеративное улучшение по данным. Тема пересекается с тем, как AI Overviews меняют правила игры в выдаче: оптимизировать надо не только под классический поиск, но и под AI-блоки.
Сразу после публикации срабатывает IndexNow ping. Bing, Yandex, Seznam, Naver получают уведомление о новой странице и индексируют её быстрее чем при обычном краулинге. Telegram-канал @milakhin_studio автоматически получает анонс: заголовок, excerpt, ссылка, хэштеги. Никаких ручных действий, всё в рамках одного прогона оркестратора.
Что сломалось по дороге: кросс-платформенность и транзиентные ошибки
Первый прогон пайплайна 01.06.2026 я запустил на Mac вручную. 7 из 14 этапов отработали, потом я ушёл на PC и прогон остановился. Но проблемы начались раньше: claude-runner был написан чисто под macOS. PATH через двоеточие, hardcoded /opt/homebrew/bin/claude, никаких Windows-путей.
На Windows всё сломалось иначе. CLI не нашёл claude, потому что на Windows он лежит в %APPDATA%\npm\claude.cmd и требует shell: true для запуска. Но главная проблема была в другом: флаг --append-system-prompt-file не существует в Claude CLI v2.1.92. Runner писал system prompt во временный файл и передавал путь, CLI парсил его как неизвестный аргумент и возвращал мусор. Семь Mac-failures с is_error: true имели тот же корень плюс транзиентные 529 Overloaded от Anthropic API.
Фикс оказался архитектурным, не патчем. System prompt и user prompt теперь склеиваются в один stdin, временный файл убран. resolveClaudeEnv() определяет ОС и выбирает правильный путь к CLI и параметры запуска. Retry с exponential backoff 30→90→180 секунд переживает перегрузки Anthropic API без потери прогона.
04.06.2026 первый полностью автономный прогон с Windows: все 14 этапов за 17 минут, пост опубликован. С тех пор пайплайн работает по cron без ручного вмешательства. Ни один из четырёх опубликованных постов не потребовал ручной правки после деплоя.
Результаты за первые 10 дней и что дальше
За 9 дней (01-10.06.2026) пайплайн автономно опубликовал 4 поста без ручного написания текста. Каждый пост прошёл все 14 этапов: от выбора темы до git push и Vercel-деплоя. Ни один не потребовал пост-фактум правки, ни один не содержал утечек конфиденциальной информации.
Цель на 90 дней: 150+ органических переходов в день на блог, 5+ постов в топ-20 Google. GSC API разблокирован 10.06.2026, первый отчёт с реальными данными позиций и CTR уже записан. Refresher и meta-rewriter теперь работают не вслепую, а по живым метрикам.
Стоимость: Claude Max подписка, ноль дополнительных счетов за генерацию. Обложки рендерятся через next/og бесплатно, без OPENAI_API_KEY. Единственная внешняя зависимость с оплатой за использование, если потребуется в будущем, это DALL-E для кастомных иллюстраций.
Следующий шаг: GEO, Generative Engine Optimization. Классический SEO эволюционирует в оптимизацию одновременно под Google, AI Overviews, ChatGPT, Perplexity. Пайплайн уже генерирует JSON-LD и структурированные данные, но этого мало. Нужно оптимизировать формат контента под цитирование AI-моделями: чёткие определения, numbered lists, concise answers в начале секций. Это отдельный агент в бэклоге.
Прозрачность через журналирование: каждая SEO-операция пишет action, why, expected_impact, related_slug. Я не читаю каждый пост, но вижу что именно команда делает и зачем. Автономность не означает чёрный ящик. Автономность означает что я перестал быть бутылочным горлышком в создании контента и переместился туда где от меня больше пользы: стратегия, seed-материал, quality gates.