마케팅 자동화 · AI 에이전트
마케팅 자동화 시스템
AI 가 만들고,사람이 승인하고,채널에 알아서 나간다
블로그 글, 카드뉴스, 릴스 · 쇼츠 영상을 만들어 내보내는 일을 한 줄의 공정으로 묶은 자체 시스템입니다. 현장의 신호에서 주제를 고르고, AI 가 초안을 쓰고 사진 · 목소리 · 자막까지 만들면 사람은 승인만 합니다. 그 뒤는 큐가 매일 아침 인스타그램 · 페이스북에 올리고, 유튜브에는 비공개로 올려 두어 사람이 공개를 누릅니다. 자사 영문 미디어 세 곳의 블로그 작업실(Workboard)도 같은 시스템의 한 갈래입니다.





Why we built it
만드는 것보다,내보내는 일이 더 많았습니다
카드뉴스 한 덱, 영상 한 편을 만드는 것은 반나절인데 인스타그램 · 페이스북 · 유튜브에 날짜 맞춰 올리고, 올라갔는지 확인하고, 다음 주제를 또 고르는 일이 매일 손에 남았습니다. 같은 주제를 제목만 바꿔 올렸을 때 조회수가 8배 갈린 적도 있는데, 그 데이터는 어디에도 되먹임되지 않았습니다. 그래서 "만드는 AI" 가 아니라 고르고 · 검증하고 · 내보내고 · 다시 재는 공정을 먼저 짰습니다. 사람이 누르는 버튼은 승인과 공개, 둘뿐입니다.
How it works
어디까지 AI 가 하고,어디부터 사람이 하는가
- STEP 01신호 모으기Reddit 에서 호텔 · 관광 현장 사람들이 익명으로 쓴 불편, 우리 채널에서 잘된 편과 안 된 편, 시장 자료, 대표가 현장에서 들은 말 — 네 갈래 신호를 한 라이브러리에 쌓는다. 겹치는 자리가 다음 주제다collect-reddit · collect-channel · signals
- STEP 02주제 · 대본AI 가 신호가 겹치는 묶음에서 주제 3개를 제안하고 사람이 하나를 고른다. 대본의 숫자 · 주장 · 제목은 판정 API(Jev)가 문장 종류별로 검수해 근거 없는 숫자를 막는다topics · suggest · Jev 검수 · 사람
- STEP 03만들기카드뉴스는 템플릿 4종을 덱마다 돌려 7장으로. 영상은 장면마다 Gemini TTS 로 목소리를 만들어 그 길이로 타임라인을 짜고, 화면 글은 요약으로 줄이고, 자막은 읽는 말 그대로 따로 낸다. 렌더는 맥에 상주하는 워커가 2분마다 대기열을 보고 돌린다make_cards · tts · caption · make-video 워커
- STEP 04검수 · 승인블로그는 일곱 역할(조사 · 작성 · 사진 · 검증 · 상위 검토 · 교정 · 전송)이 돌고 출처가 2개 미만이면 멈춘다. 영상의 썸네일 · 제목은 사람이 유튜브 스튜디오에서 보고 다듬는다. 공개 버튼은 언제나 사람Workboard · 사람
- STEP 05내보내기큐에 카드뉴스와 릴스를 번갈아 넣어 두면 GitHub Actions 가 매일 07:43 에 2건씩 인스타그램 캐러셀 · 릴스와 페이스북 페이지로 올린다. 한 채널이 실패하면 그 채널만 다음 날 다시. 유튜브는 비공개로 올려 두고, 메타 광고는 일시중지로 만들어 두고 — 집행은 사람이 시작한다publish-cardnews · upload-youtube · /api/meta
- STEP 06되먹임올라간 편의 조회 · 리드를 묶음 · 형식별로 집계해 다음 주제 제안의 입력으로 돌려보낸다. 블로그는 발행 14일 뒤 H1 · JSON-LD · sitemap 을 다시 잰다collect-channel · /api/pipeline analyze
What the AI actually does
구체적으로, 이렇게
멈추는 규칙이 먼저
확인된 출처가 2개 미만이면 조사 단계에서 멈춥니다. 맞는 사진이 없으면 사람이 Adobe 원본을 올릴 때까지 기다립니다. 예산(글당 $0.50)이 넘으면 멈춥니다. 대본에 근거 없는 숫자가 있으면 판정 API 가 잡습니다. "만들지 않는다" 가 이 시스템의 첫 기능입니다.
목소리가 길이를 정한다
영상은 TTS 를 장면마다 따로 만들어 그 길이가 곧 장면 길이가 됩니다. 읽는 말은 검수를 통과한 대본 그대로, 화면 글만 모델이 줄입니다. 자막은 영상에 태우지 않고 SRT 로 따로 올려 유튜브와 AI 검색이 글로 읽게 합니다.
실패를 숨기지 않는다
발행 워크플로는 한 채널만 실패해도 빨갛게 뜨고, 큐가 이틀치 이하로 남으면 경고합니다. 전부 실패해야만 알리던 때에는 8일을 모르고 지났습니다. 인스타그램은 됐는데 페이스북이 실패하면 다음 날 페이스북만 다시 갑니다.
되돌릴 수 없는 쪽은 사람이
유튜브 업로드는 비공개가 기본이고 공개는 사람이 누릅니다. 메타 광고 캠페인은 만들 때부터 일시중지이고 집행 시작은 광고 관리자에서 사람이 합니다. 블로그의 공개 발행도 사람의 별도 일정입니다.
In numbers
기록에 적힌 숫자만
0
카드뉴스 장 — 20덱 × 7장, 템플릿 4종을 덱마다 돌려 쓴다
public/cardnews · yt/card_templates.mjs
0
큐에서 나간 게시물 (2026-09-19 ~ 10-06) — 캐러셀 14 · 릴스 9, 그중 자동 19
public/cardnews/state.json
0:43
매일 발행 시각 (KST) — GitHub Actions 가 2건씩, 카드뉴스와 릴스를 번갈아
.github/workflows/cardnews.yml
0
주제 신호 갈래 — 우리 채널 성과 · Reddit 현장의 말 · 시장 자료 · 직접 들은 말
tools/signals.mjs
0
영상 편 — 롱폼 · 숏폼 쌍으로 대본 → 더빙 → 렌더 → 자막 → 유튜브
tools/video-pipeline/video/out
0
블로그 에이전트 역할 — researcher · writer · photo_editor · verifier · supervisor · editor · publisher
asty-blog-agent/workboard/server/harness.ts
0
블로그를 받는 사이트 — Korea by Local · Korea Decode · Korea Buy List
asty-blog-agent/workboard/shared/seeds.json
$0.50
글당 AI 예산 기본값 (주 $2 · 월 $10) — 넘으면 조용히 멈춘다
asty-blog-agent/workboard/migrations/0009_budget_settings.sql
Captures












Derived from this
여기서 뻗어 나간 프로젝트
ASTY Cabin Seoul 의 3개국어 블로그가 이 시스템의 첫 무대였고, 「어느 호텔의 3일」 사례 카드뉴스 시리즈와 관광 AX 유튜브 시리즈가 같은 공정으로 나갑니다. LocalFind 와 호텔 세일즈 대시보드처럼 "AI 가 만든 콘텐츠와 데이터를 어떻게 사업 성과로 잇는가" 를 다루는 프로젝트가 같은 축에 있습니다.
프로젝트를 불러오는 중입니다…
출처 · tools/{signals,topics,tts,make-video,upload-youtube}.mjs · tools/video-pipeline/yt/make_cards.mjs · .github/workflows/cardnews.yml · scripts/publish-cardnews.mjs · public/cardnews/{queue,state}.json · functions/api/{pipeline,meta}.ts · asty-blog-agent/docs/AGENT-HARNESS.md — 마케팅 자동화 시스템 축