Skip to content

On a schedule

Collect Hacker News job posts in Airtable

Each 'Who is hiring' post is turned into a searchable record with company, role, location, remote and salary.

Runs
On a schedule
Apps
Airtable
AI
Yes, uses the built-in AI allowance
Access
data.records:write

Send this to your assistant

Create a ClickRuntime automation: every day, check this month's Hacker News 'Who is hiring' thread, pull out the company, role, location, remote option and salary from each new comment, and add them to my Airtable Jobs table.

Paste it into your assistant. It tells you what it will send or change before it runs live.

First time? Adding ClickRuntime to your assistant takes about two minutes.

Why use it

Why teams use this automation

Every month, Hacker News runs a Who is hiring thread with hundreds of comments, each a free-form job post. Recruiters, job seekers and market researchers want these in a table they can filter by role, location and remote policy, but copying them by hand is impractical, and a keyword search misses structure. Because the comments are written in many styles, a simple script that splits on commas does not work, and the thread changes every few hours as new posts arrive.

On a schedule, the automation fetches the thread through the public Hacker News API, skips comment IDs it has already stored, and sends each new comment to ClickRuntime's built-in AI, which extracts fields such as company, role, location, remote policy and how to apply. Each parsed post becomes a record in your table.

It is useful for job seekers tracking openings, recruiters building lead lists and analysts studying demand for skills.

What you get out of it

  • A searchable table replaces an endless thread

    Filtering by remote policy or language lets you see matching roles in seconds. Scrolling through hundreds of comments looking for the few that fit is no longer necessary. A saved filter view takes the place of the thread.

  • New posts appear without re-reading old ones

    Because processed comment IDs are remembered, each run adds only new listings. You never review the same job twice, and the table grows as the thread does. That keeps the table free of repeats.

  • Free text becomes structured fields

    The AI reads each post and fills in company, role, location and application details, even though every poster writes differently. That structure makes sorting and views possible. Without that step, you would copy details into cells by hand.

  • You can apply while the post is fresh

    Early commenters usually get more attention from the hiring manager. Finding a matching job the day it is posted gives you an edge over those who browse once a week.

  • Hiring trends become measurable

    Over several months the table shows which technologies, cities and salary ranges are in demand. That evidence helps recruiters price roles and helps candidates choose what to learn. Data like this makes career and hiring choices easier to justify.

  • Your own notes sit next to the data

    Because the table is in Airtable, you can add status, interview dates and contacts beside each listing, turning a feed of jobs into a personal tracker. One table holds both the listings and your own progress.

How it works

What happens, step by step

  1. On your schedule, ClickRuntime reads the latest Hacker News "Who is hiring" thread.

  2. It skips any job post it has already saved, so each one appears only once.

  3. AI reads each new post and pulls out the company, role, location, remote option and salary.

  4. Each job becomes a record in your Airtable Jobs table, ready to search and filter.

Before it runs live

  • Connect Airtable

What you get

RunsOn a schedule
Collect Hacker News job posts in Airtabletoday, 9:00Succeeded
Airtable · JobsAcme Robotics · Senior Backend Engineer · Berlin · Remote (EU) · €90-110k

Build your own

Need it to work differently?

This template is a starting point. Copy the prompt and change it, or describe a different automation from scratch, with your own conditions, more apps or an AI step. Your assistant writes it, tests it and runs it on ClickRuntime.
  • Your own rules

    Conditions, thresholds, filters and exceptions, written the way you'd explain them to a colleague.

  • Any number of apps

    One automation can read from one app and update several others. Over 248 apps are ready, and anything with an API works too.

  • AI where it helps

    Summaries, classification, extraction and drafts use ClickRuntime's built-in AI, with no extra key.

  • On a schedule or on each event

    Runs as often as every 5 minutes, or the moment an app sends an event, and keeps track of what it already handled.

Changes you can ask for

  • Run it at a different time, more or less often, or only on weekdays
  • Change what the AI looks for, or how it writes the result
  • Add another app, for example also send it to Slack
  • Combine it with other Airtable steps into one automation

Under the hood

The code that runs this automation

This is the Python script that runs each time the automation starts. Your AI assistant writes it for you when you send the prompt, and you allow each step in your assistant. To change how the automation works, describe the change to your assistant and it updates the script for you. For every function it can use, see the script reference.
collect_and_parse_job_listings_into_airtable.pyexample
import re
from clickruntime import on_trigger, credentials, http, ai, state

BASE_ID = "appXXXXXXXXXXXXXX"
HN = "https://hacker-news.firebaseio.com/v0"
SCHEMA = {"type": "object", "properties": {k: {"type": "string"} for k in
          ("company", "role", "location", "remote", "salary")}}

@on_trigger
def run(event):
    hits = http.get("https://hn.algolia.com/api/v1/search_by_date",
                    params={"query": "Ask HN: Who is hiring", "tags": "story,author_whoishiring"}).json()["hits"]
    thread = http.get(f"{HN}/item/{hits[0]['objectID']}.json").json()
    seen = set(state.get("seen") or [])
    new_ids = [k for k in thread.get("kids", []) if k not in seen][:40]
    headers = {"Authorization": f"Bearer {credentials.connection('airtable', 'work')}"}
    for kid in new_ids:
        text = re.sub(r"<[^>]+>", " ", http.get(f"{HN}/item/{kid}.json").json().get("text") or "")
        if text.strip():
            job = ai.generate(text[:2000], system="Extract the job fields; empty string if unknown.",
                              json_schema=SCHEMA, max_output_tokens=120).json
            http.post(f"https://api.airtable.com/v0/{BASE_ID}/Jobs", headers=headers,
                      json={"records": [{"fields": {**{k.title(): v for k, v in job.items()},
                                                    "Link": f"https://news.ycombinator.com/item?id={kid}"}}]})
        seen.add(kid)
    state.set("seen", sorted(seen)[-3000:])
    return {"added": len(new_ids)}

FAQ

Common questions

Is the Hacker News API free to use?
Yes. The official Hacker News API is public and does not need a key. The automation uses it to read the monthly thread and its comments, so setup does not involve an API token for that source.
How accurate is the AI's extraction?
Most posts follow a common format, so extraction is usually reliable, but some comments are vague about location or pay. Fields the AI cannot find are left empty, and the original text is stored so you can check.
Can I filter to only remote or only certain roles?
Yes. Add a rule that keeps only records where remote is allowed, or where the role matches your keywords, before they are saved. Fewer irrelevant rows means a table you will actually use. That filter can run on the extracted fields.
What permissions does it need?
data.records:write. Nothing else in your accounts is used.
Does it need AI?
Yes. It uses ClickRuntime's built-in AI, so you don't need an OpenAI or Anthropic key. Every plan includes a monthly AI allowance.
How many runs does it use?
One run each time it runs (on a schedule). Checks that find nothing to do and stop right away aren't counted.
Can I change how it works?
Yes. Describe the change to your AI assistant, for example a different schedule, channel or filter. It updates the automation, tests it and tells you what changed.

Set up “Collect Hacker News job posts in Airtable” from your assistant

Copy the prompt above, or connect your assistant first. Free plan, no credit card.