
Last30Days AI Research Skill
github.com/mvanhorn/last30days-skill- Category
- AI Agents
- Rank
- No. 79Tools index
- Listed in
- #4 Research with an agent
- Pricing
- Open Source
- Type
- AGENT
- Builder
- @mvanhorn
- GitHub
- 62.1k stars
- Latest release
- v3.24.0
- Date
About
An AI agent skill that automatically researches any topic across Reddit, X, YouTube, Hacker News, Polymarket, and other platforms from the last 30 days, then synthesizes findings into a grounded summary with real citations. Designed to keep users current with rapidly evolving topics in AI and tech.
What it does
A packaged set of agent instructions plus a Python engine that answers one question: what happened around a person, company, or topic in the past 30 days. It fans out concurrently across Reddit, X, YouTube, TikTok, Hacker News, GitHub, arXiv and Polymarket, normalizes each hit, hard filters by date, scores it on native engagement counts, deduplicates, then hands ranked evidence clusters back to the model that called it. A separate discovery mode inverts the flow: it sweeps hot lists first, nominates candidate topics, and runs a full research pass on each one that survives.
Why it's ranked here
What lifts this above a search wrapper is the plumbing around ranking. Source outcomes are typed into ten distinct states, so a rate limit or an auth failure never reads as a source having nothing to say. The machine-readable research contract is versioned and locked by a checked-in golden snapshot. A discovery run where nothing clears the evidence bar prints an honest empty result and names the closest weak signal instead of ranking noise. Coverage is gated at 84 percent. The cost is real: most of the source table needs credentials, cookies, or a helper binary on the path before it does anything at all.
What's good
Retrieval quality has explicit defenses. A grounding check requires the head word of the topic to appear before final ranking, so a viral off-topic post cannot ride engagement into the brief, and the check is deliberately conservative so its own misses cost nothing. The limited budget for fetching comments goes to posts that already passed grounding. The evidence bar for discovery is absolute rather than relative to the current pool, which is the usual way such bars rot. There is also a local evaluation harness measuring overlap, retention, precision and ranked gain against a baseline revision, with a separate model acting as judge.
Tradeoffs
Free out of the box means Reddit, Hacker News, Polymarket and GitHub. X needs either browser session cookies or a paid provider key, TikTok and Instagram need a third-party scraping key, and several sources activate only when their helper binary resolves on the agent subprocess path, which the project documents as a recurring setup failure. One documented Reddit search path routes through a paid model provider's web search tool. HTML publishing uploads pages to a hosted service and they are public by default. The quality evaluation runs five fixed topics by default, and its own notes call the ranking metrics comparative rather than truth.
How to use it well
Best fit is anyone who needs the community's current read before a call, a purchase, or a build: sales prep, competitor watch, meeting research, prompt technique hunting. It belongs at the front of a workflow, feeding a versioned machine-readable export to whatever writes the actual document. Budget half an hour for credentials and browser auth, or accept the thin free tier. It is not monitoring and it is not an archive. The window is recent by design, so it will not tell you what a company shipped two years ago, and it makes no claim on paywalled or private sources.
Technical notes+
pyproject.toml declares Python 3.12 or newer with an empty runtime dependency list, puts pytest, pytest-cov, pyyaml and towncrier in a dev group, and pins the coverage floor at 84. docs/how-search-works.md documents the retrieval path: two sources run in parallel on a two-worker thread pool, Reddit search goes out through the OpenAI Responses API with an allowed-domains filter and each thread is then enriched against Reddit's free JSON endpoint for real scores and top comments, while X falls back from a vendored Bird client to the xAI API to skipping entirely, with three retries and exponential backoff underneath. docs/reference/json-export.md fixes the agent export at version 1.2 with a ten-state source outcome map and a separate discovery contract at 1.1. docs/search-quality-eval.md covers the optional offline harness that computes Jaccard overlap, retention, precision and nDCG against a baseline revision using Gemini as judge, and states it is not in CI by default. mcp/cmd/last30days-pp-mcp/main.go is a thin stdio server registering one research tool, built on mark3labs/mcp-go per mcp/go.mod, and mcp/README.md describes the binary embedding the Python engine, extracting it to a per-user cache and shelling out to python3. hooks/hooks.json wires a single session-start config check, .claude-plugin/plugin.json carries the plugin metadata, LICENSE is MIT, CONCEPTS.md defines the grounding, confidence-floor and checkpoint vocabulary, CONFIGURATION.md enumerates the environment and flag knobs, and AGENTS.md requires skills/last30days/scripts/lib/__init__.py stay a bare package marker with no eager imports, which the fetched file confirms.
Observed
- License
- MIT
- Language
- Python engine, plus a Go MCP server wrapping it
- Runtime requirement
- Python 3.12 or newer; the project manifest declares no third-party runtime dependencies
- Install surface
- harness plugin marketplace, the Agent Skills installer, or a drag-in bundle for Claude Desktop
- Interfaces
- slash command inside agent harnesses, direct command-line invocation of the engine, and an MCP server exposing one research tool
- Machine contract
- versioned JSON export for research plus a separately versioned export for discovery, locked by a golden snapshot test
- Failure reporting
- per-source outcome states that separate a clean empty result from rate limits, auth failure, timeout, unreachable endpoints and schema drift
- Tests
- pytest suite in a top-level tests directory with a coverage floor configured in the project manifest
- Documentation
- README maintained in several languages beyond English, with separate concept, configuration and contributor guides
Read from README.md, pyproject.toml, CONCEPTS.md, CONFIGURATION.md, AGENTS.md, LICENSE, docs/how-search-works.md, docs/search-quality-eval.md, docs/reference/json-export.md, mcp/cmd/last30days-pp-mcp/main.go, mcp/README.md, mcp/go.mod, hooks/hooks.json, .claude-plugin/plugin.json, skills/last30days/scripts/lib/__init__.py.
What it can do
Research recent discussions across multiple platforms
Topic or keyword → Aggregated content from Reddit, X, YouTube, Hacker News, Polymarket and other platforms from last 30 days
Synthesize research findings into comprehensive summary
Raw data from multiple platforms → Grounded narrative summary with real citations
Compare topics or viewpoints across platforms
Multiple topics or comparative query → Comparative analysis showing differences and similarities
Auto-save research sessions
Research query and results → Saved research session for future reference
Extract real-time insights from prediction markets
Topic related to predictions or forecasts → Market sentiment and probability data with citations
Track rapidly evolving AI and tech topics
AI or technology-related topic → Current status and recent developments with timeline
Tags
Tech Stack
Comments (0)
No comments yet
Editorially curated, with community endorsements as a secondary signal. Corrections welcome.