ai-startup
CHAPTER 36 / 100
읽기 약 2분
FUNCTION
AI 소셜 미디어: X/인스타 자동 포스팅
핵심 개념
콘텐츠 캘린더·자동 생성·발행·반응 분석 — 주 7일 자동.
본문
콘텐츠 캘린더
[1주 plan]
월: 인사이트 (긴 트윗·LinkedIn)
화: 코드 팁 (스니펫 + 이미지)
수: 사례 분석
목: AMA / 질문
금: 주간 회고
토: 영감·인용
일: 휴식 (가벼운 콘텐츠)
→ 매일 1포스트 = 주 7개
→ 자동 + 인간 검토자동 생성
async function generatePost(theme: string, format: 'tweet' | 'thread' | 'linkedin') {
const result = await generateText({
model: anthropic('claude-sonnet-4-6'),
system: `You write engaging social media for indie SaaS founders.
Style:
- Conversational, no corporate speak
- Concrete examples (numbers, screenshots)
- Hook in first line
- Avoid clichés
- Korean if specified`,
prompt: `Generate a ${format} post about: ${theme}
Format-specific requirements:
- tweet: max 280 chars, punchy
- thread: 5-7 tweets, narrative arc
- linkedin: 1500 chars, story format`,
});
return result.text;
}Twitter API (X)
import { TwitterApi } from 'twitter-api-v2';
const client = new TwitterApi({
appKey: process.env.X_APP_KEY!,
appSecret: process.env.X_APP_SECRET!,
accessToken: process.env.X_ACCESS_TOKEN!,
accessSecret: process.env.X_ACCESS_SECRET!,
});
// 단일 트윗
await client.v2.tweet({
text: postText,
});
// Thread
async function postThread(tweets: string[]) {
let prevId: string | undefined;
for (const text of tweets) {
const result = await client.v2.tweet({
text,
reply: prevId ? { in_reply_to_tweet_id: prevId } : undefined,
});
prevId = result.data.id;
await sleep(2000);
}
}
// 이미지 첨부
const mediaId = await client.v1.uploadMedia('./image.png');
await client.v2.tweet({ text, media: { media_ids: [mediaId] } });스케줄링
// Vercel Cron — 매일 오전 9시
// vercel.json
{
"crons": [
{ "path": "/api/cron/post-daily", "schedule": "0 9 * * *" }
]
}
// app/api/cron/post-daily/route.ts
export async function GET() {
const today = new Date().getDay(); // 0=일, 1=월...
const themes = {
1: '주간 인사이트',
2: '코드 팁',
3: '사례 분석',
4: 'AMA',
5: '주간 회고',
6: '영감',
0: '가벼운 콘텐츠',
};
const post = await generatePost(themes[today], 'tweet');
// Slack 검토 (5분 대기)
await postToSlack({ text: `검토 필요: ${post}`, approveUrl: ... });
return Response.json({ scheduled: post });
}인스타그램
// Instagram Graph API (Facebook 페이지 필요)
const FB_PAGE_TOKEN = process.env.FB_PAGE_TOKEN;
const IG_USER_ID = process.env.IG_USER_ID;
// 1. 미디어 컨테이너 생성
const containerRes = await fetch(
`https://graph.facebook.com/v18.0/${IG_USER_ID}/media?` +
new URLSearchParams({
image_url: 'https://...',
caption: '...',
access_token: FB_PAGE_TOKEN!,
}),
{ method: 'POST' },
);
const { id: containerId } = await containerRes.json();
// 2. 발행
await fetch(
`https://graph.facebook.com/v18.0/${IG_USER_ID}/media_publish?` +
new URLSearchParams({
creation_id: containerId,
access_token: FB_PAGE_TOKEN!,
}),
{ method: 'POST' },
);콘텐츠 → 다채널
1개 인사이트 →
- Twitter Thread
- LinkedIn 글
- Instagram 카드 이미지
- YouTube 쇼츠 스크립트
- 블로그 짧은 버전
[자동화]
1. 핵심 메시지 1개 작성
2. LLM이 각 채널 형식 변환
3. 인간 검토 → 발행
4. 일주일에 걸쳐 분산 발송
→ 1개 콘텐츠로 7개 포스트분석
// X API — 메트릭
const tweet = await client.v2.singleTweet(tweetId, {
'tweet.fields': ['public_metrics'],
});
console.log(tweet.data.public_metrics);
// { retweet_count, reply_count, like_count, quote_count, impression_count }
// → 잘 된 포스트 패턴 분석
// → AI에 피드백 (어떤 톤이 잘 됐는지)다음 챕터
CH.37 "AI 영상 스크립트".
AI 프롬프트
🤖 AI에게 잘 물어보는 법 — 모델·전략별 프롬프트
무료
월 $0 — 검증·시작 단계
AI 소셜 미디어을 무료 도구만으로 시작하는 방법을 알려줘.
소자본
월 $20~50 — MVP·초기 운영
월 $20~50 예산으로 AI 소셜 미디어을 검증·MVP 단계까지 진행하는 전략은?
프로덕션
월 $200~500 — 성장 단계
AI 소셜 미디어을 프로덕션 단계로 확장할 때 필요한 도구·운영 체계는?
스택
풀스택 — 도구 조합 분석
2026년 AI 소셜 미디어 관련 도구 5개를 조합한 추천 스택을 알려줘.
⭐ 이것만 기억하세요
AI 소셜 미디어: X/인스타 자동 포스팅은 이 3가지만 확실히 잡으세요
1.주 7개 자동 + 인간 검토 = 일관된 채널 운영
2.1개 인사이트 → 7개 채널 자동 변환
3.Vercel Cron + X API + 검토 워크플로우
공유하기
진행도 36 / 100