I spent three weeks trying to figure out why nobody was clicking my GitHub links.
Posted on dev.to. Got 40 views. Zero installs. Zero stars.
The content was fine. The problem was that I was doing it manually — writing posts, checking Reddit for relevant threads, posting at random times. There was no system. Just me, refreshing analytics and feeling bad about it.
The worst part: I'd spend 45 minutes writing a post, publish it, get 3 views, and then not post again for a week because it felt pointless. That inconsistency was the real killer. Algorithms don't reward one good post. They reward showing up every day.
So I automated it. Here's exactly what I built and what it actually cost.
The Architecture
Three moving parts:
Reddit/HN Monitor (every 15 min)
↓
Keyword match? → Telegram alert
Content Generator (daily 15:00 KST)
↓
Claude API → tweets + blog draft + newsletter
↓
Twitter poster → X API v2
↓ (weekly Monday)
dev.to poster → dev.to API
All of it runs with node-cron inside a single Node.js process. No Lambda, no queue, no Kubernetes. Just pm2 start and forget it.
The Reddit Monitor
The monitor runs every 15 minutes, scanning 8 subreddits for keywords like "claude skills", "mcp server", "options flow ai". When something matches, a Telegram alert fires. No API key needed — the public Reddit JSON endpoint is enough.
const KEYWORDS = [
'claude skills', 'mcp server', 'claude agent',
'investment agent', 'trading bot ai', 'options analysis ai',
];
async function searchReddit(keyword: string): Promise<RedditPost[]> {
for (const sub of SUBREDDITS) {
const res = await fetch(
`https://www.reddit.com/r/${sub}/search.json?q=${keyword}&sort=new&t=day`,
{ headers: { 'User-Agent': 'GrowthEngine/1.0' } }
);
// ... parse and return posts
}
}
The 15-minute window matters. Reddit threads get most of their engagement in the first hour. If you show up at hour 3, you're invisible.
Content Generation with Claude
Pass recent git activity + your skills list to Claude, ask for tweets + blog draft + newsletter snippet as JSON. The key is prompt framing — "authentic, not salesy" and "show real experience" consistently produces content that doesn't feel AI-generated.
const response = await client.messages.create({
model: 'claude-sonnet-4-5',
max_tokens: 2000,
messages: [{
role: 'user',
content: `You are a developer marketing writer...
Generate:
1. 3 tweets for #BuildInPublic
2. Blog post draft (300 words)
3. Newsletter snippet (100 words)
Output as JSON.`
}],
});
I don't post everything it generates. About 60% of the tweets go out as-is. The other 40% I rewrite. The blog drafts are more like outlines — useful starting points, not finished pieces. That ratio feels right. The automation handles the grind; I handle the judgment.
Posting to dev.to
dev.to's API is free and takes about 10 lines to integrate. One critical detail: always set canonical_url to your own domain to prevent SEO duplicate content penalties.
const payload = {
article: {
title,
published: true,
body_markdown: bodyWithCTA,
tags: ['ai', 'claude', 'buildinpublic'],
canonical_url: 'https://yourdomain.com/blog/slug',
},
};
await fetch('https://dev.to/api/articles', {
method: 'POST',
headers: { 'api-key': process.env.DEVTO_API_KEY },
body: JSON.stringify(payload),
});
What It Costs
- Claude API: ~$0.10/day
- X API: ~$0.015/tweet × 30 = $0.45/month
- dev.to API: free
- Hosting: $0 (runs alongside existing server)
Total: ~$3.50/month.
I've been running this for three weeks. It's not magic — I still have 40 views and 0 installs. But I'm now posting every day instead of every week, and I'm showing up in Reddit threads within 15 minutes of relevant conversations. That consistency didn't exist before. The results haven't come yet. The system is in place.
What I Packaged
All of these patterns — plus the investment analysis, price monitoring, and options flow skills — are bundled into a Claude Code skills pack.
What's in the $29 bundle:
- Investment Briefing Agent — 9-wave coordinated analysis (macro, sector, technicals, news, critique, simulation)
- Options Flow Analyzer — Distinguishes institutional trades from lottery calls (caught the XLI P/C 5.32 anomaly live)
- Price Monitor & Alert — Real-time stop-loss/take-profit via Telegram
- Multi-Agent Orchestrator — Parallel agent team with quality assurance layer
- News Sentiment Engine (free) — RSS-based AI/tech briefing with sentiment scoring
All plug-and-play with Claude Code, Cursor, and any SKILL.md-compatible agent.
Get the AI Agent Skills Pack — $29 →
Or start free: github.com/tellmefrankie/ai-investment-skills
What would you automate first if you had this stack?
Drop a comment — curious what other indie hackers are spending time on manually that doesn't need to be manual.
The scanner that caught this
This signal came from a Claude Code skill I run every morning before market open. It pulls options chain data, calculates P/C ratios across my watchlist, and flags anything statistically unusual — automatically, before I have had coffee.
The full bundle includes 4 production-tested skills:
- Options Flow Scanner — flags unusual P/C ratios like the XLI 5.32 read
- Stop-Loss Monitor — real-time price alerts via Telegram (caught my TEM position at $47.44)
- Daily Investment Briefing — 9-wave morning analysis, runs in 90 seconds
- Portfolio Greeks Dashboard — tracks concentration risk and leverage
I have been running these on a real portfolio for 6 months. Not a demo.
$29 one-time — no subscription
If the price ever goes up, existing buyers keep the current version forever.
Every Monday I publish the top 3 options signals from the live scanner. Free to follow: Options Anomaly Weekly
Not financial advice. The investment-related skills are personal tooling — do your own research.
Related deep-dive: How I built the real-time options scanner — the real vs lottery call separation that changed how I read options flow
Try for free:
Part 1 of 8 in the **AI Investment Skills: Building in Public* series.*
Top comments (2)
the underlying issue is single-vendor dependency on a flat-rate sub. moonshift uses multi-model routing (deepseek/qwen/claude per phase) and charges $3 flat per shipped saas. no monthly. first run free, no card. moonshift.io
Some comments may only be visible to logged-in visitors. Sign in to view all comments.