Back to all listings
Methodology

How the matching works

HN Match turns two messy monthly Hacker News threads into structured, comparable profiles and pre-computes an explainable match score for every plausible pairing. Here’s the pipeline, end to end — and exactly what goes into a score.

1 · Ingest the threads

Every month, Hacker News posts two threads — “Who is Hiring” and “Who Wants to Be Hired.” We pull every top-level comment from both via the public HN API, automatically discovering the current month’s threads so the data stays fresh without manual work.

2 · Extract structure with an LLM

HN posts are free-form text. We run each comment through a language model that extracts a consistent, structured profile — skills, location and remote preference, salary range, seniority, domains, and visa needs — so wildly different writing styles become comparable data.

3 · Apply hard filters

Before scoring, we rule out impossible pairings. If a deal-breaker is present — an on-site-only role for a remote-only candidate, non-overlapping salary bands, or a visa requirement the employer can’t meet — the pair is eliminated outright rather than scored low.

4 · Score what remains

Surviving pairs get a weighted compatibility score built from several signals (below). Every job’s top candidates and every candidate’s top jobs are pre-computed at build time, so browsing is instant — no waiting on live calculations.

5 · Always link back to the source

HN Match is a discovery layer, not a middleman. Every match links straight to the original HN comment so you can read the full post in context and reach out however the poster prefers.

Hard filters first

Some mismatches can’t be salvaged by a good skill overlap. These act as gates — if any applies, the pair is dropped before scoring rather than shown as a weak match.

Remote mismatch

Remote-only candidate vs. on-site-only role.

Salary gap

The two salary ranges don’t overlap at all.

Visa mismatch

Candidate needs sponsorship the employer doesn’t offer.

What goes into a score

For every pair that clears the filters, we combine these weighted signals into a single 0–100 compatibility score. Skills carry the most weight, because they’re the strongest signal of a real fit.

Skill overlap40%

How much the candidate’s skills intersect the role’s required and preferred skills.

Domain fit20%

Shared industry / problem domains (fintech, infra, ML, and so on).

Seniority alignment20%

How closely experience levels line up — exact match scores highest, each level apart less.

Salary overlap10%

How much the desired and offered pay ranges overlap.

Base10%

A small uniform floor so every surviving match starts from common ground.

Because scoring is two-sided, a pairing only ranks highly when the candidate brings what the role needs and the role offers what the candidate wants — lopsided fits get pushed down.

A few honest caveats

  • Extraction is automated. Terse or unusually formatted posts may be parsed imperfectly, which can nudge a score — always read the original comment before drawing conclusions.
  • Many posts omit salary or seniority. Missing fields are handled gracefully rather than penalized, so a match isn’t punished simply for being brief.
  • Scores rank plausibility of fit from public text — they’re a starting point for a conversation, not a hiring decision.