Methodology
Methodology and data reuse
How the numbers on our data pages are collected, classified and calculated - what they can tell you, what they can't, and how you may reuse them.
Where the data comes from
- Job posts are imported directly from company career sites and the applicant tracking systems behind them - 100+ platforms and over 82,000 active hiring companies. We do not aggregate other job boards.
- Imports run many times a day. Every job keeps its original publish date, title, location, description, salary text and direct apply link.
- Quality filters run at import (age, title, location and description checks), and companies are reviewed by people as well as automated checks. Duplicate company entries are detected by overlapping job fingerprints and held back.
How job posts are counted
- Market counts use active companies hiring directly. Staffing and recruiting agencies are flagged and left out, because they often post the same job for several clients.
- Reposts count once: posts with the same company, title and location count as one job within each window (7, 30 or 90 days, a month, 12 months).
- Multi-location jobs count once in totals, and once in each of their countries in country breakdowns.
- All windows use the job's publish date.
Growth and changes
- Like for like: our coverage grows as we add companies, so changes over time only count companies we already tracked before the comparison started. New coverage never shows up as "growth". Volumes and charts still show all job posts.
- Minimum sample sizes: a month-over-month change needs at least 100 job posts in the earlier month, a three-month change at least 300 in the earlier three months, and a skill share change at least 50 mentions in each three-month window. Below that, no change is shown.
- Seasonality: month-over-month changes include seasonal effects (holidays, year-end). Monthly reports also show the change from the same month a year earlier where the data allows.
Expired and open jobs
Jobs are checked against their source for removal and marked expired when they disappear. Any job still open after 180 days is expired automatically. Because expiry tracking is best effort and can lag, company pages count a post as open only if it is unexpired and was published in the last 90 days.
Classification
- Roles: jobs are mapped to a three-level role taxonomy (broad role, specific role, high-resolution role) by a cached rules-and-LLM pipeline. One job can map to more than one broad role, so role counts overlap. 100% of job posts from the last 90 days are classified so far, so role volumes are lower bounds.
- Work mode: jobs with a remote or hybrid signal in their title, location or description are classified as hybrid, remote or remote-anywhere. Jobs without any remote signal are not classified ("no remote signal", mostly on-site); jobs with a signal that cannot be resolved are "remote signal, mode unclear".
- Experience level: taken from the post where it is stated, otherwise predicted by a text model (entry, mid, senior, executive).
- Language: detected automatically from the job text.
Skills
- 127 skills and tools are tracked. A post counts when its title or description mentions the skill as a phrase.
- Ambiguous words (16 skills such as Excel, React, Agile, Airflow, Rust or Tableau) only count in an unambiguous form or together with related technical terms in the same post - "excel at", "react to" or airflow in HVAC do not count. Each skill page states its rule.
- Posts by the skill's own vendor (for example Salesforce hiring for Salesforce) are excluded.
- Shares are the percentage of all job posts with a searchable description in the same window, since only those can mention a skill. A mention is not always a hard requirement.
Salaries
- Public salary figures use only salaries stated in job posts - never estimates. Estimated salaries exist in the API (access pro+) but are excluded here.
- Ranges are annualized to full-time equivalents (hourly x 2000, daily x 250, weekly x 50, monthly x 12) and converted to USD at the exchange rate of the day the job was published.
- Each post counts once at the midpoint of its advertised range. Midpoints outside $10,000-$1,000,000 per year are left out.
- One pay market first: salary pages lead with the United States where it has enough data (otherwise the country with the most stated salaries) and show other countries separately. Figures pooled across countries are labelled as such because they mix pay markets.
- Not a random sample: most stated salaries come from places where employers must or commonly publish pay ranges (several US states, parts of Europe). Roles and regions without pay transparency are underrepresented.
- A role needs at least 100 job posts with a stated salary in the last 12 months for a salary page; breakdown rows (seniority, country) need at least 20. Advertised ranges are what employers publish, not what people end up earning.
Data pages, windows and thresholds
- Job data by role (updated daily): roles with at least 50 new job posts in the last 90 days; volumes for 7 days, 30 days, 90 days and 12 months.
- Hiring trends (updated daily): industries (of the hiring company) and countries with at least 200 new job posts in the last 90 days; monthly bars show completed calendar months.
- Company hiring activity (updated daily): the 2,000 most actively hiring companies with at least 25 open job posts, excluding agencies; weekly and monthly history from completed periods.
- Skill demand (updated weekly): skills with at least 100 mentions in 90 days.
- Rankings are calculated from the same daily and weekly numbers; monthly reports freeze the numbers of a completed month and never change afterwards.
- Every data page has a CSV (
data.csv) with the page's numbers and, where possible, the API query that reproduces its job posts.
Limitations
- Coverage is limited to the companies and platforms we track; it is not a census of all jobs.
- Recent periods can still change slightly as late imports, expiries and classifications arrive.
- Percent changes on small numbers are volatile - check the underlying counts, which every page and CSV includes.
Corrections
Spotted a number that looks wrong? Email hey at jobdataapi.com with the page link and what you noticed. We check every report and fix confirmed errors.
Reuse and license
The aggregated numbers, tables and charts on our public data pages, rankings and monthly reports are licensed under Creative Commons Attribution 4.0 (CC BY 4.0). You may quote, chart and republish them, including commercially, as long as you credit jobdata API with a link to the page you used, for example:
Source: jobdata API (https://jobdataapi.com/skill-demand/python/), data as of November 2026.
Every data page has a "Cite this data" line, a CSV download (data.csv) and a Markdown version (index.md). Raw job data - individual job posts, descriptions and company records - is available through the API under our regular terms and is not covered by this license.
Explore jobdata API with AI tools
Ask an AI assistant how to search and build with live job data.