Claude API를 사용하여 Reddit 모니터링을 자동화하는 방법 (전체 코드)
요약
Claude API와 Python을 활용하여 Reddit의 특정 서브레딧을 자동으로 모니터링하고 분석하는 시스템 구축 방법을 소개합니다. 게시물의 관련성과 감성을 점수화하여 유의미한 정보만 필터링함으로써 수동 모니터링의 비효율성을 해결합니다.
핵심 포인트
- Anthropic SDK와 PRAW를 활용한 자동화 워크플로우 구축
- Claude API를 이용한 게시물 관련성 및 감성 점수 산정
- API 비용 절감을 위한 배치(Batch) 처리 방식 적용
- 임계값 설정을 통한 고가치(High-Signal) 정보 필터링
수동 Reddit 모니터링에 시간을 낭비하지 마세요
자신의 제품, 니치(niche), 또는 경쟁사에 대한 언급을 추적하기 위해 Reddit을 살펴본 적이 있다면 그 고통을 잘 알 것입니다. r/MachineLearning, r/learnpython, r/entrepreneur를 열고 수백 개의 게시물을 훑어보지만, 대부분은 노이즈(noise)입니다. 그렇게 한 시간이 지나갑니다. 유용한 정보를 찾았을 수도 있고, 아닐 수도 있습니다.
저는 Python과 Claude API를 사용하여 이 전체 워크플로우(workflow)를 자동화했습니다. 이제 이 시스템은 정해진 일정에 따라 실행되며, 모든 게시물의 관련성(relevance)과 감성(sentiment)을 점수화하고, 행동할 가치가 있는 내용이 나타날 때만 저에게 알림을 보냅니다.
전체 설정 방법은 다음과 같습니다.
1단계: Anthropic SDK 설치
pip install anthropic praw requests
console.anthropic.com에서 Anthropic API 키를 발급받아야 합니다. 이를 환경 변수(environment variable)로 설정하세요:
export ANTHROPIC_API_KEY="sk-ant-..."
2단계: Reddit 게시물 가져오기
PRAW(공식 Reddit API 래퍼)를 사용하거나 JSON 엔드포인트에 직접 requests를 사용할 수 있습니다. 여기서는 읽기 전용(read-only)을 위해 OAuth가 필요 없는 가벼운 requests 방식을 사용합니다:
import requests
def fetch_reddit_posts(subreddit: str, limit: int = 25) -> list[dict]:
...
모니터링하려는 각 서브레딧(subreddit)에 대해 이 함수를 호출하세요:
subreddits = ["MachineLearning", "learnpython", "entrepreneur", "SideProject"]
all_posts = []
for sub in subreddits:
...
3단계: Claude API로 게시물 점수 매기기
이제 게시물을 Claude에 전달하여 감성 및 관련성 점수를 매깁니다. API 비용을 낮게 유지하기 위해 배치(batch) 처리를 합니다. 한 번의 호출로 한 번에 최대 15개의 게시물을 처리합니다.
import anthropic
import json
...
```
"):
raw = raw.split("
```")[1]
if raw.startswith("json"):
raw = raw[4:]
...
4단계: 신호가 높은(High-Signal) 게시물 필터링 및 알림
임계값(threshold)을 설정합니다. 관련성(relevance) 점수가 7 이상인 모든 게시물이 노출됩니다. 이를 출력하거나, 로그를 남기거나, 웹훅(webhook)을 보낼 수 있습니다.
def monitor_reddit(topic: str, subreddits: list[str], threshold: int = 7):
all_posts = []
for sub in subreddits:
...
출력 예시:
=== 3 High-Signal Posts ===
[9/10] I built an AI agent that monitors Slack + Reddit for competitor mentions
...
이것이 대체하는 것
- 하루 2~3시간씩 수동으로 Reddit을 스크롤하는 작업
- 모든 곳에 존재할 수 없어서 놓치는 언급(mentions)
- 일관성이 없는 직관적인 관련성 점수 산정 (Gut-feel relevance scoring)
Claude API가 추론 (reasoning)을 수행하며, 여러분은 그 결과로 드러난 내용에 따라 행동하기만 하면 됩니다.
확장 방법
제가 이 프로젝트를 더 발전시킨 몇 가지 방향입니다:
- 스케줄링 (Schedule it): cron 또는 GitHub Actions를 사용하여 매시간 실행
- 중복 제거 (Deduplicate): 게시물 ID를 SQLite에 저장하여 오래된 게시물을 다시 점수 매기지 않도록 방지
- 웹훅 알림 (Webhook alerts): 관련성 (relevance) 점수가 9 이상일 때 Slack, Discord 또는 Telegram으로 알림 전송
- 경쟁사 추적 (Track competitors): 주제 문자열에 경쟁사 이름을 추가 — Claude가 자연스럽게 이를 식별합니다
전체 브라우저 자동화 스타터 키트(browser automation starter kit)를 원하시나요? 모든 것을 여기에 패키지로 구성해 두었습니다: https://payhip.com/b/GuCSa — 미리 제작된 Claude API 에이전트 템플릿이 포함되어 있습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기