Skip to main content

hacker-news

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.

Ir a la instalación

Datos de origen

Repositorio
unifapi-agent/agents
Última actividad en el origen
26 de junio de 2026 a las 06:38
Idioma detectado de SKILL.md
inglés
Estrellas
567
Forks
111

Opciones de instalación

De forma predeterminada está seleccionado el prompt que primero revisa el origen. Puedes cambiar a un comando directo o descargar una copia local.

Revisa los archivos de origen

Lee SKILL.md y los archivos complementarios que muestra SkillsMP antes de decidir si quieres instalarlo.

Explorador de archivos
2 archivos

Mostrando SKILL.md

SKILL.md
Instrucciones de origen · Vista previa de solo lectura
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"}
# hacker-news 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. ## Use the `unifapi` skill for live evidence 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. ## Response contract Single-entity endpoints return the object in `data`: ```json { "request_id": "unif_...", "data": {}, "billing": { "records_charged": 1, "balance_remaining": 99 } } ``` List endpoints return an array in `data` plus `pagination`: ```json { "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`. ## Core operations | 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. ## Workflow 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). ## Shape notes - **`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. ## Gotchas - **No keyword search.** Discovery is feed-driven — scan `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. - Prefer `hacker-news/stories/{feed}/items` over `hacker-news/stories/{feed}` when you want the hydrated stories, not a list of ids. - A low balance can silently truncate list pages: check `billing.truncated_due_to_balance` — when true the page is partial. ## Output 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: ```markdown **{Story title}** ({feed}) — {score} points, {descendants} comments. Landed: {yes/no}. Candid takes: "{quote}" (by {user}, {karma} karma). Evidence: {item URLs}. Records: ~{N}. ``` ## Related skills - **competitor-launch-monitor** (Competitive Intelligence), **social-listening-brief** (Social Listening) — launch-reception and listening work on top of this read path. - **unifapi** — the shared data skill: connect MCP and look up exact schemas with `get_operation`.
Ver en GitHub