Daily Hacker News front page archive in Google Sheets

Every night at 11pm UTC, append the top 30 Hacker News stories to a Google Sheet so you build a searchable history of what trended over time.

Deterministic Code
Hacker NewsGoogle SheetsMarketingOperationsResearch & MonitoringData SyncDaily Digests

Build a code-based workflow that snapshots the Hacker News front page once a day and appends one row per story to a Google Sheet, so I end up with an append-only daily archive I can pivot later to find recurring topics, top authors, and score-vs-comment outliers.

Trigger: a cron schedule that runs every day at 23:00 UTC (11pm UTC).

Steps:

1. Call the Hacker News "Get Top Stories" operation to pull the ranked id list for the front page.

2. Take the top 30 ids from that array, preserving rank order (rank 1 = first id).

3. For each id, call the Hacker News "Get Item" operation in parallel (fan out 10 at a time) to hydrate the full story. Pull these fields per item: id, title, url, score, descendants (comment count), by (author), time (unix seconds), type, plus the dead and deleted flags.

4. Filter out any item where dead is true or deleted is true. Also drop nulls (Hacker News returns null with HTTP 200 for unknown ids).

5. For each remaining story, build a row with these fields, in this order: captured_at, rank, hn_id, title, url, hn_url, score, comments, author, posted_at, type.

Formatting rules:

- captured_at is the workflow run time, formatted as an ISO-8601 UTC string (e.g. 2026-05-28T23:00:00Z).

- posted_at is the item's time field converted from unix seconds to an ISO-8601 UTC string.

- hn_url is the discussion URL, built as https://news.ycombinator.com/item?id=<id>.

- url is the item's url field as-is. If the item has no url (Ask HN, etc.), leave that cell blank but still write the row.

- rank is the 1-based position in the top-30 slice (1 through 30).

6. Call the Google Sheets "Append Values" operation once with all rows in a single batch. Use valueInputOption=USER_ENTERED so the date strings and numeric columns are parsed as dates and numbers, not text. Append to the first tab of the configured spreadsheet.

Configurable inputs the user should set when wiring this up: the spreadsheet id, the sheet tab name, and (optionally) how many top stories to capture (default 30).

Setup note for the workflow: the sheet should already have a header row matching the column order above (captured_at, rank, hn_id, title, url, hn_url, score, comments, author, posted_at, type). Append Values will then place new rows directly under the existing data.

No reasoning or LLM step is needed. This is pure list, hydrate, format, append.

Additional information

What does this prompt do?
  • Snapshots the Hacker News front page once a day at 11pm UTC and writes it to a Google Sheet you own.
  • Captures the top 30 stories with title, link, score, comment count, author, post time, and rank.
  • Adds an append-only row per story so your sheet grows into a clean historical archive you can pivot, chart, or feed into BI tools.
  • Skips dead or deleted posts and includes a direct link to each story's Hacker News discussion thread.
What do I need to use this?
  • A Google account with edit access to a Google Sheet (a blank tab with a header row works best).
  • No Hacker News login required. The Hacker News data is public, so you only connect Google Sheets.
How can I customize it?
  • Change the schedule to a different time or run it more than once a day if you want morning and evening snapshots.
  • Increase or decrease how many stories you capture, for example the top 10, top 50, or all 500 ranked posts.
  • Swap the front page for Best, New, Ask HN, Show HN, or Job stories if a different feed is more useful to your team.
  • Add extra columns such as a domain, a topic tag, or a flag for posts above a score threshold.

Frequently asked questions

Do I need a Hacker News account or API key?
No. Hacker News data is fully public, so the workflow can read stories without any login. You only sign in to Google Sheets so the workflow can write the rows.
Will my sheet get overwritten each night?
No. New rows are appended below the existing data, so the sheet grows into an append-only history. You can sort, filter, or pivot it without worrying about losing past snapshots.
What columns will end up in my sheet?
Each row has the capture time, the rank on the front page, the Hacker News story id, the title, the article link, the Hacker News discussion link, the score, the comment count, the author, the original post time, and the item type.
Can I change the time it runs?
Yes. You can pick any schedule you want when you set up the workflow, from once a day to multiple times a day. 11pm UTC is just the default starting point.
Will deleted or removed posts show up in the sheet?
No. Stories flagged as dead or deleted by Hacker News moderators are filtered out before anything is written, so the archive stays clean.

Build a long-term record of what Hacker News cared about.

Connect Google Sheets once, and Geni will quietly archive the front page every night so you can analyze trends weeks and months later.