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.
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?
Will my sheet get overwritten each night?
What columns will end up in my sheet?
Can I change the time it runs?
Will deleted or removed posts show up in the sheet?
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.