Cron Job: 每日创意推送
Job ID: d3bd77eb0469
Run Time: 2026-09-23 06:01:28
Schedule: 0 6 * * *
Prompt
[IMPORTANT: The user has invoked the "idea-miner" skill, indicating they want you to follow its instructions. The full skill content is loaded below.]
name: idea-miner
description: Mine daily creative ideas & startup signals from HN/GitHub.
version: 1.0.0
author: Hermes Agent
license: MIT
metadata:
hermes:
tags: [ideas, trends, research, startup, daily-briefing]
related_skills: [youtube-content, blogwatcher]
🧠 Idea Miner — Daily Creative Intelligence
Overview
Mines today's creative ideas, inspiration hotspots, and startup signals from public sources. Produces a structured Markdown report with demand signals, trending projects, and actionable insights.
The report is saved to /opt/data/hermes/idea-miner/idea-miner_{YYYYMMDD}.md and delivered to the configured destination (Telegram, etc.).
When to Use
- Cron job for daily idea-mining runs (referenced by
trender-idea-minerand每日创意推送) - User asks: "what are today's hot ideas", "find me startup opportunities", "trending projects analysis"
- Any session that needs to synthesize multi-source trend intelligence
Data Sources
✅ Available & Tested
| Source | API Endpoint | Notes |
|---|---|---|
| HN Algolia (front page) | https://hn.algolia.com/api/v1/search?tags=front_page&hitsPerPage=20 |
Returns top stories with points |
| HN Algolia (Ask HN) | https://hn.algolia.com/api/v1/search?tags=ask_hn&hitsPerPage=15 |
Good for demand/need signals |
| HN Algolia (Show HN recent) | https://hn.algolia.com/api/v1/search_by_date?tags=show_hn&numericFilters=points%3E10&hitsPerPage=12 |
URL-encode > as %3E |
| HN Firebase (item detail) | https://hacker-news.firebaseio.com/v0/item/{ID}.json |
Individual story metadata |
| GitHub Search (new repos) | https://api.github.com/search/repositories?q=stars:%3E100+created:%3E{YYYY-MM-DD}&sort=stars&order=desc&per_page=10 |
Header: Accept: application/vnd.github.v3+json, User-Agent: HermesAgent/1.0 |
❌ Currently Unavailable
| Source | Issue |
|---|---|
Reddit JSON API (old.reddit.com, www.reddit.com) |
Blocked by Reddit (403 "whoa there, pardner") — needs OAuth credentials |
| Reddit pullpush.io (public archive) | Returns empty results from this IP |
| Google Trends RSS | Endpoint trends.google.com/trendingsearches/daily/rss?geo=US returns 404 |
| Google Trends API | trends.google.com/trends/api/dailytrends returns 404 |
| X/Twitter via xurl | xurl CLI not installed on this VPS |
Data Acquisition Workflow
- Use
curl -s -o /tmp/filename.json -w '%{http_code}'to save to temp file first (avoids pipe-to-interpreter security blocks in cron mode) - Parse with
python3 -c "import json; data = json.load(open('/tmp/filename.json')); ..." - Saved temp files are disposable — clean up or leave in /tmp
Report Format
The report uses Chinese (用户偏好) with the following sections:
# 🧠 Idea Miner — 每日创意情报 (YYYY-MM-DD)
> 数据来源:[list of sources used]
## 📢 需求现场 — 高意向需求 & 讨论
Top demand signals from Ask HN, discussions, needs
## 📈 趋势项目 — GitHub 热门新仓库
Table: project | ⭐ | description | direction
Followed by trend interpretation block (code fence with arrows)
## 🔬 Show HN 精选 — 本周最新项目
Table: project | points | description
## 🌟 今日创业灵感精选
### 高潜力方向
### 已验证信号
## 📊 数据快照
Key metrics summary table
Report Generation Steps
- Fetch HN front page — identifies the overall tech zeitgeist for the day
- Fetch HN Ask HN — captures user needs, pain points, and demand signals
- Fetch HN Show HN (recent, points>10) — captures new projects people are building
- Fetch GitHub trending repos (last 7 days) — identifies what developers are excited about
- Fetch additional sources if available (Reddit, Twitter, etc.)
- Synthesize findings into the structured report
- Save to file at
/opt/data/hermes/idea-miner/idea-miner_{YYYYMMDD}.md - Output the report as final response — the cron delivery system automatically delivers it
File Save Convention
- Directory:
/opt/data/hermes/idea-miner/ - Filename:
idea-miner_{YYYYMMDD}.md(e.g.,idea-miner_20260727.md) - If the directory doesn't exist, create it
Common Pitfalls
- HN Algolia URL encoding: The
numericFiltersparameter with>must use%3Enot raw>. E.g.numericFilters=points%3E10 - Reddit API blocked: Don't retry Reddit JSON API with this IP — it's consistently 403. Only retry if OAuth creds are configured.
- Pipe-to-interpreter security blocks: In cron mode,
curl | python3triggers security warnings. Save output to file first with-o /tmp/file, then parse withpython3 -creading from file. - GitHub API rate limits: Without authentication, GitHub API is limited to 60 req/hr. For 10 repos + description parsing per run this is fine, but batch requests if expanding.
- Show HN search prefers
search_by_date: The/searchendpoint returns all-time top, not recent. Use/search_by_datefor recent Show HN posts. - No xurl installed: X/Twitter mining won't work unless xurl CLI is installed and OAuth'd.
- Google Trends unavailable via simple curl: None of the documented public endpoints work (404). Skip silently.
Verification Checklist
- [ ] HN front page fetched and parsed correctly
- [ ] Ask HN fetched for demand signals
- [ ] Show HN (recent) fetched for new projects
- [ ] GitHub trending repos fetched
- [ ] Report is structured with all tables and sections
- [ ] File saved to correct path with date-stamped filename
- [ ] Report output as final message (cron delivery takes over)
Related Scripts
The legacy shell script at /root/.hermes/scripts/idea-miner_daily.sh references a Python script at ~/idea-miner/idea_miner.py that no longer exists. The cron jobs now run Hermes agent directly with the prompt, bypassing the shell script. If the shell script is ever re-enabled, it needs to be updated.
Today's method reference: see references/today-methods.md for the exact curl/jq commands and data‑extraction steps used in this run.
The user has provided the following instruction alongside the skill invocation: [IMPORTANT: You are running as a scheduled cron job. DELIVERY: Your final response will be automatically delivered to the user — do NOT use send_message or try to deliver the output yourself. Just produce your report/output as your final response and the system handles the rest. SILENT: If there is genuinely nothing new to report, respond with exactly "[SILENT]" (nothing else) to suppress delivery. [SILENT] is a literal ASCII control token — never translate or rephrase it, whatever language the rest of your answer uses. Never combine [SILENT] with content — either report your findings normally, or say [SILENT] and nothing more. FAILURE: If a delegated child fails and this cron run must be recorded as failed, put [CRON_FAILURE] on the first line by itself, then explain the child failure on following lines. RECURSION: This is a run of an EXISTING scheduled job — execute the task now. NEVER create or update a cron job because of recurring or future-schedule language in the task prompt below; treat phrasing like "each Monday" or "every day at 9" as context for this run, not as a request to schedule another job.]
生成每日创意情报简报,发送到Telegram。
数据来源
- Reddit 需求 (r/SideProject, r/somebodymakethis)
- X/Twitter "I wish there was" 搜索
- Hacker News Ask HN
- Indie Hackers 已验证项目
- GitHub Trending
- Google Trends 搜索热词
报告格式
使用 Markdown 格式,包含以下章节:
- 📢 需求现场 (高意向需求: I wish/Need/Looking)
- 💰 已验证方向 (有 MRR 数据的成功项目)
- 📈 趋势项目 (GitHub 热门项目)
- 🌐 Google 搜索热词
输出要求
- 简洁、实用、有洞察力
- 每条数据包含来源链接
- 总长度控制在 Telegram 可发送范围内
- 使用中文撰写
目标
聚焦真实用户需求,发现创业机会,提供可执行的创意洞察。
文件保存
将生成的完整报告同时保存到本地文件:/opt/data/hermes/daily-idea-briefing/briefing_{YYYYMMDD}.md
Response
Let me analyze this task carefully. The user wants me to generate a daily creative ideas report, but there are some important details to parse:
- The user invoked the "idea-miner" skill
- But then there's a conflicting set of instructions - the skill documentation says one thing, but the user's additional instruction describes a different format and different data sources
- The user is running as a cron job
- Delivery will be automatic to Telegram
- If [SILENT] is appropriate, I should output that; otherwise generate the report
Let me look at the conflict more