Help us improve
Share bugs, ideas, or general feedback.
From UnifAPI
Reads Hacker News story feeds, item metadata, comment trees, and user profiles through UnifAPI. Useful for launch monitoring, Show HN scanning, and HN sentiment research.
npx claudepluginhub unifapi-agent/agents --plugin unifapiHow this skill is triggered — by the user, by Claude, or both
Slash command
/unifapi:hacker-newsThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
The deterministic read path for public **Hacker News** data through UnifAPI. This
Automates Hackernews operations via Rube MCP (Composio). Always searches tools first for current schemas before executing.
Drafts data-backed Show HN posts using patterns from 250 top-scoring HN posts. Guides title length, prefix choice, and narrative framing to maximize reach or discussion.
Reads and searches GeekNews (hada.io) public RSS/Atom feed for recent posts, keyword search by title/summary/author, and detail lookup by item ID or link.
Share bugs, ideas, or general feedback.
The deterministic read path for public Hacker News data through UnifAPI. This
is a Data Skill: it does not run a marketing job on its own — it names the
concrete hacker-news/... operations, response shapes, and gotchas so any
launch-reception or listening workflow for dev/infra/startup categories reads
from one known recipe instead of rediscovering the surface each time.
Read-only — eyes, not hands. It researches public HN data and returns cited records; it never posts stories or comments, and UnifAPI never holds HN credentials.
unifapi skill for live evidenceConnect once through the shared unifapi skill (OAuth MCP), then call the
operations below. Story feeds take a {feed} of top, new, best,
ask, show, or jobs. Keep any billing metadata so the output can state
record cost.
Single-entity endpoints return the object in data:
{
"request_id": "unif_...",
"data": {},
"billing": { "records_charged": 1, "balance_remaining": 99 }
}
List endpoints return an array in data plus pagination:
{
"request_id": "unif_...",
"data": [],
"pagination": { "has_more": false, "next_cursor": null },
"billing": { "records_charged": 1 }
}
When pagination.has_more is true, pass pagination.next_cursor as the next
request's cursor (limit sets page size). Always preserve billing.
| Need | Operation |
|---|---|
| Story feed (hydrated) | hacker-news/stories/{feed}/items |
| Story feed (ids only) | hacker-news/stories/{feed} |
| Item (story / comment) | hacker-news/items/{id} |
| User profile + karma | hacker-news/users/{id} |
| Recently changed | hacker-news/updates |
| Highest item id (scan bound) | hacker-news/max-item |
{feed} ∈ top · new · best · ask · show · jobs.
Need a field not listed here? Use the unifapi skill's get_operation to read
the exact schema before calling — but pick the operation from this table, don't
discover blind.
The deterministic recipes. Pick the one that matches the job; each names exactly what to call.
show and ask for launches and
questions, top and best for what's landing, new for the freshest.hacker-news/stories/{feed}/items (hydrated items in
one call — cheaper than ids-then-fetch) and match stories by title or url
to your product or category. Page via next_cursor.score (points) and
descendants (comment count), then walk the kids ids with
hacker-news/items/{id} to read the candid critique in the comment tree.hacker-news/users/{id} for karma and
submitted to judge how much a commenter's take carries.hacker-news/updates for recently changed items
and profiles, or hacker-news/max-item to bound a fresh scan.billing.records_charged (or estimate when billing metadata is
absent).HackerNewsItem — type (story · comment · job · poll ·
pollopt), by, time, title, url, text, score (points),
descendants (comment count), kids (child comment ids, not objects),
parent.HackerNewsUser — id, created, karma, about, submitted (item
ids).HackerNewsUpdates — items and profiles that recently changed.top/new/best/ask/show/ jobs and match by title/url. Say so in the brief.kids are child comment ids, not embedded objects — recurse with
hacker-news/items/{id} to read the comment tree.descendants is the comment count and score is the points — don't confuse
them.hacker-news/stories/{feed}/items over hacker-news/stories/{feed}
when you want the hydrated stories, not a list of ids.billing.truncated_due_to_balance — when true the page is partial.Return the records the calling workflow needs, each cited to its HN item, plus a
one-line cost note (records_charged). When this skill is used directly, a
compact reception brief is the default:
**{Story title}** ({feed}) — {score} points, {descendants} comments. Landed: {yes/no}. Candid takes: "{quote}" (by {user}, {karma} karma). Evidence: {item URLs}. Records: ~{N}.
get_operation.