AI 분야의 초기 단계 스타트업으로서, 공개적으로 만들어 가는 것(building in public)은 좋은 전략입니다. 실제로 공개적으로 만든다는 것은 한 가지를 의미합니다. 매일 무엇을 하고 있는지 보여줘야 한다는 것이죠.
여기에는 다음이 포함됩니다.
- 소셜 미디어 업데이트
- 커뮤니티 공지
- 지속적인 제품 및 엔지니어링 진행 상황
이는 단지 출시나 마일스톤만이 아니라, 매일매일의 작업을 말합니다.
진짜 문제: 우리는 무엇을 올려야 할지 몰랐다
많은 경우, X 계정을 운영하면서 우리가 마주한 가장 큰 어려움은 꾸준함이나 도구가 아니었습니다. 훨씬 더 단순한 문제였죠.
우리는 무엇을 올려야 할지 몰랐습니다. 특히 판매나 의견 공유보다 만드는 일에 더 집중하는 내향적인 팀을 운영할 때 그렇습니다. 하지만 일상적인 소통은 이미 그 자체로 하나의 창작 활동입니다. 그럼에도 그중 어느 것도 우리가 자신 있게 공유할 수 있는 무언가로 옮겨지지 못하고 있었습니다.
영감은 리서치가 아니라 현실에서 온다
우리는 결국, 돌이켜보면 너무나 당연한 사실을 깨달았습니다.
진짜 영감은 일상적인 작업에서 나옵니다. 콘텐츠 기획이나, 사람들이 끊임없이 화제거리나 최신 연구에 대해 이야기하는 X에서 벌어지는 일들에서 나오는 게 아닙니다.
우리에게 가장 솔직한 신호는 이미 거기에 있었습니다.
-
Slack
매일의 논의, 트레이드오프, 결정, 그리고 명료해지는 순간들.
-
Notion
쓰이고, 다시 쓰이고, 다듬어지는 문서들. 움직이고 있는 제품적 사고.
-
GitHub
우리가 실제로 출시하거나, 고치거나, 바꾼 것들. 의도가 아니라 실행.
바로 이것이 공개적으로 만들어 간다는 것의 본질입니다.
VM0로 아이디어를 에이전트로 바꾸기
VM0는 에이전트 빌더입니다. AI에게 "트윗을 써 달라"고 요청하는 대신, 우리는 더 현실에 발붙인 과제를 주었습니다.
실제로 무슨 일이 있었는지 관찰하고, 정리하고, 사람이 판단할 수 있도록 제시하라.
VM0를 사용해, 우리는 이 아이디어를 AGENTS.md와 vm0.yaml로 정의된 에이전트에 담아냈습니다.
이 에이전트는 다음을 수행합니다.
Analyze Slack messages and GitHub activity to generate viral X (Twitter) posts for building in public, then sync to Notion.
The agent will:
1. Gather content from multiple sources:
- Slack channels (last 24 hours)
- GitHub org repos (recent commits, PRs, issues, releases)
2. Identify "building in public" themes:
- Product launches, technical wins, milestones
- Behind-the-scenes insights and decisions
- Architecture choices, performance work
- Failures, pivots, developer lessons
- Open source and community contributions
3. Craft 2–3 post variations per theme:
- Single posts or short threads
- Hook → Context → Value → CTA
- Concrete details, no filler
4. Generate a markdown report with scores and recommendations
5. Sync everything to a Notion database as drafts
이건 제가 직접 글자 하나하나 작성한 게 아닙니다. VM0와의 지속적인 대화를 통해 함께 만들어낸 결과물이죠.
런타임 설정은 간단합니다.
version: "1.0"
agents:
build-in-public:
provider: claude-code
instructions: AGENTS.md
skills:
- slack
- notion
environment:
SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }}
NOTION_API_KEY: ${{ secrets.NOTION_API_KEY }}
NOTION_DATABASE_ID: ${{ secrets.NOTION_DATABASE_ID }}
에이전트는 다음 항목들을 데이터베이스로 삼아 표를 채워 달라고 요청합니다.
| Title | Content | Type | Status | Date | Source | Viralty score | Orginal content | Recommended | Priority |
|---|
에이전트를 실행한 후, 다음과 같은 결과를 얻었습니다.

GitHub Actions로 매일의 습관 만들기
그다음 우리는 이 에이전트를 VM0 워크플로우에 따라 예약된 GitHub Action에 연결했습니다.
https://blog.vm0.ai/en/posts/vm0-github-action
매주 평일 퇴근 후, 우리는 리포트를 받습니다. 실제로 무슨 일이 있었는지에 대한 일일 요약이, 공개적으로 풀어낼 수 있는 이야기들로 옮겨진 것이죠.
우리 팀의 워크플로우를 직접 확인해 보세요. https://github.com/vm0-ai/team-workflows/tree/main/build-in-public

사람이 개입하는 과정(Human in the loop)
다만, 우리는 자동 게시를 위해 X API에 직접 연결하지는 않았습니다. 자동으로 게시되는 글도 없고, X에 무작정 밀어 넣는 콘텐츠도 없습니다.
에이전트는 우리가 더 많이 올리게 만든 게 아닙니다. 우리가 더 주의를 기울이게 만들었습니다.
- 우리는 매일 하는 의미 있는 작업에 더 민감해졌습니다. 마치 일기를 쓰듯이 말이죠
- 무엇이 공개될 가치가 있는지에 대해 더 신중해졌습니다
- 공개적으로 말하기로 선택한 것에 대해 더 책임감을 갖게 되었습니다
게시하기 전에, 저는 팀과 함께 확인했습니다.
- 이걸 공개하고 사람들에게 알려도 괜찮은가?
- 사실인가?
- 탄탄한가?
- 우리가 이걸 내보내도 괜찮은가?
- 진짜인가?
그런 다음 저는 직접 글을 수정하고 게시 버튼을 눌렀습니다. X에는 봇이 가득합니다. 우리는 봇이 되기를 거부합니다.
우리는 의도적으로 완전 자동화 직전에서 멈췄습니다. 언제나 사람이 개입합니다.
AI는 코파일럿이지 대변인이 아닙니다. X에는 이미 인공적인 목소리가 충분히 많습니다.
공개적으로 만든다는 것에는 책임이 따른다
이것은 인간의 판단과 AI 코파일럿을 결합한 좋은 AI 마케팅 사례입니다. 이 경우 우리는 자동화를 위해 GitHub Actions를 사용합니다. 또한 우리는 VM0에 네이티브 cron 작업 기능을 적극적으로 개발하고 있어서, 앞으로는 VM0 에이전트를 만들고 작업을 직접 예약할 수 있게 될 것입니다.
많은 관심 부탁드립니다.
대기자 명단에 등록하고 여러분만의 에이전트를 만들어 보세요.


