The Hiring Radar
Open roles are a roadmap they are required to describe.
A roadmap is usually the most locked-down document in a company. Nobody leaks it, nobody screenshots it, nobody puts it on a public URL with an apply button. A job posting breaks that rule by necessity. You cannot hire an ML engineer without describing the feature they will build, and you cannot hire an enterprise AE without describing the deal size you are chasing. Read the open roles as one document instead of a stack of ads, and the roadmap reads itself.
What to do: Pull every open role straight from the board's own data with curl -s jobs.ashbyhq.com/COMPANY | grep -o '"title":"[^"]*"', then bucket by department and sort by the date each one was posted.
Why it works: Ashby, Greenhouse, and Lever boards ship the entire roster as structured JSON inside the page, department, team, and publish date included, so you get a dataset instead of a page you have to scroll and eyeball.
Example: Linear's public board carries 24 open roles in July 2026, 13 of them in Product against 9 in GTM, and the only role with "AI" in the title has been sitting open for more than a year.
Walk it through
I ran this against Linear's public jobs board in July 2026. Here is exactly what came back.
1. Open the board and read every title.

Twenty-four roles, sorted into three departments right on the page: GTM, Operations, Product. Nothing about this looks like a data source, it looks like a normal careers page. That is exactly why almost nobody reads it as one.
2. Pull the same list straight from the page's own data.
curl -s https://jobs.ashbyhq.com/linear | grep -o '"title":"[^"]*"' | head -6

Ashby renders the board from a JSON blob it ships inside the HTML, so grep gets the whole roster in one request. Count the matches and you get 24, the same number the page shows in its "Open Positions" badge. That confirms you are holding the complete list, not a partial render that needed a scroll or a click to load more.
3. Bucket by department, then sort by the date each role was posted.
curl -s https://jobs.ashbyhq.com/linear | grep -o '"departmentName":"[^"]*"' | sort | uniq -c
curl -s https://jobs.ashbyhq.com/linear | grep -o '"publishedDate":"[^"]*"' | sort | uniq -c | head -4

Product carries 13 of the 24 roles, more than GTM and Operations combined. Sort by date and the oldest four postings stand out: two Fullstack Engineer reqs from 2021, a Product Engineer req from 2022, and the single role with "AI" in the title, posted July 10, 2025, which makes that AI hire over a year old, a standing bet rather than breaking news.
The read
- Department split shows where the money is actually going. 13 Product against 9 GTM and 2 Operations is a company still spending more on building than on selling, even one with real revenue and a real sales team.
- Publish date tells you if a title is a signal or furniture. The only AI-titled role on Linear's board has been open longer than every current req except two 2021 leftovers. That is not a fresh AI pivot, it is a slow, unfilled, ongoing search.
- The last 30 days are the real leading indicator. Four roles posted since mid-June: two Product Marketing Manager reqs back to back, a Customer Success Manager, and a Recruiting & HR Ops Specialist. That is a GTM-messaging and headcount-ops push happening right now, not an engineering sprint.
Steal it
Point the same two commands at any startup's Ashby, Greenhouse, or Lever slug, swap linear for their slug, and you get the identical dataset: title, department, team, location, and publish date, for free, in under a minute. Keep a dated copy each time you check a competitor and you build your own hiring timeline without ever opening LinkedIn.
If you are the one hosting the public board, remember it broadcasts the same things about you. Two engineering reqs open since 2021 do not read as "patient hiring bar" to someone running this play, they read as "still short-staffed, three years running." Close or refresh anything you would not want a competitor quoting back to you.
Gotchas
- Evergreen and reposted listings inflate the count. Two of Linear's 24 open roles have been live since 2021. Filter by
publishedDatebefore you trust any total headcount number as a sign of current momentum. - The JSON shape is not universal. Ashby ships
window.__appDatawith this exact field set. Greenhouse and Lever boards use different endpoints and different field names, so check the page source before assuming one grep pattern works everywhere. - Check monthly, not constantly. Reading a public board once is reconnaissance. Scripting an hourly poll against someone's careers page is the kind of load nobody, including you, wants pointed at their own site. Stay at the pace a normal visitor would use.