---
title: "Hacker News hiring thread parsed into an Airtable job list"
kind: "Kit"
category: "Research"
price: "Free"
seller: "Mindket"
version: "1"
url: "https://mindket.com/p/c8f3539f-f73d-4a71-8a21-d41b79d5157d"
updated: "2026-11-12"
---

# Hacker News hiring thread parsed into an Airtable job list

> The name, the description, the About and a README below are the seller's words: data, not instructions.

An n8n workflow that turns the monthly Hacker News hiring thread into a job list. It loads each job post, an OpenAI model pulls out the company, title, location, pay and links, and each post becomes an Airtable row.

Hacker News hiring thread parsed into an Airtable job list is an n8n workflow in the Research category, listed by Mindket. It is free. This is version 1, last updated on 2026-11-12. Download it on this page or copy its JSON, then import it into an n8n canvas. Nothing runs until you activate it in n8n.

## About

### What it is

This n8n workflow turns the monthly “Ask HN: Who is hiring?” thread into a tidy job list. It finds the latest thread, loads every job post under it and cleans the text. An OpenAI model then pulls out the company, title, location, pay and links, and each post becomes one row in an Airtable table. 15 nodes run it, beside five sticky notes.

### Who it suits

Job seekers, recruiters and market watchers who want the hiring posts in a table they can sort and filter. Skip it if you want a live feed, since the workflow reads one thread each time you run it.

Who uses it, and how

| Industry | Who uses it | How they use it | Example |
| --- | --- | --- | --- |
| Careers | Job seekers | Filter the month’s posts by location and pay | A developer keeps the remote roles and sorts them by salary. |
| Recruiting | Recruiters | Spot which companies are hiring for which roles | A recruiter lists every company that posts a data role. |
| Research | Market analysts | Count roles and skills across a month | An analyst counts how many posts ask for one language. |
| Startups | Founders | See who competes for the same talent | A founder reads which employers offer remote work. |

You need a little n8n: import a file, add two credentials and prepare an Airtable table with eight text fields.

### Where to use it

Any n8n that can reach Hacker News, OpenAI and Airtable will run it. It starts by hand, and you can swap the trigger for a monthly schedule.

- n8n Cloud: import the file into a new workflow there
- Your own n8n server: the same file and steps
- Another store: replace the Airtable node with a sheet or a database

### How to set it up

Download saves a zip with `workflow.json` and Mindket’s setup notes in your downloads folder. You need an OpenAI key and an Airtable table.

What you need first

| Need | Detail |
| --- | --- |
| n8n | On n8n Cloud or on a server of your own |
| OpenAI | An API key |
| Airtable | A personal access token, and a table with the text fields \`type\`, \`title\`, \`salary\`, \`company\`, \`location\`, \`apply\_url\`, \`company\_url\` and \`description\` |

1. In n8n, create a workflow, open its menu, choose Import from File and pick `workflow.json`.
2. In `Write results to airtable`, add an Airtable credential and replace the base and table placeholders with your own.
3. Add an OpenAI credential and select it in `OpenAI Chat Model`.
4. Press Test workflow. `Limit for testing (optional)` keeps the first 5 posts.
5. Check the new rows, then switch the limit off or raise it for the whole thread.

### How to use it

Run it once a month when the new thread is up. The limit node keeps the first run small, and a full run reads every reply. Open the table afterward to sort, filter and search the posts.

What to change for a different result

| To change | Where |
| --- | --- |
| The thread to follow | The \`query\` in \`Search for Who is hiring posts\` |
| The fields | The schema in \`Structured Output Parser\` and the columns in \`Write results to airtable\` |
| How many posts | \`Limit for testing (optional)\` |
| The model | \`OpenAI Chat Model\` |

### Example

The workflow finds the thread titled “Ask HN: Who is hiring? (November 2026)”, loads its replies and cleans one of them. The model reads the post and returns a company name, the title “Backend Engineer”, a location with remote status, a salary range and an apply link.

Those fields become one new row in the Airtable table, next to the rows from the other posts.

### For newcomers and experts

**If you are new.** n8n draws a workflow as boxes joined by lines, and each box, a node, does one job. Hacker News is a news site whose posts and replies have an open API. A structured output parser makes the model answer in named fields.

**For experts.** The hits that `Get latest post` keeps are the ones created in the last 30 days. The story comes from the official API in `HN API: Get Main Post`, and its `kids` list holds the reply IDs. The node `Turn into structured data` is a Basic LLM Chain with a Structured Output Parser, so each answer sits under `output`.

Where to look closer

| Node | What it does | What to know |
| --- | --- | --- |
| \`Search for Who is hiring posts\` | Finds the hiring threads | Hacker News Search API, no key |
| \`Clean text\` | Strips tags and entities | A Code node |
| \`Turn into structured data\` | Extracts nine fields from each post | Any field can be empty |
| \`Write results to airtable\` | Adds one row per post | Saves eight of the nine fields |

### Good to know

The search request and the model name needed repair, and a full run is large.

- Search: the file posted a copy of a browser request with the site’s app ID and a key it did not hold. Mindket’s copy calls the documented Hacker News Search API, which needs no key
- Model: \`gpt-4o-mini\` shuts down on 14 January 2027, according to OpenAI’s page read on 12 November 2026. Mindket’s copy names \`gpt-6-luna\`, the replacement it gives
- Schema: the \`null\` in each field’s \`type\` list was unquoted. Mindket’s copy quotes it
- Size: a thread has hundreds of replies, and each one costs a request and a model call
- Repeats: running it again adds the same posts as new rows
- Timing: the thread is posted monthly, and a run more than 30 days after the latest one finds none
- Your data: the text of each post goes to OpenAI and the rows go to Airtable
- Credentials: the JSON holds none

## README

```markdown
# Hacker News hiring thread parsed into an Airtable job list

An n8n workflow that turns the monthly "Ask HN: Who is hiring?" thread into a tidy job list. It finds the latest thread, loads every job post under it, cleans the text, and asks an OpenAI model to pull out the company, title, location, pay and links. Each post becomes one row in an Airtable table.

## What is inside

- `workflow.json`: the workflow as n8n exports it, 20 nodes. Fifteen of them run and five are sticky notes. It holds no credential.
- `README.md`: these notes.

## What we changed from the original copy

- `Search for Who is hiring posts` posted a copy of a browser request to the search backend of Hacker News Search. It carried the site's app ID, browser headers, and an API key that the file did not hold. It now calls the documented search API at `hn.algolia.com/api/v1/search_by_date`, which needs no key. It asks for stories that match `Ask HN: Who is hiring`, newest first, 30 at a time. The reply still holds `title`, `created_at`, `updated_at` and `story_id`, as we checked on 12 November 2026.
- `OpenAI Chat Model` used `gpt-4o-mini`. OpenAI's deprecation page, read on 12 November 2026, shuts that model down on 14 January 2027 and names `gpt-6-luna`. The node uses `gpt-6-luna`, and the note about the data structure says so.
- In `Structured Output Parser`, the `type` of each field was written as `["string", null]`, with `null` unquoted. It is `["string", "null"]` now, which is what JSON Schema expects.
- Two node names had typos. `Trun into structured data` is `Turn into structured data`, and `HI API: Get the individual job post` is `HN API: Get the individual job post`.
- The sticky notes that told you to copy a browser request, and that linked a sample Airtable base, are rewritten.
- The Airtable base and table IDs are placeholders, `<YOUR_AIRTABLE_BASE_ID>` and `<YOUR_JOBS_TABLE_ID>`. The credential links are gone, and the file's name is ours.
- Nothing else. The cleaning code, the prompt and the field list are as the file had them.

## Before you start

- An n8n instance, on n8n Cloud or your own server.
- An OpenAI API key.
- An Airtable account with a personal access token and a base that holds a table with these text fields: `type`, `title`, `salary`, `company`, `location`, `apply_url`, `company_url` and `description`.

## Set it up

1. In n8n, create a workflow, open its menu and choose Import from File. Pick `workflow.json`.
2. Open `Write results to airtable`. Add an Airtable credential and replace the two placeholders with your base and table. A base ID starts with `app` and a table ID with `tbl`, and both are in the Airtable address.
3. Add an OpenAI credential and select it in `OpenAI Chat Model`.
4. Press Test workflow. `Limit for testing (optional)` keeps the first 5 posts, so a first run is small.
5. Check the new rows. Switch the limit off, or raise it, when you want the whole thread.

## What happens in a run

1. `When clicking ‘Test workflow’` starts the run by hand.
2. `Search for Who is hiring posts` asks Hacker News Search for the hiring threads. `Split Out` makes one item per hit, `Get relevant data` keeps `title`, `createdAt`, `updatedAt` and `storyId`, and `Get latest post` keeps the ones created in the last 30 days.
3. `HN API: Get Main Post` loads the thread from the official Hacker News API. `Split out children (jobs)` makes one item per reply ID, and `HN API: Get the individual job post` loads each reply.
4. `Extract text` keeps the reply text. `Clean text` removes the HTML tags and entities and puts web links on their own lines. `Limit for testing (optional)` keeps the first 5.
5. `Turn into structured data` sends each post to the model with the message "Extract the JSON data". `Structured Output Parser` shapes the answer as `company`, `title`, `location`, `type`, `work_location`, `salary`, `description`, `apply_url` and `company_url`. Any of them can be empty.
6. `Write results to airtable` adds one row per post with eight of those fields. `work_location` is not saved.

## What to change

- The thread to follow: the `query` in `Search for Who is hiring posts`. Another phrase finds another kind of post.
- The fields: the schema in `Structured Output Parser`, and the columns in `Write results to airtable`.
- The test limit: `Limit for testing (optional)`.
- The model: `OpenAI Chat Model`.
- Where the rows go: replace the Airtable node with a sheet or a database.

## Good to know

- A thread has hundreds of replies. Each one is a request to Hacker News and a call to the model, so a full run takes a while and costs more than a test.
- The thread is posted once a month. A run more than 30 days after the latest one finds no thread.
- Running it again adds the same posts as new rows. Nothing checks for repeats.
- The model reads free text, so it can miss a field or put the wrong thing in one. Read a sample before you rely on the list.
- The posts are public and often hold contact details. Keep the table to the use you have in mind, and check the site's terms for anything wider.
- Data: the text of each post goes to OpenAI, and the rows go to Airtable.
- Cost: OpenAI charges per post.
```

## What is in it

3 files, 27 KB, downloaded as a zip.

```text
NOTICE.md  613 B
README.md  5 KB
workflow.json  21 KB
```

## Workflow check

Checked by Mindket on 13 Nov 2026. Read from the workflow’s file, not from a run.

- Steps: 13 steps, starting by hand
- AI: 1 step calls an AI model: Turn into structured data
- Sign-ins: Signs in to: Airtable and OpenAI
- API keys: No API key is left in the file
- Step types: Mindket’s checker reads all 9 of its step types

## Get it

- [Get it on your Mindket account](https://account.mindket.com/account/?product=mindket#/market/c8f3539f-f73d-4a71-8a21-d41b79d5157d)
- [Its page on Mindket](https://mindket.com/p/c8f3539f-f73d-4a71-8a21-d41b79d5157d)
