How it was made
Ranking 18 years of Hacker News wishes for $6
How 63,300 Hacker News comments became a ranked list of the tools people keep asking for, with the prompts, the accuracy checks and the cost of each step.
Hacker News is full of small wishes. Someone writes "I wish there was a tool that...", a few people reply that they would use it too, and the thread moves on. Taken one at a time these comments are easy to dismiss, but over eighteen years the same wishes come up again and again, and a wish that keeps returning for a decade is a fair sign that something is still missing.
Finding those wishes is harder than searching for them. The phrase "I wish there was" appears in jokes, in arguments about politics, and in Show HN posts where the author is explaining why they built their own tool. Telling a real request from everything else means reading each comment, and with 63,300 of them that is too slow and too expensive to do with a large language model. The approach here was to let a small, cheap model do most of the reading, and to measure at every step how often it was wrong.
Collecting the comments
The search started from 35 phrases that people use when they want something, such as "I wish there was", "someone should build", "would pay for" and "is there a tool". Each phrase was searched as an exact match across comments and posts for every year from 2008 to 2026, using HN's official Algolia API. Algolia returns at most 1,000 results for a query, so whenever a year had more than that, the script split the time range in half and searched each half, repeating until every range fit.
The result was 63,300 comments and posts. For each one the crawl kept the text, the date and the title of the thread, and it kept no usernames.
Finding the real requests
The model doing the reading is Jev, a decision model on OpenRouter. Rather than writing a prompt and getting prose back, you send it a piece of text and a set of typed questions, and it returns typed answers, either a choice from a list or a graded yes or no between 0 and 1. Each comment was sent once with ten questions. The one that matters most asks what the writer is actually doing.
questions = {
"what": {"type": "choice", "criteria": {
"new_tool": "Wants a software tool ... that they say does not exist",
"better_version": "Wants a different version of existing software: cheaper, ...",
"how_to": "Asks how to do something, not for a tool",
"other": "A figure of speech, sarcasm, a hypothetical, an opinion, ..."}},
"t_pay": {"type": "noul", "instructions":
"Does the writer say they would pay for it, or name a price they would pay?"},
... # topic, local, open source, AI and more
}
POST https://openrouter.ai/api/alpha/decisions
{"model": "typesafe/jev-1.14", "state": comment, "questions": questions}
A comment counts as a request when the answer to "what" is new_tool or better_version, which held for 12,441 of the 63,300.
Before trusting that number, it was worth asking whether a model was needed at all. A cheap model only earns its place when it clearly beats simple keyword rules, and often it doesn't. To find out, a separate AI reader labelled 300 random items without seeing Jev's answers, and Jev and three keyword rules were each scored against those labels.
| Method | Precision | Recall | F1 |
|---|---|---|---|
| Any want-phrase | 22% | 100% | 0.36 |
| Want-phrase plus a software noun | 38% | 68% | 0.49 |
| Strong phrase plus a software noun | 58% | 39% | 0.47 |
| Jev | 91% | 73% | 0.81 |
The phrases on their own are mostly noise, since four out of five comments that contain one are not requests. Adding a software noun helps, but even the best keyword rule is wrong more often than it is right. Jev is right 91% of the time when it calls something a request. It misses about a quarter of the real ones, which is an acceptable loss for a ranking, because every idea loses a similar share and what remains is clean.
Naming the ideas
Twelve thousand requests are not yet a list. They have to be grouped into ideas, and the obvious way to do that, clustering them by meaning, produces topics rather than products. A cluster called "email" tells a developer nothing about what to build, while an idea like "email you pay for, not with" does.
So the grouping was done by reading. For each of 29 topics, a Claude agent read up to 650 requests, including every one since 2024 and a random sample of older ones, and wrote down concrete tool ideas that more than one person had asked for. Together the agents wrote 540 ideas.
Matching requests to ideas
Jev then placed each request under one of the ideas in its topic, or under "none" if nothing fit. An audit of 220 of these answers showed that this was the weakest step in the process.
Only 57% of the matches were right.
Most of the errors had little to do with matching. In many cases the writer was not asking for anything at all. They were a Show HN author explaining why they had built their tool, someone quoting another person's wish before answering it, or someone being sarcastic. The rest were forced fits. Once Jev had decided that a comment was a request it was reluctant to answer "none", so a request for a Jupyter replacement ended up under an idea about native UI toolkits.
The fix was to ask two more graded questions about every match, one about whether the writer was really asking and one about whether the idea would give them what they wanted.
"asking": "Is the writer themselves asking or wishing for a software tool?
Answer no if they are describing or launching their own product,
recommending an existing tool, quoting someone else's wish,
or being sarcastic."
"fits": "Would this tool give the writer substantially what they ask for,
not just something related, narrower or broader? The tool: ..."
The exact wording of the second question turned out to matter. The strict version above penalised ideas with long definitions, because any detail in a definition that the writer had not mentioned counted against the fit. The password manager idea dropped from 56 matches to 19 as a result. A looser wording avoided that problem but let too much through. Asking both versions and averaging the scores worked best, raising precision from 57% to 77%, or 92% if near misses are counted, while keeping 82% of the correct matches.
Re-reading every match
77% is good enough for a dataset but not for a public ranking, where a single inflated idea near the top would make the whole list less credible. Broad ideas were the main risk, because a loose definition attracts loose matches, and more matches push an idea up the list.
For that reason every match behind the leading ideas was read again, one at a time, by a second Claude reader that kept or dropped each ask. A later pass wrote the one-line paraphrase shown next to each ask on the idea pages, so the site can say what people wanted without copying their words. Of the 1,998 matches read this way, 1,433 were kept, about 72%, and every count on the site comes from those.
The re-reading changed the order of the list. Ideas with precise definitions kept nearly all of their asks, while vague ones lost many of theirs. It also created a trap of its own, since ideas that had not yet been re-read still carried their inflated counts and so rose above ideas that had. The reading therefore continued down the list until no unread idea was left above #100, and only re-read ideas appear on the site.
Checking what already exists
A list of wishes is more useful when it shows which ones have already been granted. For each idea the pipeline ran a few searches on Show HN and asked Jev whether each launch it found did the same job for the same users, 21,438 judgements in all.
The first cutoff for counting a launch was too strict, and it reported no launches at all for bookmark managers, which anyone who has read Show HN knows is wrong. Because Jev's answers are graded rather than yes or no, a single high threshold threw away launches that clearly did the job. The final rule counts a score of 0.3 or more as an attempt and 0.5 or more as a launch that does the job. Each idea is then labelled never launched, tried but never finished, or built but still asked for.
Show HN is not the whole market, but it is a good test of whether this particular audience has already seen a tool, which is what matters most to anyone thinking of launching one here.
Scoring
The ranking rewards persistence more than volume.
score = log(1 + separate threads)
+ 2 × (years with at least one ask) / 19
+ log(1 + asks since 2024)
It counts separate threads rather than individual asks, because ten people agreeing in one thread is closer to one data point than to ten. It gives weight to the number of years an idea was asked for, because a request that appears in fourteen different years reflects a lasting gap rather than a passing news story. And it counts asks since 2024 so that the list reflects what people still want, which is also why ideas with no recent asks are left out, however popular they once were.
What it cost
| Step | Jev calls | Cost |
|---|---|---|
| Pass 1: is it a request? | 63,300 | $4.34 |
| Pass 2: which idea? | 12,412 | $0.82 |
| Pass 3: check each match | 15,938 | $0.35 |
| Pass 4: what exists on Show HN | 21,438 | $0.49 |
| Total | 113,088 | $6 |
Nearly all of the cost is the first pass, which worked out at about $0.00007 per comment. The Claude agents that wrote the ideas and re-read the matches are not included in the table. Their kind of reading is far more expensive, which is why it was used only for the steps where careful judgement mattered.
What the list shows
The clearest pattern is that people on HN want to pay for software that doesn't treat them as the product. 4 of the top 10 ideas are requests to pay, for a version of Windows without the clutter, for a browser, and for email and search without ads. Among the asks for paid search, 83% say outright that the writer would pay.
The list is also more about ownership than about AI. 46 of the 100 ideas come mostly from people who want the tool to be local or private, while only 8 come mostly from people who want AI to do the job, which is a little ironic given how the list was made.
Many of these tools have, in fact, already been built. 81 of the 100 have launched on Show HN, 1,423 times between them, and people still ask for them. 64 were first requested in 2012 or earlier. What seems to be missing in most cases is not the code but a version that people trust, can find, and can rely on to still be around in a few years.
How the asks changed
Because every request carries a date, the same labels also show how asking itself has changed over eighteen years. The first change is in volume.
Requests peaked in 2022 and have fallen since. That can't be fully separated from changes in HN's own traffic, but it is consistent with people taking their questions to chatbots, which never post them anywhere builders can see. The recent counts are therefore best read as a lower bound.
The second change is in what people ask for, and it is larger. Between 2008 and 2011 most requests were for something that didn't seem to exist yet, and only 14% asked for a better version of software that already did. Since 2024 it has been 27%. The terms attached to requests moved with it. Asking for a tool that is local or private went from 15% to 26% of requests, open source or self-hosted from 7% to 18%, and free from 14% to 22%. Objecting to subscriptions doubled, though it is still rare, while saying "I'd pay" slipped slightly, from 11% to 9%.
A better version of something that exists
Local or private
Simple
Free
Open source or self-hosted
AI does the job
No subscription
Would pay
Taken together, these suggest the frustration has shifted. Early requests mostly describe gaps, things nobody had built yet. Recent ones more often describe software that exists but has drifted from what its users want, through ads, subscriptions, cloud lock-in or bloat, and they ask for the same tool without those costs.
AI is the one term that rose for a different reason. Before 2022 no more than about 3% of requests asked for AI to do the job, and since 2024 18% do, as tools that were out of reach a few years ago became plausible. Topics moved in a similar way. Requests about AI and agents grew from almost none to about 7% of all requests and requests about the desktop operating system doubled, while requests about websites, online communities and phones fell by half or more.
These are trends in model labels rather than exact rates, but they are large, they hold year after year, and they point the same way as the list itself.
Limits
- Hacker News is a single audience, made up mostly of developers in the US and Europe.
- A request is only counted if it uses one of the 35 phrases, and many real requests don't.
- The checks were done by AI readers rather than people, so their mistakes may be consistent ones. Every count links to its asks, so any idea can be checked in a few minutes.
- The search for existing tools only covers Show HN.
Using the data
The full dataset is free to download. It contains all 12,441 requests as links to HN with Jev's labels, along with the 100 ideas and their counts, but no comment text and no usernames. If you build something from the list, posting it as a Show HN means the next run of this project will find it.