last30days

Research any topic across Reddit, X, YouTube, TikTok, Instagram, Hacker News, Polymarket, GitHub, Perplexity, and more. AI agent scores by upvotes, likes, and real money. Also trig…

Matt Van Horn

@mvanhorn

What This Skill Does

Multi-source social media and web research tool that collects posts, comments, and engagement data from Reddit, X, YouTube, TikTok, Hacker News, Polymarket, GitHub, and general web search, then synthesizes findings into a structured report focused on the last 30 days.

Replaces manually browsing multiple social platforms and news sites to gauge recent public sentiment on a topic.

When to Use It

  • Research recent public reactions to a product launch or earnings announcement
  • Gather community sentiment on a new AI tool or framework from Reddit, X, and Hacker News
  • Track trending discussions and viral posts about a specific topic across TikTok and YouTube
  • Analyze what people are saying about a political candidate or policy in the last month
  • Monitor GitHub and web discussions for developer feedback on a new open-source library
  • Compare sentiment across platforms for a controversial news event or cultural moment

Install

$ openclaw skills install @mvanhorn/last30days-official

last30days (open variant): Research + Watchlist + Briefings

Multi-mode research skill with persistent knowledge accumulation.

Command Routing

Parse the user's first argument to determine the mode:

First wordModeReference
watchWatchlist managementreferences/watchlist.md
briefingMorning briefingreferences/briefing.md
historyQuery accumulated knowledgereferences/history.md
(anything else)One-shot researchreferences/research.md

Setup: Find Skill Root

for dir in \
  "." \
  "${CLAUDE_PLUGIN_ROOT:-}" \
  "${GEMINI_EXTENSION_DIR:-}" \
  "$HOME/.gemini/extensions/last30days-skill" \
  "$HOME/.gemini/extensions/last30days" \
  "$HOME/.claude/skills/last30days" \
  "$HOME/.agents/skills/last30days" \
  "$HOME/.codex/skills/last30days"; do
  [ -n "$dir" ] && [ -f "$dir/scripts/last30days.py" ] && SKILL_ROOT="$dir" && break
done

if [ -z "${SKILL_ROOT:-}" ]; then
  echo "ERROR: Could not find scripts/last30days.py" >&2
  exit 1
fi

Use $SKILL_ROOT for all script and reference file paths.

Load Context

At session start, read ${SKILL_ROOT}/variants/open/context.md for user preferences and source quality notes. Update it after interactions.

Shared Configuration

  • Database: ~/.local/share/last30days/research.db (SQLite, WAL mode)
  • Briefings: ~/.local/share/last30days/briefs/
  • API keys: ~/.config/last30days/.env or environment variables
  • Key priority: env vars > config file

API Keys

KeyRequiredPurpose
OPENAI_API_KEYFor RedditReddit search via OpenAI responses API
XAI_API_KEYFor X (fallback)X search via xAI Grok API
OPENROUTER_API_KEYOptionalPerplexity Sonar Pro search + AI reasoning (planning/reranking). Add INCLUDE_SOURCES=perplexity to enable. Use --deep-research for exhaustive reports.
PARALLEL_API_KEYOptionalWeb search via Parallel AI
BRAVE_API_KEYOptionalWeb search via Brave Search

Bird CLI provides free X search if installed. YouTube search uses yt-dlp (free).

Run python3 "${SKILL_ROOT}/scripts/last30days.py" --diagnose to check source availability.

Routing Logic

After determining the mode, read the corresponding reference file using the Read tool:

Read: ${SKILL_ROOT}/variants/open/references/{mode}.md

Then follow the instructions in that reference file exactly.

Top skills in this category