Research · Preliminary analysis

AI Search Jobs: methodology and data

Fernando Angulo · Senior Market Research Manager at Semrush, an Adobe company10 min ·

Version: editorial reanalysis, October 11, 2026. Source cutoff: September 22, 2026, freeze 1.0. Personal research, public job-posting sources, no proprietary employer datasets. Preliminary results.

Design and eligibility

Descriptive job-content study using targeted multilingual discovery, not a probability sample, census, blinded preregistration, or representative labor-market estimate. The protocol followed an exploratory pilot. Searches combined explicit AI search terminology and conventional titles; employer career pages and ATS sources were primary evidence. Intermediaries and directories were discovery leads. Eligibility required material commercial generative-search responsibilities; generic AI work and geospatial GEO were insufficient.

Unit: unique requisition. Employer plus stable posting/requisition identifier is preferred for deduplication; canonical URL and manual company/title/location/body comparison support it. Multiple locations and source aliases do not constitute additional jobs or hires.

Flow: 1,466 physical records, minus 26 aliases = 1,440 candidate units. Core = 1,003 (867 current-tier-A, 136 historical-tier-B); remaining units = 344 pending, 85 exploratory-adjacent, eight excluded. These categories reconcile exactly. Current is the source-status classification at the freeze, not confirmation of present-day availability. Historic recovery is not a comparable earlier sampling window.

Calculation

The recalculation uses the frozen registry and asserts all eight source hashes in its manifest. The editorial review retains the reproduction script and source hashes. `cohort-analysis.json` includes the hashes and title expression. `sample-register.csv` lists IDs, cohorts, employers, titles, source URLs, source tier, capture date where recorded, posting date where recorded, and coding status. Raw job-description text is not redistributed.

Published title classifier reproduces the reviewed snapshot, not the older exploratory script:

`(?:\bgeo\b|\baeo\b|\baio\b|generative engine|answer engine|ai- |llm[- ]visibility)`

Case-insensitive lexical matching, not a validated specialist-title classifier. Explicit/current: 372; other/current: 495. Explicit/historical: 58; other/historical: 78. Pooled title total 430 is a reconciliation check only; the article reports cohort denominators separately.

Outcome counts use the set of `outcome_code` values within `outcomes_legacy` per row. Each code contributes at most once per requisition. Structured codes O0–O8 represent operating capability, eligibility, presence/mention, citation, recommendation, qualified visit, initial conversion, commercial impact, and accuracy/risk. They are nonexclusive. Counts combine responsibility, target, metric, and required-prior-result states unless filtered explicitly. A code is not necessarily a responsibility, an AI-specific outcome, or an achieved result.

The exact `scope == ai_search` filter excludes combined organic-and-AI labels and numerous heterogeneous, unnormalized scope labels. It is conservative, not an exhaustive AI-related estimate. This is particularly important for O5–O7. Broader commercial duties cannot be assigned to AI search alone. Zero achieved-commercial-result fields mean no such evidence is documented in this registry, not that no company achieved results.

Employer sensitivity counts each employer label at most once per code among the 701 current employers. It uses the frozen employer identities rather than a new parent-company consolidation. Percentages equal count/cohort denominator, rounded to one decimal; rounding uses Python's standard `round` in the generated CSV. The 147/867 visit count is 16.955%, presented as 17.0%.

Review and quality limits

Both review-register lists cover all 1,003 admitted core IDs; 10 additional reviewed IDs are outside the admitted core. Coder IDs identify AI-assisted second coding and adjudication. This is not human peer review. No measured inter-coder agreement is available.

The row status remains pending final adjudication for 944 core records: 844 current, 100 historical. Completed-adjudication labels occur for 59: 23 current, 36 historical. Registry decision strings also retain the suffix `provisional`. Review-list coverage, row-status completion, and hash validation are different forms of evidence. The frozen summary's statement of complete second review cannot establish that every final adjudication was completed. The reanalysis preserves this discrepancy and labels the article preliminary.

Before treating the results as final: reconcile statuses with underlying decision/adjudication documents; review code evidence and heterogeneous scope labels; document agreement and correction counts. Reproducing frozen totals alone does not independently validate coding. Article examples are paraphrases from the coded registry. Stripe and Aiven sources were readable during the editorial review; Smarsh failed retrieval and Virgin Voyages returned no readable text. Those two cases are explicitly attributed to the frozen register.

Source availability and capture metadata are incomplete for some records. Posting dates are recorded for 29/867 current and 12/136 historical, with 962/1,003 missing overall. Collection rounds changed discovery coverage. No longitudinal, labor-market prevalence, hiring, or causal estimate is supported by this design. No confidence intervals for the wider market are reported. Salary, skills, seniority, geographic and business-model comparisons require additional normalization and coverage audits; raw heterogeneous labels are not used for those headline claims.

Data tables

Sample register, CSV

Outcome tables, CSV

Fernando Angulo

Senior Market Research Manager at Semrush, an Adobe company

Fernando turns AI-search research into operating decisions for marketing and revenue leaders.