Cron Job: 每日创意推送

← 返回首页

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

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

  1. 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)
  2. Parse with python3 -c "import json; data = json.load(open('/tmp/filename.json')); ..."
  3. 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

  1. Fetch HN front page — identifies the overall tech zeitgeist for the day
  2. Fetch HN Ask HN — captures user needs, pain points, and demand signals
  3. Fetch HN Show HN (recent, points>10) — captures new projects people are building
  4. Fetch GitHub trending repos (last 7 days) — identifies what developers are excited about
  5. Fetch additional sources if available (Reddit, Twitter, etc.)
  6. Synthesize findings into the structured report
  7. Save to file at /opt/data/hermes/idea-miner/idea-miner_{YYYYMMDD}.md
  8. Output the report as final response — the cron delivery system automatically delivers it

File Save Convention

Common Pitfalls

  1. HN Algolia URL encoding: The numericFilters parameter with > must use %3E not raw >. E.g. numericFilters=points%3E10
  2. Reddit API blocked: Don't retry Reddit JSON API with this IP — it's consistently 403. Only retry if OAuth creds are configured.
  3. Pipe-to-interpreter security blocks: In cron mode, curl | python3 triggers security warnings. Save output to file first with -o /tmp/file, then parse with python3 -c reading from file.
  4. 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.
  5. Show HN search prefers search_by_date: The /search endpoint returns all-time top, not recent. Use /search_by_date for recent Show HN posts.
  6. No xurl installed: X/Twitter mining won't work unless xurl CLI is installed and OAuth'd.
  7. Google Trends unavailable via simple curl: None of the documented public endpoints work (404). Skip silently.

Verification Checklist

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。

数据来源

  1. Reddit 需求 (r/SideProject, r/somebodymakethis)
  2. X/Twitter "I wish there was" 搜索
  3. Hacker News Ask HN
  4. Indie Hackers 已验证项目
  5. GitHub Trending
  6. Google Trends 搜索热词

报告格式

使用 Markdown 格式,包含以下章节:
- 📢 需求现场 (高意向需求: I wish/Need/Looking)
- 💰 已验证方向 (有 MRR 数据的成功项目)
- 📈 趋势项目 (GitHub 热门项目)
- 🌐 Google 搜索热词

输出要求

目标

聚焦真实用户需求,发现创业机会,提供可执行的创意洞察。

文件保存

将生成的完整报告同时保存到本地文件:/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:

  1. The user invoked the "idea-miner" skill
  2. 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
  3. The user is running as a cron job
  4. Delivery will be automatic to Telegram
  5. If [SILENT] is appropriate, I should output that; otherwise generate the report

Let me look at the conflict more