Job market reports · Methodology
How we count
Every limitation we know about, including the ones that make our numbers look worse. If something here contradicts a figure on a report page, this page is right and the report page is a bug.
Where the postings come from
457,191 live US postings, read directly from 64,697 employers’ own careers pages as they stood in August 2026. Nothing is scraped from a jobs aggregator, so a single role reposted across five sites is counted once rather than five times. Duplicate inflation is most of why job-market numbers from different sources disagree.
22,362 of those fall into the technical roles we report on (4.9%). The rest of the corpus is every other kind of job — the board is a general US job board, and healthcare and sales postings outnumber engineering ones — and is not analysed here.
Two tiers, and why it matters which one a number came from
Counts, seniority, locations, employers and sponsorship cover every posting. They are derived from the job title and from fields the employer already publishes, so no posting is excluded and nothing is sampled.
Skills, pay and years of experience cover a subset — 127,154 postings, 27.8% of the corpus — because they require reading the full description, which costs a model call per posting.
That subset is not a random sample. It was assembled by the system that matches jobs to candidates, which favours the roles our users search for. We know this skews it: technical roles are roughly three times denser in that subset than in the rest of the corpus. Counts are unaffected — they come from the full corpus — but treat every skill and pay figure as describing the subset rather than the market, until we replace it with a sample drawn at random for the report.
Skills are counted as mentioned, not required
This is the limitation most likely to mislead. Our extraction returns a single list of skills per posting and does not separate a hard requirement from a nice-to-have. “67% of postings name Python” counts both “5+ years of Python required” and “Python a plus”.
Read every skill percentage as how often something is asked about, never as how often it is mandatory. Making the stronger claim would need a different extraction, and until we have one we will not make it.
Percentages use the postings that produced any skill as the denominator (94–99% of the subset, depending on role), because measuring against all postings would understate every skill by our own extraction-miss rate — a fact about our pipeline, not about hiring. The extraction caps at 25 skills per posting, which truncates about 3% of descriptions and slightly under-counts skills that appear in long technology lists.
Why the pay figures run high
Only a minority of postings state a salary, and that minority is not a random sample: it leans toward states with pay-transparency laws and toward employers who pay well enough to advertise it. The corpus also skews senior.
We publish the midpoint of an advertised range. That is not a wage. The US Bureau of Labor Statistics puts the median software developer wage at $133,080 (May 2024); our figure for the same role is about 45% higher, and both are correct about different things. If you want to know what the job pays, believe BLS. If you want to know what a well-funded employer will advertise for a senior role, that is ours.
Where a cut has fewer than 30 disclosed salaries we publish no band at all, and the page says so rather than leaving a blank that reads as zero.
What the sponsorship figures mean
Two different strengths of evidence, kept apart. Verified means the employer appears in US government H-1B approval records for the last three fiscal years — a public filing you can check. States it sponsors means only that a job description said so, with nothing behind it.
We previously added the two together and described the total as verifiable, which overstated the checkable figure by up to six points on some roles. Both are facts about the employer, never a promise about a specific posting: a company that sponsored last year can decline to sponsor this role.
What “live” means
A posting counts as live if it was still on the employer’s careers page the last time we read it. That is the best available signal and it is not proof the role is genuinely open — some postings outlive the vacancy. Counts measure what employers are advertising, not how many seats are unfilled.
How the extraction works
An LLM reads each full job description once and returns the facts it states: skills named, minimum years of experience, seniority, pay range, work arrangement. We store those derived facts and never the description text.
Seniority is read from the job title rather than the description, so it covers every posting rather than the enriched subset. That is also the figure with the strongest external corroboration — see below.
How these numbers check out
You cannot audit our pipeline, so here is ours next to sources you can. Checked 2026-08-20. Where we disagree, the reason is the row.
- AgreesShare of software engineering postings open to entry levelUs 3.1%Indeed Hiring Lab 4.5% (Q1 2026)
Measured from a completely different corpus — their aggregator against our direct-from-employer reads — with a different definition of entry level (they use 0–1 years of required experience; we read the job title). Ours now covers every posting rather than the subset whose description we had read, which moved it from 3.8% to 3.1%. Landing within a point and a half of an independent pipeline is the strongest external evidence we have that this figure is real, and entry-level roles are the case the job title captures best: a posting open to a new graduate nearly always says so in its title. Source
- DiffersShare of software engineering postings at senior level or aboveUs 53.4%, and not comparableIndeed Hiring Lab 69.3% (Q1 2026)
We are reporting this one honestly rather than dropping it. An earlier version of this page claimed 69.0% against their 69.3% and called it corroboration. That figure came from the subset whose descriptions we had read, where a model could tell that a bare "Software Engineer" was in fact a mid or senior role. Now that we count every posting, seniority comes from the job title alone and 40.8% of titles carry no level word at all — so our senior share is understated and the two numbers are no longer measuring the same thing. Indeed classifies from the description, as our old figure did. Fixing this properly means reading a random sample of descriptions rather than the demand-shaped one we have. Source
- AgreesEntry-level software engineering pay, 10th percentileUs $80,000US Bureau of Labor Statistics $79,850 (May 2024)
Theirs is the 10th percentile of all employed software developers; ours is the 10th percentile of disclosed entry-level postings. Different populations that should land near each other, and do. Source
- DiffersMedian software engineering pay, all levelsUs $192,500US Bureau of Labor Statistics $133,080 (May 2024)
Ours is 45% higher and it is not a contradiction — we are measuring a different thing, four ways over. BLS surveys what employed developers across the whole country are actually paid, in every industry and company size. We read the midpoint of an advertised range, only from the ~18% of postings that state one, at employers concentrated in pay-transparency states, in a corpus that skews senior. Their figure is also from May 2024. If you want to know what the job pays, believe BLS. If you want to know what a well-funded employer will advertise for a senior role today, that is what our number is. Source
- DiffersShare of tech postings advertised as fully remoteUs 19.5%Indeed Hiring Lab about 8% (Q1 2026)
The one place we are meaningfully out of line, and we have not fully explained it. Two likely causes: our corpus is read straight from tech employers’ own careers pages, which skew more remote-friendly than a general aggregator, and our extraction may read language like "remote-friendly" as remote where Indeed counts only fully-remote listings. Treat our remote share as an upper bound until we have narrowed it. Note also that 40% of postings in our corpus state no arrangement at all. Source
Found something wrong? That is worth more to us than a compliment. Tell us, and we will correct it and say what changed. Back to the reports.