
Trend Scout
- 4 installs
- Updated July 11, 2026
- october-academy/agent-plugins
Collects trending posts from Reddit, Hacker News, and Indie Hackers, filters them by score, and curates Threads post drafts in Korean.
About
This skill fetches recent popular posts from Reddit subreddits, Hacker News, and Indie Hackers, filters by upvotes and score, and drafts Korean-language Threads posts from them. A developer uses it to find content ideas and draft social posts for solo-developer audiences.
- Fetches Reddit + HN + Indie Hackers trending posts
- Curates 3-5 Korean Threads post drafts with source links
Trend Scout by the numbers
- 4 all-time installs (skills.sh)
- Ranked #1,606 of 1,879 Marketing & SEO skills by installs in the Skillselion catalog
- Data as of Aug 4, 2026 (Skillselion catalog sync)
npx skills add https://github.com/october-academy/agent-plugins --skill trend-scoutAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 4 |
|---|---|
| Last updated | July 11, 2026 |
| Repository | october-academy/agent-plugins ↗ |
What it does
Collects trending posts from Reddit, Hacker News, and Indie Hackers, filters them by score, and curates Threads post drafts in Korean.
Files
Trend Scout
Reddit + Hacker News + Indie Hackers에서 어제~오늘 인기글을 수집하고 Threads 포스트로 큐레이션.
Workflow
1. 데이터 수집
스크립트 실행으로 Reddit 8개 서브레딧 + Hacker News top stories 수집:
bash {SKILL_DIR}/scripts/fetch-trends.sh day 10결과: /tmp/trend-scout/ JSON 파일들. 스크립트가 통합 JSON을 stdout으로 출력.
2. Exa MCP 보강
Indie Hackers 등 JSON API 없는 소스는 Exa로 보강. 어제 날짜를 startPublishedDate로 지정:
mcp__exa__web_search_advanced_exa({
query: "indie hacker launched revenue solopreneur",
includeDomains: ["indiehackers.com"],
startPublishedDate: "{어제 YYYY-MM-DD}",
numResults: 5
})3. 필터링
수집 결과에서 선별. 기준 (references/sources.md 참고):
- Reddit upvote 10+ (소규모 서브레딧 5+), HN score 50+
- 제외: 스팸, 구인글, 구체성 없는 동기부여
큐레이션 우선순위: 1. 실제 숫자 (MRR, 유저 수, 매출) 2. 반직관적 인사이트 3. 실행 가능한 전략 4. 실패/교훈 사례
4. Threads 포스트 작성
포맷: references/threads-format.md
핵심: 500자 이내, 한국어 대화체, 핵심부터, 숫자 포함, 원문 링크 1개.
5. 출력
추천 포스트 3-5개:
## 추천 #1: {주제}
- 소스: {Reddit/HN/IH} | {서브레딧} | score {점수}
- 링크: {URL}
### Threads 초안
{500자 이내 한국어 포스트}
### 큐레이션 이유
{1줄}날짜 범위
기본 어제~오늘. Reddit t=day, HN은 실시간 top, Exa는 어제 날짜 startPublishedDate.
데이터 소스 설정
Reddit 서브레딧
| 서브레딧 | 주제 | 우선순위 |
|---|---|---|
| r/Solopreneur | 솔로프리너 전반 | 높음 |
| r/indiehackers | 인디해커 | 높음 |
| r/SaaS | SaaS 빌딩 | 높음 |
| r/Entrepreneur | 창업 전반 | 중간 |
| r/ClaudeAI | Claude/Anthropic | 중간 |
| r/ChatGPT | ChatGPT/OpenAI | 중간 |
| r/nextjs | Next.js 개발 | 낮음 |
| r/GeminiAI | Gemini/Google AI | 낮음 |
Reddit JSON API
https://www.reddit.com/r/{subreddit}/top.json?t=day&limit=10
https://www.reddit.com/r/{subreddit}/hot.json?limit=10- User-Agent 필수:
TrendScout/1.0 - Rate limit: 10회/분
- 인증 불필요
멀티 서브레딧 (한 번에 조회)
https://www.reddit.com/r/Solopreneur+indiehackers+SaaS/top.json?t=day&limit=20Hacker News
Firebase API (공개, 무제한)
# Top stories IDs
https://hacker-news.firebaseio.com/v0/topstories.json
# Individual story
https://hacker-news.firebaseio.com/v0/item/{id}.json
# Best stories
https://hacker-news.firebaseio.com/v0/beststories.json
# New stories
https://hacker-news.firebaseio.com/v0/newstories.json응답 예시
{
"id": 12345,
"type": "story",
"title": "Show HN: My solo SaaS hit $10k MRR",
"url": "https://example.com",
"score": 234,
"by": "username",
"descendants": 89
}Indie Hackers
공식 API 없음. 대안: 1. Exa MCP: mcp__exa__web_search_exa — includeDomains: ["indiehackers.com"]로 최신 글 검색 2. 미인증 JSON: https://www.indiehackers.com/feed.json (가용 시)
Exa 검색 예시
query: "indie hacker launched revenue milestone"
includeDomains: ["indiehackers.com"]
startPublishedDate: "2026-03-14"
numResults: 5필터링 기준
포함 (score 기준)
- Reddit: upvote 10+ (소규모 서브레딧은 5+)
- HN: score 50+
- Indie Hackers: 관련성 기반 (Exa 시맨틱)
제외
[deleted],[removed]포스트- selftext에 URL만 있는 스팸
- "hiring", "looking for cofounder" 같은 구인글
Threads 포스트 포맷 가이드
기본 원칙
- 500자 제한 (Threads 글자 제한)
- 한국어로 작성, 기술 용어는 영어 유지
- 이모지 최소화 (1-2개만, 장식용 금지)
- 링크는 글 마지막에 1개만
톤 & 스타일
- 대화체: "~했다", "~인 거다" (NOT "~입니다", "~됩니다")
- 직설적: 도입부 없이 핵심부터
- 구체적 숫자: "매출이 올랐다" → "$40k MRR 찍었다"
- 질문으로 끝내기: 참여 유도
구조 패턴
패턴 1: 인사이트 공유
[핵심 인사이트 1줄]
[배경/맥락 2-3줄]
[내 생각/해석 1-2줄]
[질문 또는 행동 촉구]패턴 2: 사례 소개
[사람/회사 + 숫자로 요약]
[무엇을 했는지]
[왜 흥미로운지]
[링크]패턴 3: 대비/반전
[통념 or 일반적 기대]
"근데 실제로는..."
[반전 사실 + 근거]
[시사점]좋은 예시
6개월, 광고비 0, 혼자서 SaaS 부트스트랩.
이 사람이 한 건 딱 3가지:
1. Reddit에 매주 1개 글
2. 유저 DM 하루 5개
3. 무료 → 유료 전환 이메일 1통
광고 안 쓰고 유저 100명 모은 핵심은 "매일 5개 DM"이었다고.
결국 마케팅이 아니라 영업이다.
reddit.com/r/Solopreneur/...피해야 할 것
- "오늘 흥미로운 글을 발견했는데요" 같은 뻔한 도입부
- 해시태그 남발 (#인디해커 #솔로프리너 #1인개발 → 1-2개만)
- 원문 번역 투 (영어 직역체)
- "꼭 읽어보세요!" 같은 강요형 CTA
큐레이션 기준
선택 우선순위 (높음 → 낮음)
1. 실제 숫자가 있는 사례 (MRR, 유저 수, 매출) 2. 반직관적 인사이트 (통념과 반대) 3. 실행 가능한 전략 (바로 따라할 수 있는) 4. 실패/교훈 사례 (성공담보다 공감 높음) 5. 도구/리소스 추천 (검증된 것만)
제외 기준
- 자기홍보 / 스팸
- upvote 5 미만
- 구체성 없는 동기부여 글
- 이미 널리 알려진 뻔한 조언
#!/bin/bash
# fetch-trends.sh — Reddit + Hacker News 인기글 수집
# Usage: bash fetch-trends.sh [day|week] [limit]
# Output: JSON to stdout
PERIOD="${1:-day}"
LIMIT="${2:-10}"
UA="TrendScout/1.0"
OUTDIR="/tmp/trend-scout"
mkdir -p "$OUTDIR"
# ── Reddit ──────────────────────────────────────────
SUBREDDITS="Solopreneur,indiehackers,SaaS,Entrepreneur,ClaudeAI,ChatGPT,nextjs,GeminiAI"
echo "=== Reddit Top Posts (t=$PERIOD, limit=$LIMIT) ===" >&2
IFS=',' read -ra SUBS <<< "$SUBREDDITS"
for SUB in "${SUBS[@]}"; do
echo "Fetching r/$SUB..." >&2
curl -sA "$UA" "https://www.reddit.com/r/${SUB}/top.json?t=${PERIOD}&limit=${LIMIT}" \
> "$OUTDIR/reddit-${SUB}.json" 2>/dev/null
sleep 1 # rate limit 준수
done
# ── Hacker News ─────────────────────────────────────
echo "=== Hacker News Top Stories ===" >&2
# HN API: top story IDs → 개별 item fetch
curl -s "https://hacker-news.firebaseio.com/v0/topstories.json" \
| python3 -c "import sys,json; ids=json.load(sys.stdin)[:${LIMIT}]; print(json.dumps(ids))" \
> "$OUTDIR/hn-top-ids.json" 2>/dev/null
# Fetch each story
python3 -c "
import json, urllib.request, sys
with open('$OUTDIR/hn-top-ids.json') as f:
ids = json.load(f)
stories = []
for sid in ids:
try:
url = f'https://hacker-news.firebaseio.com/v0/item/{sid}.json'
req = urllib.request.Request(url)
with urllib.request.urlopen(req, timeout=5) as resp:
item = json.loads(resp.read())
if item and item.get('type') == 'story':
stories.append({
'id': item.get('id'),
'title': item.get('title', ''),
'url': item.get('url', f'https://news.ycombinator.com/item?id={sid}'),
'score': item.get('score', 0),
'comments': item.get('descendants', 0),
'by': item.get('by', ''),
'hn_url': f'https://news.ycombinator.com/item?id={sid}'
})
except Exception as e:
print(f'Error fetching {sid}: {e}', file=sys.stderr)
with open('$OUTDIR/hn-stories.json', 'w') as f:
json.dump(stories, f, ensure_ascii=False, indent=2)
print(f'Fetched {len(stories)} HN stories', file=sys.stderr)
"
# ── 통합 요약 ───────────────────────────────────────
python3 -c "
import json, glob, os
outdir = '$OUTDIR'
results = {'reddit': {}, 'hackernews': []}
# Parse Reddit
for f in sorted(glob.glob(f'{outdir}/reddit-*.json')):
sub = os.path.basename(f).replace('reddit-','').replace('.json','')
try:
with open(f) as fh:
data = json.load(fh)
posts = []
for child in data.get('data',{}).get('children',[]):
d = child.get('data',{})
posts.append({
'title': d.get('title',''),
'score': d.get('score',0),
'comments': d.get('num_comments',0),
'url': f\"https://reddit.com{d.get('permalink','')}\",
'author': d.get('author',''),
'created_utc': d.get('created_utc',0),
'selftext': (d.get('selftext','') or '')[:300]
})
results['reddit'][sub] = posts
except Exception as e:
results['reddit'][sub] = {'error': str(e)}
# Parse HN
try:
with open(f'{outdir}/hn-stories.json') as fh:
results['hackernews'] = json.load(fh)
except:
pass
print(json.dumps(results, ensure_ascii=False, indent=2))
"