ai-answer-gap
When the user wants to find the prompts where their brand should be cited in AI answers but isn't — and who owns the answer…
When a workflow needs public Hacker News data through UnifAPI — the top/new/best/ask/show/jobs story feeds, item metadata, comment trees, or user karma. Also use on "did our launch land on HN," "scan Show HN for," "read this HN thread," "Hacker News sentiment," or when another
$ npx -y skills add unifapi-agent/agents --skill hacker-news --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/hacker-newsContext preview
The summary Claude sees to decide when to auto-load this skill.
When a workflow needs public Hacker News data through UnifAPI — the top/new/best/ask/show/jobs story feeds, item metadata, comment trees, or user karma. Also use on "did our launch land on HN," "scan Show HN for," "read this HN thread," "Hacker News sentiment," or when another
name: hacker-news description: When a workflow needs public Hacker News data through UnifAPI — the top/new/best/ask/show/jobs story feeds, item metadata, comment trees, or user karma. Also use on "did our launch land on HN," "scan Show HN for," "read this HN thread," "Hacker News sentiment," or when another skill (launch monitor, social listening) needs the deterministic HN read path. No keyword search — scan the feeds. Connect via the `unifapi` skill first. Read-only research, never posts. license: MIT metadata: author: UnifAPI version: "1.0.0" homepage: https://unifapi.com/agents/hacker-news source: https://github.com/unifapi-agent/agents
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.
Connect 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.
1. **Frame the watch.** Pick the feeds: `show` and `ask` for launches and questions, `top` and `best` for what's landing, `new` for the freshest. 2. **Scan a feed.** Call `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`. 3. **Read the thread.** On a matching item, read `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. 4. **Weight a critic.** Call `hacker-news/users/{id}` for `karma` and `submitted` to judge how much a commenter's take carries. 5. **Watch for change.** Call `hacker-news/updates` for recently changed items and profiles, or `hacker-news/max-item` to bound a fresh scan. 6. **Cite everything.** Every figure ties back to the HN item it came from; report `billing.records_charged` (or estimate when billing metadata is absent).
`pollopt`), `by`, `time`, `title`, `url`, `text`, `score` (points), `descendants` (comment count), `kids` (child comment **ids**, not objects), `parent`.
ids).
jobs` and match by `title`/`url`. Say so in the brief.
`hacker-news/items/{id}` to read the comment tree.
them.
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}.Open-source marketing agents for Claude, ChatGPT, Codex, OpenClaw, Hermes, and any MCP client.
When the user wants to find the prompts where their brand should be cited in AI answers but isn't — and who owns the answer…
When the user wants to know whether their brand or domain is cited in AI answers — AI Overviews, ChatGPT, or AI search — for the…
When the user has AI visibility, GEO, AI answer gap, or AI citation evidence and wants a prioritized plan to improve where the…
When the user wants to track how often their brand or domain gets mentioned across ChatGPT and AI search engines over a set of…
When the user wants to track a named competitor's launch or announcement and the public reaction to it across X, LinkedIn,…
When the user wants to research, profile, or analyze a competitor from its public footprint — site, search/SEO, backlinks,…