# Software and AI postings have the narrowest entry door of twelve US occupation families

Open US job postings in twelve occupation families, by the seniority label and by the experience each posting asks for, on the Metix AI Platform on September 22, 2026.

## Findings

Of 31,134 open US postings with software engineer or software developer in the title, 4,171 (13.4%) carry the seniority label Internship or Entry level. Of all 31,134, 21,879 (70.3%) state an experience requirement, and 2,337 of those (10.7%) ask for 24 months or less. Titles that name AI or machine learning are narrower still: 11.0% are labelled entry (3,447 of 31,428), and 8.3% of the stated requirements are 24 months or less (1,726 of 20,900, with 66.5% of AI postings stating one). Every other family is above 20% by the label.

The narrow door is not shared by every occupation that research calls AI-exposed. Brynjolfsson, Chandar, and Chen place software developers, customer service representatives, accountants, and paralegals and legal assistants in the most AI-exposed fifth of occupations (quintile 5). Among open postings, customer service is 67.9% labelled entry (37,527 of 55,265), five times the software share, and among the 25.7% of its postings that state a requirement, 86.8% ask for 24 months or less. Accountants (24.8% by label; 32.6% by requirement, with 78.3% stating one) and paralegals and legal assistants (30.6%; 31.2%, with 73.2% stating one) are 1.9 and 2.3 times the software share by label, and 3.1 and 2.9 times by requirement. In quintile 4, financial analysts are at 21.9% by label and graphic designers at 38.6%; marketing, whose occupations the paper splits between quintiles 4 and 5, is at 23.9%. By label, the widest doors are in the two quintile 3 occupations, truck and CDL drivers (83.7%) and registered nurses (77.3%), where a license, which neither measure records, is also required. Electricians, in quintile 2, are at 37.3% by label and 23.2% by requirement, with 69.4% stating one.

Under both measures, software and AI sit at the narrow end and customer service, nursing, and trucking at the wide end; the middle families change order. Among postings that state a requirement, the label and the requirement disagree on 6.5% of software postings and on 48.7% of customer service postings: 6,650 customer service postings ask for 24 months or less but carry a label other than Internship or Entry level, and the counts do not show which. Across the family, 25.2% of postings are labelled Not Applicable. Electricians and graphic designers look wider by label than by requirement (37.3% against 23.2%, 38.6% against 28.8%); accountants, financial analysts, and customer service look wider by requirement. Postings labelled entry state a requirement less often than the rest: 1,477 of software's 4,171 entry-labelled postings do (35.4%), against 75.7% of its other postings. Counting the Associate label as part of the door, software rises to 15.4% and AI to 13.3%, still the two lowest of the twelve.

Internships are 28.4% of the AI door and 14.6% of the software door, against 1.7% for accountants and 1.2% for customer service. An internship here is whatever the source labels one.

Two groups widen the widest doors without making them. Travel nursing titles are 17.3% of nursing postings; 93.8% of them are labelled entry, and only 5.4% state a requirement. The other nursing postings are 73.9% by label and 83.7% by requirement, with 53.1% stating one. Customer service postings from employers whose industry matches Retail or Restaurants are 57.4% of the family and 78.6% labelled entry; the rest are 53.5% by label and 77.4% by requirement, with 33.0% stating one. That rest still holds some store jobs whose employer lists another industry; even so, its label door is four times the software share.

Inside software, titles that also name an AI term are 10.6% labelled entry (271 of 2,562) against 13.4% for other software titles, but 13.1% of their stated requirements are 24 months or less, against 10.7%. The two measures point in opposite directions, so the data shows no consistent difference between them.

## Population and definitions

Open job postings (is_open) located in the United States (the job's location.country), in twelve occupation families defined by words in the title: AI and machine learning, software engineering, data analyst, financial analyst, accountant, paralegal and legal assistant, graphic designer, marketing, customer service, registered nurse, electrician, and truck and CDL driver. Each family is a short list of title terms, some with exclude words that the audits called for, in [`queries/families.json`](queries/families.json). A title matches a term when every word of it appears, in any order. Each posting is counted in one family at most: the first in the list whose terms it matches and whose exclude words it does not. Titles that pair an AI term with trainer, tutor, annotator, annotation, or rater (1,009 postings, 55.4% of them labelled entry) are taken out of every family first as AI training work. is_open is true on every posting in the searchable index today, so the population is every indexed US posting; the condition stays in the queries in case that changes.

The label door is the share of all postings whose seniority is Internship or Entry level. The source sets a seniority level on every posting, so it is a label rather than a requirement the employer wrote. The requirement door is the share of postings that state an experience requirement (min_experience_months) and ask for 24 months or less, 0 included. How many postings state one ranges from 25.7% (customer service) to 78.3% (accountants), and every requirement share in the data sits beside it. Entry level is defined only by what a posting labels or asks for, never by age: the data has no ages.

The exposure quintiles come from Brynjolfsson, Chandar, and Chen, "Canaries in the Coal Mine? Six Facts about the Recent Employment Effects of Artificial Intelligence", Online Appendix Tables A.2 to A.6 (August 2026 revision), which list the 50 largest occupations by ADP employment in each quintile of the GPT-4 beta exposure measure of Eloundou et al. (2024), as of October 2022. Quintile 5 is the most exposed. The paper gives quintiles, not scores, and each title family is the closest match to an occupation it lists, not the same set of jobs. AI and machine learning and data analyst match no occupation in those tables and carry no quintile. The paper's discussion section names software development and customer support among the occupations most exposed to AI, which is why they anchor the comparison.

## Method

126 counts, one API Credit each (126 API Credits for the reproduce run). No posting is read. For every family: the total, four seniority labels, whether a requirement is stated, whether it is 24 months or less, and the two door measures together. A Search total of 100,000 or more comes back banded, so when a registered nurse count was banded it was redone as two disjoint title parts, registered nurse and RN without registered nurse, and added. Subgroups count AI training work, AI-titled software, customer service outside retail and restaurant industries, and travel nursing; the rest of each family is by subtraction. A share is published only when its denominator is at least 30. `fetch.py` writes `data/families.json`, `data/subgroups.json`, and `data/receipt.json`, and writes nothing if any count fails. Definitions: [`queries/families.json`](queries/families.json) and [`queries/measures.json`](queries/measures.json).

## How it was made

An AI agent built this report through the public REST API. A feasibility probe first counted software, nursing, and customer service postings (18 API Credits). The agent then read `GET /contract` and the jobs documentation, which showed that seniority takes seven exact values and that is_open narrows nothing; software titles counted 33,740 with and without it, as `queries/measures.json` records. Its first title audit read 120 postings, 40 from the top of each of the AI, software, and data analyst searches, and found them clean, then found why: Search ranks postings by how well the title matches, so the top of a search is the cleanest part of a family. Those reads were set aside, and every family was then audited from whole slices (one posting day, a few states, every posting read): 336 postings in all, with the sample size and the on-topic share for each family in `queries/families.json`. The slices found AI data center facilities jobs in the AI family (230 postings, now passed to later families), a security analyst among data analysts (28 postings removed), delivery drivers among customer service titles (127 removed), and AI training work (1,009 postings, taken out first). They also found that travel nursing postings carry the Entry level label and rarely state a requirement, and that 23 of the 53 customer service titles read are store and counter jobs, which is why those two subgroups are counted. Employer industry turned out to be a partial filter for store jobs: one pizza chain's store postings list a software industry. Before the reproduce run, every query was sent once with an extra title word that matches nothing, which the Platform checks against its limits without charge. Exploration cost 174 API Credits, 18 of them in the feasibility probe; the reproduce run costs 126.

## Limits

One day of open postings, not a trend: this data cannot say whether the door narrowed. The cited paper measures employment over time from payroll records, and this study counts postings on one day, so it neither confirms nor tests the paper's finding. Postings describe demand, not hires, and a label or a stated requirement is what a posting says, not who is hired. Counts are postings, not openings: 38 of the 336 audited postings repeat the title and employer of another in the same slice, mostly one job posted at several locations. Title families include every level of an occupation and approximate the paper's occupations: the customer service family holds store counter jobs, the marketing family some jobs outside marketing (6 of 33 read, 4 of them sales or promotion), and the nurse and driver families are gated by licenses that neither measure records. Requirement coverage differs by family and is lower among entry-labelled postings, so the requirement door describes the postings that state one. The seniority label comes from the source platform and is sometimes inconsistent: travel nursing postings carry Entry level, and most of the travel postings read list Internship as their employment type. Two cuts were left out. Posted pay at the door: only 532 of the 4,171 entry-labelled software postings (12.8%) state a USD annual minimum (an exploration count recorded in `queries/measures.json`), too few to describe the door rather than the postings in states that require pay ranges. The employers with the most entry-level software postings: the Platform counts but does not group, so ranking employers would mean reading every entry-labelled posting, about 1,000 API Credits.

## Sources

Erik Brynjolfsson, Bharat Chandar, and Ruyu Chen, "Canaries in the Coal Mine? Six Facts about the Recent Employment Effects of Artificial Intelligence", Stanford Digital Economy Lab, first released in August 2025 and revised in November 2025 and August 2026: [publication page](https://digitaleconomy.stanford.edu/publication/canaries-in-the-coal-mine-six-facts-about-the-recent-employment-effects-of-artificial-intelligence/), [August 2026 paper](https://digitaleconomy.stanford.edu/app/uploads/2026/08/Canaries_August2026.pdf).

## Rerun

```bash
export METIX_KEY=metix_xxxxxxxxxxxx   # create one at https://platform.metix.ai/api-keys
python3 cases/entry-level-postings-by-occupation-2026/fetch.py
```

To make it with an agent instead, use [`PROMPT.md`](PROMPT.md).
