How the AI Jobs Index is counted

By

Last updated

What Aravise counts

Aravise counts job postings located in Houston, Austin, San Antonio and Dallas whose description names an AI tool or skill, sorted into ten tool families. Each edition counts the postings first posted in one month, from its first day to its last, and is retrieved on the 2nd of the next month, Chicago time.

Every count comes from TheirStack, a database of job postings collected from job boards and employer career sites, which removes duplicate postings across boards. TheirStack is the only source; Aravise reads no job board itself.

Not counted: postings that say only "AI" or "machine learning" without naming a tool or skill, postings by recruiting agencies, postings TheirStack does not place in one of the four metros, and pay. Pay is never counted or shown.

No sentence on these pages is written by a language model. Each one is a fixed template filled with stored counts and dates.

How a count is made

For each metro and each family, Aravise sends TheirStack one search: the postings first posted in the month, in the metro's places, in the United States, from direct employers, whose description matches the family's patterns. The search asks for one posting and for the total number of matches, and the total is the count.

A second search with no pattern gives the number of postings of the metro and month in all. A share is the family's count over that number. One more search per metro holds every family's patterns at once, for the row of postings that name any AI tool or skill: twelve searches a metro in all.

Each answer is stored with its request, so a count can be checked and, if a reading was wrong, recomputed from what TheirStack answered that day.

Tool families and their patterns

TheirStack matches each family's patterns against the posting's description. A term counts as a whole word. Words that are also ordinary words, names or other products count only beside a context word in the same sentence, as each family's rules state. The patterns are regular expressions, case-sensitive unless they start with (?i), and are shown below exactly as sent.

Claude / Anthropic

  • Terms: Anthropic, Claude Code, Claude Sonnet, Opus or Haiku, Claude API, Claude.ai, Claude with a version number, Claude (beside a context word).
  • Claude alone counts only in the same sentence as AI, LLM, model, Sonnet, Opus or Haiku, and only with a capital C, so a person named Claude is not counted.
  • Anthropic, Claude Code, the Claude API, Claude.ai, and Claude followed by Sonnet, Opus, Haiku or a version number always count.
  • TheirStack patterns: (?i)\banthropic\b | (?i)\bclaude[\s-]+(code|sonnet|opus|haiku|instant|api)\b | (?i)\bclaude[\s-]?[1-9](\.[0-9])?\b | (?i)\bclaude\.ai\b | \bClaude\b[^.\n]{0,80}\b(AI|LLMs?|[Mm]odels?|Sonnet|Opus|Haiku)\b | \b(AI|LLMs?|[Mm]odels?|Sonnet|Opus|Haiku)\b[^.\n]{0,80}\bClaude\b.

ChatGPT / OpenAI

  • Terms: ChatGPT, OpenAI, Azure OpenAI, GPT-3.5, GPT-4, GPT-4o, GPT-5.
  • GPT alone does not count; GPT with a version number (GPT-4, GPT-4o, GPT-5) does.
  • TheirStack patterns: (?i)\bchat[\s-]?gpt\b | (?i)\bopenai\b | (?i)\bgpt-?[3-9](\.[0-9]+)?o?\b.

Gemini

  • Terms: Google Gemini, Gemini API, Gemini Pro, Flash, Ultra, Nano or Advanced, Gemini with a version number, Gemini (beside a context word).
  • Gemini alone counts only in the same sentence as Google, Vertex, AI or LLM, and only with a capital G, so the Gemini crypto exchange and the zodiac sign are mostly not counted.
  • Google Gemini, the Gemini API, a named Gemini model and Gemini with a version number always count.
  • TheirStack patterns: (?i)\bgoogle[\s-]+gemini\b | (?i)\bgemini[\s-]+(api|pro|ultra|flash|nano|advanced)\b | (?i)\bgemini[\s-]?[1-9](\.[0-9])?\b | \bGemini\b[^.\n]{0,80}\b(Google|Vertex|AI|LLMs?)\b | \b(Google|Vertex|AI|LLMs?)\b[^.\n]{0,80}\bGemini\b.

Copilot

  • Terms: GitHub Copilot, Microsoft Copilot, Microsoft 365 Copilot, M365 Copilot, Copilot Studio, Copilot for Microsoft 365.
  • Copilot counts only in these product names; copilot or co-pilot alone (aviation, sales and support roles) does not.
  • TheirStack patterns: (?i)\b(github|microsoft|m365)[\s-]+(365[\s-]+)?copilot\b | (?i)\bcopilot[\s-]+(studio|for[\s-]+(microsoft[\s-]+365|m365))\b.

Llama

  • Terms: Llama 2, Llama 3, Llama 4, Meta Llama, LLaMA.
  • Llama counts only with a version number, as Meta Llama, or spelled LLaMA; llama alone does not.
  • TheirStack patterns: (?i)\bllama[\s-]?[2-9](\.[0-9]+)?\b | (?i)\bmeta[\s-]+llama\b | \bLLaMA\b.

Mistral

  • Terms: Mistral AI, Mistral 7B, Mixtral.
  • Mistral counts only as Mistral AI, Mistral 7B or Mixtral; mistral alone (a wind, a name) does not.
  • TheirStack patterns: (?i)\bmistral[\s-]+ai\b | (?i)\bmistral[\s-]?7b\b | (?i)\bmixtral\b.

LLM / generative AI

  • Terms: LLMs, LLMOps, LLM-based, LLM-powered and other LLM compounds, LLM (beside a context word), large language model, generative AI, GenAI, Gen AI, foundation model.
  • LLM counts only in capitals. LLMs, LLMOps and compounds such as LLM-based, LLM-powered, LLM applications or LLM agents always count; LLM alone counts only in the same sentence as AI, GenAI, GPT, NLP or machine learning, so the law degree (JD/LLM, an LLM in Taxation) is not counted.
  • TheirStack patterns: (?i)\blarge[\s-]+language[\s-]+models?\b | (?i)\bgenerative[\s-]+ai\b | (?i)\bgen[\s-]?ai\b | (?i)\bfoundation[\s-]+models?\b | \bLLMs\b | \bLLMOps\b | \bLLM[\s-]+(based|powered|driven|apps?|applications?|agents?|pipelines?|frameworks?|integrations?|evaluations?|fine[\s-]?tuning|prompting|APIs?|tools?|tooling|workflows?|solutions?|systems?|products?|features?|models?|orchestration|inference|chatbots?)\b | \bLLM\b[^.\n]{0,80}\b(AI|GenAI|GPT|NLP|[Mm]achine [Ll]earning)\b | \b(AI|GenAI|GPT|NLP|[Mm]achine [Ll]earning)\b[^.\n]{0,80}\bLLM\b.

Prompt engineering

  • Terms: prompt engineering, prompt engineer, prompt design.
  • TheirStack patterns: (?i)\bprompt[\s-]+(engineering|engineers?|design)\b.

RAG

  • Terms: retrieval-augmented generation, retrieval augmented generation, RAG pipeline, system, architecture and other RAG compounds, RAG (beside a retrieval term).
  • RAG counts only in capitals: directly before pipeline, system, architecture, application, solution, workflow, framework, model, chatbot or agent, or in the same sentence (at most 60 characters away) as LLM, GenAI, vector, embedding, retrieval, LangChain or LlamaIndex.
  • RAG status, rating or reporting (red, amber and green project reporting) therefore does not count.
  • TheirStack patterns: (?i)\bretrieval[\s-]+augmented[\s-]+generation\b | \bRAG[\s-]+(pipelines?|systems?|architectures?|applications?|solutions?|workflows?|techniques?|patterns?|frameworks?|models?|chatbots?|agents?|based)\b | \bRAG\b[^.\n]{0,60}\b(LLMs?|GenAI|[Vv]ectors?|[Ee]mbeddings?|LangChain|LlamaIndex|[Rr]etrieval)\b | \b(LLMs?|GenAI|[Vv]ectors?|[Ee]mbeddings?|LangChain|LlamaIndex|[Rr]etrieval)\b[^.\n]{0,60}\bRAG\b.

Agentic AI

  • Terms: agentic, AI agent, AI agents, multi-agent (beside an AI term).
  • Agentic and AI agent always count; multi-agent counts only in the same sentence as AI, LLM or GenAI; agent alone never counts.
  • TheirStack patterns: (?i)\bagentic\b | \b(AI|A\.I\.)[\s-]+[Aa]gents?\b | \b[Mm]ulti[\s-]?[Aa]gents?\b[^.\n]{0,80}\b(AI|LLMs?|GenAI)\b | \b(AI|LLMs?|GenAI)\b[^.\n]{0,80}\b[Mm]ulti[\s-]?[Aa]gents?\b.

Any named AI tool or skill

  • One query with every family's patterns at once (40 patterns), so a posting that names several families counts once in this row.

Where a posting counts

A posting counts for a metro when TheirStack places it in one of the metro's places below, each a GeoNames place id (the city and the suburbs the index treats as the metro, read from geonames.org on October 29, 2026). A posting TheirStack places only in Texas or the United States, without a city, counts in none.

Greater Houston

  • Houston (4699066), The Woodlands (4736476), Sugar Land (4734825), Katy (4702732), Pearland (4718097), Spring (4733624), Cypress (4684724), Humble (4699442), Pasadena (4717782), League City (4705692), Webster (4740423), Conroe (4682991), Missouri City (4711801), Stafford (4734005), Bellaire (4673353), Tomball (4737094), Friendswood (4692521), Baytown (4672731), Richmond (4722684), Rosenberg (4723914), West University Place (4741100), Seabrook (4727596), Galveston (4692883).

Greater Austin

  • Austin (4671654), Round Rock (4724129), Cedar Park (4679867), Georgetown (4693342), Pflugerville (4718711), Leander (4705708), San Marcos (4726491), Kyle (4703811), Buda (4050880), Lakeway (4705041), Bee Cave (4673132), Dripping Springs (4686903), Hutto (4699626), Manor (4708989), West Lake Hills (4740928), Sunset Valley (4735085), Rollingwood (4723734).

Greater San Antonio

  • San Antonio (4726206), New Braunfels (4714131), Schertz (4727326), Boerne (4675373), Seguin (4727756), Converse (4683021), Live Oak (4707055), Universal City (4738574), Helotes (4697038), Leon Valley (4705923), Alamo Heights (4670029), Selma (4727785), Cibolo (4681462), Windcrest (4742537).

Dallas–Fort Worth

  • Dallas (4684888), Fort Worth (4691930), Plano (4719457), Irving (4700168), Frisco (4692559), Arlington (4671240), Richardson (4722625), Addison (4669828), McKinney (4710178), Garland (4693003), Denton (4685907), Allen (4670300), Carrollton (4679195), Grapevine (4694568), Lewisville (4706057), Southlake (4733313), Mesquite (4710826), Grand Prairie (4694482), Coppell (4683217), Flower Mound (4691585), Rockwall (4723406), Prosper (4720833), Farmers Branch (4690198), University Park (4738606), Highland Park (4697616).

The employer list

Each edition also asks TheirStack, once per metro, for the newest 200 postings of the month that name any family, and groups them by employer (the company's web domain, else its name). An employer's number is its postings in that sample, not all its postings; the page states the sample's size beside the list.

The list is collected and kept with each edition but not yet shown on these pages.

Source and terms

  • TheirStack job postings data: the job search API, used under TheirStack's terms and conditions. Aravise publishes counts and shares derived from it, each with the source and the retrieval date, and never republishes the postings themselves.
  • TheirStack's own company and technology data is not used: only postings, counted by their text.

Shares, small counts and missing counts

A share is shown only over at least 30 postings. Below that, the counts are shown without a share.

A count TheirStack did not answer is marked unavailable with the reason, never shown as zero. When no count could be made at all, the edition waits for a person and is not published.

Comparisons between editions

A change is shown only between counts made under the same method, the same patterns and the same places, against the prior published month.

When a metro's share of postings that name any AI tool or skill moves more than 10 percentage points from the prior edition, the edition waits for a person to review it before it is published.

Limits

  • The counts cover the postings TheirStack collects, not every job. A board or career site TheirStack does not read is not counted.
  • TheirStack removes the same posting found on several boards; Aravise relies on that and does not remove duplicates itself.
  • A posting is a job advertisement, not a hire. The index gives no figure per worker or per employed person.
  • The patterns read the description only. A posting that names a tool only in its title is not counted.
  • A month's counts can grow after the edition as TheirStack indexes late postings; a correction can ask again for the same month.
  • Aravise does not estimate or project: no figure covers postings TheirStack did not count.

Corrections and immutability

A published edition is never edited. A correction is published as a new revision of the month, with a notice that says what changed and when. A reading error is recomputed from the stored answers; a pattern, place or late-posting correction asks TheirStack again for the same month. The month's page shows the current revision; the earlier figures stay in the downloads, marked superseded.

The stored answers are kept for 180 days; the per-posting audit records of the employer sample for 3 years; the published counts for good.

To report a problem with a count, email chris@aravise.ai with the page address.

Downloads and license

Every published edition is available as CSV and JSON, one row per count, with its source, its status, its retrieval date and its method key. Each month also has its own files.

The counts are free to reuse under CC BY 4.0, with credit to the Aravise AI Jobs Index and to TheirStack as the source of the job postings data. Each file lists every count with its source, its retrieval date and its method key; the files hold counts only, never a posting or an employer.

How to cite

Cite an edition by its page address, in this form: Aravise (year). Aravise AI Jobs Index: metro, month and year edition, revision number. Published date. Source: TheirStack job postings data. Page address.

Each edition page shows its own citation, and the downloads carry the same credit text.

See every metro in the AI Jobs Index