Refolk
July 4, 2026·9 min read

Ashby Outed Itself in HN's July Thread. Turn It Into a Sourcing Pipeline.

Ashby's July 2026 HN post said to cmd+F its name. Here's how to turn that into a scrapable Ashby ATS sourcing pipeline before roles hit LinkedIn.

Ashby ATS sourcingHacker News who is hiring July 2026scrape HN hiring threadAshby job boardrecruiting operations startups
Ashby Outed Itself in HN's July Thread. Turn It Into a Sourcing Pipeline.

The July 2026 "Ask HN: Who is hiring?" thread went live about sixteen hours ago (item 48747976). Buried inside it, Ashby posted its own recruiting pitch with a line most vendors would never write out loud: "If you cmd+f 'Ashby' you'll see that we're powering many of the job postings in this thread." That is a self-outed vendor concentration signal, and if you know how to read job URLs, it just turned an unstructured comment blob into a structured, ATS-fingerprinted dataset of who is hiring, at what level, and for how much.

This post is the pipeline. Cmd+F is step one. Steps two through five are where the leverage lives.

What Ashby actually told you

Ashby's own copy in the thread includes the line "80%+ of our engineering team is Senior - Staff+ level." Read that as a template, not a boast. Every serious HN post has a similar seniority declaration buried in it, and the ones hosted on Ashby also carry a URL you can turn into a structured record.

The URL fingerprint is the whole game. Ashby-hosted postings look like this:

https://jobs.ashbyhq.com/{slug}

The last path segment (Ashby calls it the "jobs page name") is the company's public slug. For Ashby itself, the slug is literally Ashby. For Radical Numerics, the AI research lab behind Evo that is hiring in this same July thread for SF and Tokyo onsite roles, it is radical-numerics. Kog is kog. Recent threads have surfaced oneleet, spruceid, colonist, and PrairieLearn on a subdomain (prairielearn.com/jobs-ashby).

Once you have the slug, you have the API.

The API Ashby quietly hands you

Ashby publishes a Job Postings API that is public, unauthenticated, and returns everything a sourcer needs. One curl:

curl "https://api.ashbyhq.com/posting-api/job-board/ashby?includeCompensation=true"

Swap ashby at the end for any customer slug. What comes back is a JSON payload with title, location, department, team, isRemote, employmentType, jobUrl, applyUrl, and, when you set includeCompensation=true, a field literally named scrapeableCompensationSalarySummary. The field name is an invitation. Take it.

That is the difference between "we saw Notion is hiring" and "we have a normalized table of every open Notion role with location, seniority, and salary band, refreshed on our schedule." Notion, Ramp, Linear, PostHog, and LangChain are all Ashby shops. So are thousands of the smaller companies whose founders post directly to HN.

2,700+
Ashby customers as of the last public update
Ashby scaled from 1,300 to over 2,700 customers, grew revenue 135% YoY, and lifted interviews scheduled through the platform by 170% in the year after Series C.

Step one: grep the thread

HN exposes the entire thread as JSON at https://hacker-news.firebaseio.com/v0/item/48747976.json, and every comment resolves to another JSON blob. Walk the tree, concatenate the comment text, and run one regex:

jobs\.ashbyhq\.com/([A-Za-z0-9\-_]+)

Dedupe the captured slugs. What you have now is a list of every company in the July 2026 thread that runs on Ashby, keyed by their API slug. Depending on the month, that is typically dozens of shops, and in a thread this size it is a meaningful slice of the "actively hiring right now" universe.

Repeat the same trick against the other ATS URL patterns while you are in there. Slugs are portable across vendors:

boards\.greenhouse\.io/([A-Za-z0-9\-_]+)
jobs\.lever\.co/([A-Za-z0-9\-_]+)
jobs\.smartrecruiters\.com/([A-Za-z0-9\-_]+)
([a-z0-9\-]+)\.recruitee\.com

Ashby is the highest-signal filter because of the "cmd+F" self-tell, but the same script gives you a normalized company graph across the whole thread. That graph is what turns an HN scroll session into recruiting operations for startups you would otherwise learn about on LinkedIn a week later.

Step two: hydrate the slugs

For each Ashby slug, hit the public API. You now have structured rows: company, role title, department, location, remote flag, employment type, and salary band where the company opted in. This is the raw material for actual Ashby ATS sourcing work: cohort by seniority ("Staff Engineer" and above), filter by location, sort by comp ceiling.

The reason this matters in July 2026 specifically is timing. Aggregators like TheirStack claim 90% of new tech postings are discovered within 24 hours and 73% same-day. That leaves 27% of postings that aggregators miss on day one, and effectively 100% of postings sit on Ashby's public API before they syndicate anywhere else. The HN thread is the leading edge, the Ashby API is the structured mirror, and LinkedIn is the lagging index.

If you would rather skip the scraper entirely and just describe the shortlist you want, that is what we built Refolk for. You ask in plain English ("staff-plus infra engineers at Ashby-hosted AI labs hiring in SF this month") and get a ranked list back, pulled across GitHub, LinkedIn, and the open web.

Step three: read the hiring bar off the data, not the copy

Every founder writes "we hire senior engineers" in their HN post. That is noise. The Ashby API gives you two better signals.

Titles at scale

Pull every open role for a slug and count the distribution of titles. If 80% of open engineering roles carry "Senior," "Staff," or "Principal," the company is telling you where its bar sits, without needing to trust its self-description. Ashby itself claims 80%+ Staff+, and its own API confirms it. Do that check on every slug you pulled.

Compensation bands

scrapeableCompensationSalarySummary returns the posted band, which in comp-transparency states is legally close to what the company will actually pay. Build a heatmap: role family on one axis, band midpoint on the other. Two companies both saying "we hire senior engineers" but posting bands that differ by $80K are not competing for the same candidate. That is the actual hiring bar, not the marketing copy.

The Ashby field is literally called scrapeableCompensationSalarySummary. Read that as a directive.

Step four: catch the embedded boards

Here is where most scrapers lose half the corpus. Ashby supports embedding the job board directly on a customer's own careers domain. A company can be a full Ashby shop while linking to careers.company.com from its HN post, and your jobs.ashbyhq.com regex will skip it entirely.

Two ways to catch these:

  1. View-source for the tell. Fetch the careers page HTML and grep for ashby_embed, ashby-job-board, or references to ashbyhq.com. Any of those confirm the ATS.
  2. Guess the slug. Companies usually pick their own name, lowercased and hyphenated, as their Ashby slug. Try https://api.ashbyhq.com/posting-api/job-board/{guessed-slug} and see if you get a 200. PrairieLearn is a good example: their public URL is prairielearn.com/jobs-ashby, but the underlying board is still an Ashby job board with a predictable slug.

Do both. The delta between "companies whose HN link says jobs.ashbyhq.com" and "companies actually running on Ashby" is often 30% or more.

Step five: turn slugs into people

You now have companies, roles, seniority mix, and comp. The remaining problem is the one that actually pays: who do you talk to?

There are two directions.

Inbound: candidates already at those companies

Every slug in your list is a company whose engineers are, statistically, more open than the market average. Founders posting to HN in July 2026 are hiring because they closed a round, launched a product, or lost people. The "lost people" case is the sourcing gift. Take the slug list, feed it as an alumni filter, and pull recent leavers.

Outbound: candidates who match the job specs

You have JD data. Take the top ten hardest-to-fill roles across your slug list (usually staff-plus infra, ML, or security), extract the requirements, and search for the humans. This is where a plain-English tool beats a boolean builder. Something like "engineers who shipped inference infra at a Series C or later AI lab, active on GitHub in the last 90 days" in Refolk returns a ranked shortlist across GitHub, LinkedIn, and the open web without you having to translate it into six different query languages.

What this looks like as a monthly ritual

Do this on the first weekday of every month, when the new "Who is hiring?" thread lands:

  1. Pull the thread JSON from HN's Firebase endpoint.
  2. Regex the Ashby, Greenhouse, Lever, SmartRecruiters, and Recruitee slugs.
  3. Hit each ATS's public API. For Ashby, include compensation.
  4. Diff against last month's slug set. New slugs are new signal (new customer, new hiring push, or new company).
  5. For any HN poster whose URL is a custom careers domain, try the guessed-slug API call.
  6. Rank by (a) seniority mix, (b) comp band, (c) recency of round, and (d) team size delta.

HNHIRING has been indexing these threads since January 2018 and now sits at 59,731 job ads. That corpus is the historical backstop for anything you want to argue about ATS market share over time. Kenny Tilton's whoishiring browser is the other prior-art tool worth knowing. Neither of them does the Ashby-API hydration or the compensation extraction, which is why this pipeline is worth the afternoon it takes to write.

27%
of new tech postings that aggregators miss on day one
Third-party aggregators claim 73% same-day coverage. Direct-from-Ashby scraping closes the rest of the gap, and often gives hours of lead time on the roles they do catch.

The concentration signal is the real story

Ashby telling you to cmd+F its name in the July 2026 thread is not a marketing flex. It is a vendor concentration disclosure, and it means the next twelve months of HN threads are also going to be Ashby-heavy. That gives sourcers a durable pattern: one grep, one API, one slug graph, refreshed monthly. Solace Health's post in the same thread ("$207M raised and a $1B valuation" after a February Series C led by IVP) is the archetype of what pops out the other end: a funded, hiring, senior-heavy shop with a public salary band and a URL you can hit with curl.

Ashby has raised $128M over four rounds, closed a Series D on July 22, 2025, and now powers hiring at a nontrivial share of the companies engineers actually want to work at. When the vendor tells you to grep its name, grep its name. Then keep going.

FAQ

Is scraping the Ashby API allowed?

The endpoint is public, unauthenticated, and documented in Ashby's own developer docs. It is designed for job-board embedding and syndication, which is exactly what you are doing at small scale. Respect rate limits, cache aggressively, and do not resell the data as a product without reading Ashby's terms. For internal sourcing use, it is the intended path.

Why not just use LinkedIn or an aggregator?

Latency and completeness. Aggregators miss roughly 27% of postings on day one. LinkedIn syndication lags the Ashby API by hours to days, and it strips structured fields like compensation bands and department metadata. If your competitor is sourcing off the Ashby API and you are sourcing off LinkedIn, you are consistently a day late on the same candidates.

How do I catch companies that use Ashby but do not link to jobs.ashbyhq.com?

Two moves. First, fetch the careers page HTML and grep for ashby_embed or references to ashbyhq.com; embedded boards leave that fingerprint. Second, guess the slug (usually the company name lowercased and hyphenated) and try the API. A 200 response confirms the ATS. This catches the roughly one-in-three Ashby customers who host on a branded careers domain.

Does this only work for Ashby?

No. The slug pattern is portable: Greenhouse, Lever, SmartRecruiters, and Recruitee all use {vendor}/{company-slug} URL structures, and most expose public job-board endpoints. Ashby is the sharpest lens right now because of the July 2026 self-outing and the compensation field, but the same regex-then-hydrate pipeline works across every major ATS.

Read next