Daily Hacker News digest in Slack, filtered to your topics

By General Input

Every weekday at 8am, get a Slack digest of the top Hacker News stories that match your focus topics, with AI summaries and a read of the comments.

Integrations

  • Hacker News
  • Slack Bot

Type

Agentic Task

Categories

  • Personal Productivity
  • Engineering

Build me an agent workflow that posts a personalized Hacker News digest to a Slack channel every weekday morning at 8am in my local timezone. Trigger: cron, Monday through Friday at 08:00 local time.

Inputs the workflow should expose so I can edit them later without touching the prompt: (1) target Slack channel id or name, (2) a free-text list of focus topics that describes what I care about (default: "AI infrastructure, developer tools, startups, programming languages, open source"), (3) the story cap (default 8), (4) the timezone for the schedule (default America/Los_Angeles).

Source: use the Hacker News integration. Hacker News is a public, no-auth, read-only API, so no credentials are required. Call the "Get Top Stories" operation to fetch the current front-page story ids in ranked order, then hydrate the top 30 ids by calling the "Get Item" operation for each one. Fan these calls out in parallel (10–20 at a time) since the front-page list only returns ids.

Filtering rules, in order: (a) drop any item where deleted=true or dead=true, (b) drop items whose type is not "story" or "job" (skip pure comments, polls, pollopts), (c) keep only stories whose title or text plausibly matches my focus topics — judge this from the title plus any item text, and if it is genuinely ambiguous, also fetch the top 5–10 comment ids from the story's kids array and read those to decide, (d) dedupe against yesterday's digest by remembering the HN item ids you posted the previous run and skipping anything already covered. After filtering, take the top N by HN front-page rank, where N is the configured story cap (default 8). If fewer than N qualify, post fewer. If zero qualify, post a single line like "No matches today — back tomorrow."

For each kept story, write a 3 to 6 line summary that includes: a one-line headline with the story title, a 1–3 sentence plain-English summary of what the linked article is actually about (based on the title and any item text — do not fabricate facts you cannot infer), a one-sentence "why it matters" tailored to my focus topics, and a one-sentence read on the comment thread (e.g. "commenters are split on whether the benchmark is fair" or "top reply is a former employee adding context"). To get the comment flavor, fetch a handful of the top comments via the kids array on the story item and skim their text. Strip HTML entities out of any text before quoting it.

Output: post one Slack message to the configured channel using the Slack Bot integration's "Send a Message" operation. Format it as a single readable digest with a header like "Hacker News digest — Tue May 19" and one block per story. For each story include both links: the source article URL (the story's url field, when present) and the Hacker News discussion URL (https://news.ycombinator.com/item?id={id}). Show points and comment count next to each story. For Ask HN or Show HN posts that have no external url, link only to the discussion. Use Slack mrkdwn formatting (e.g. <url|label>) so links render cleanly. Keep the message under Slack's display sweet spot; if the body would be huge, post the header and first story in the main message and the rest as a threaded reply.

Persistence: remember which HN item ids were posted in the previous run so the next run can dedupe against them. Storing the last run's id list as workflow state (or in the workflow's memory) is fine.

Guardrails: be tolerant of HN returning null for unknown ids and treat null as "skip this item". Never invent stories or stats that are not in the fetched data. If the Slack post fails, retry once after a short backoff.

Related prompts

Explore more prompts
A brand asset library your marketing team actually searchesTurn Mailjet email clicks into ranked HubSpot follow-upsClean out the Looker dashboards and Looks nobody opensLiveKit live operations console for room moderationWake up dormant Keap leads with a researched reasonLiveChat coverage board for planning next week's shiftsPhone routing control panel for LiveKit voice agentsLinkedIn Ads budget pacing dashboard for every client accountGive your team Looker numbers without buying more seatsPause marketing emails to escalated customers, then restore them