<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Level</title>
    <description>The latest articles on DEV Community by Level (@jobsbylevel).</description>
    <link>https://dev.to/jobsbylevel</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4138356%2F9bdade15-6335-4096-8202-d75f42b7531f.png</url>
      <title>DEV Community: Level</title>
      <link>https://dev.to/jobsbylevel</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/jobsbylevel"/>
    <language>en</language>
    <item>
      <title>How to write an honest AI job posting</title>
      <dc:creator>Level</dc:creator>
      <pubDate>Fri, 16 Oct 2026 12:31:54 +0000</pubDate>
      <link>https://dev.to/jobsbylevel/how-to-write-an-honest-ai-job-posting-2625</link>
      <guid>https://dev.to/jobsbylevel/how-to-write-an-honest-ai-job-posting-2625</guid>
      <description>&lt;h1&gt;
  
  
  How to write an honest AI job posting (and why candidates can tell when you don't)
&lt;/h1&gt;

&lt;p&gt;If you hire for AI roles, you have probably noticed that the same title can mean three different jobs. Candidates have noticed too. A posting that says "AI Engineer" and describes a reporting dashboard loses the people you wanted, and attracts the people who want the title. This is a practical guide to writing a posting that tells the truth, with the market numbers it should be written against. Figures are from 16 October 2026.&lt;/p&gt;

&lt;h2&gt;
  
  
  Start from the market, not from the title
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://jobsbylevel.com" rel="noopener noreferrer"&gt;Level&lt;/a&gt; rates every live posting from 1 to 4 on how central AI is to the work. For the title "AI engineer", it found 650 live postings on 16 October 2026, and 599 of them were rated Level 3 or 4, which means the description makes AI a daily part of the work. Roughly 34% of those 650 postings were remote (218 of them). Only 179 of the 650 published a salary in USD, which is 28%, and among those the median posted minimum was $183,000.&lt;/p&gt;

&lt;p&gt;Two things follow. First, if your "AI engineer" posting would be rated Level 1 or 2, it is an outlier against its own title, and candidates comparing postings will see it. Second, 72% of competing postings with this title do not publish a USD salary. Publishing a range sets yours apart.&lt;/p&gt;

&lt;p&gt;The same page shows who else is hiring under that title: Capital One had 72 open roles, OpenAI 40, PwC 29, SpaceX 18 and Anthropic 15.&lt;/p&gt;

&lt;h2&gt;
  
  
  What a mismatch looks like
&lt;/h2&gt;

&lt;p&gt;One example from the same day. A Senior AI Engineer (AI Factory) posting at Procter &amp;amp; Gamble in Warsaw named Vertex AI and Databricks and scored 25 out of 100, which is Level 1. That does not make it a bad role, and the score describes the text, not the team. It does show how a title with "AI" in it can sit next to a description that reads as something else. A candidate who wants model work will read the description, see little of it, and move on.&lt;/p&gt;

&lt;h2&gt;
  
  
  A six-part structure that scores honestly
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;One sentence on what the AI is.&lt;/strong&gt; Is the person building a model, running an inference service, evaluating outputs, integrating a vendor API into a product, or using an assistant in their daily work? These are different levels (4, 3 and 2). Say which.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Name the tools and models.&lt;/strong&gt; "PyTorch, vLLM and an internal evaluation harness" is information. "Cutting-edge AI technologies" is not. Specific names are a strong signal.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Describe a typical week in verbs.&lt;/strong&gt; Build, train, evaluate, deploy, monitor, review, sell, support. If three of the five verbs are about AI work, say so. If one is, say that.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Separate must-haves from nice-to-haves.&lt;/strong&gt; Candidates read a long list as a hard requirement. If fine-tuning is a plus, mark it as one.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;State the pay range and the location rules.&lt;/strong&gt; A range, the currency, and the exact remote policy ("remote within the US", not "flexible").&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Say what the role is not.&lt;/strong&gt; "You will not be training foundation models" saves both sides a week.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Check it before you publish
&lt;/h2&gt;

&lt;p&gt;Paste the draft into the AI Level Checker on the Level site. It is a rules-based check that looks for AI tools and skills in the text, it runs in memory, and nothing you paste is stored. Its result can differ by one level from a listing that a model has also reviewed, so treat it as a first read. The useful question is whether the result matches what you meant. If you intended Level 3 and the checker says Level 1, the posting is hiding the work.&lt;/p&gt;

&lt;h2&gt;
  
  
  Common ways honest postings go wrong
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Scenery mentions.&lt;/strong&gt; A company tagline about AI at the top of the page, followed by duties that do not involve it. The scale treats this as Level 1 by definition.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;One-bullet AI.&lt;/strong&gt; A single line out of fifteen that mentions a model. That is a Level 2 job at best.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Title inflation.&lt;/strong&gt; Using "AI" to describe an ordinary analyst or sales role in order to widen the funnel. It widens it with the wrong people.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Silence.&lt;/strong&gt; A role that really involves AI but never says how. A badly written description can understate a role, and the level will reflect that.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why bother
&lt;/h2&gt;

&lt;p&gt;A rated posting lets the candidate know the depth of AI work before they apply, which means fewer mismatched applications and fewer first-call surprises for your team. None of this requires hiding a weaker role. A Level 2 role described accurately attracts people who want a Level 2 role.&lt;/p&gt;

&lt;h2&gt;
  
  
  Method
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Data:&lt;/strong&gt; the AI engineer title scope on Level, 650 live postings, 179 with a published USD salary, read on 16 October 2026. No currency conversion.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Example:&lt;/strong&gt; one Procter &amp;amp; Gamble posting, retrieved with Level's search tool on 16 October 2026.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Limits:&lt;/strong&gt; postings on other job boards for the same title are not counted.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Level's own breakdown is published in its &lt;a href="https://jobsbylevel.com/for-employers/hire-ai-engineer" rel="noopener noreferrer"&gt;guide to hiring an AI engineer&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>jobboard</category>
      <category>ai</category>
      <category>webdev</category>
    </item>
    <item>
      <title>The tools job postings name most in October 2026</title>
      <dc:creator>Level</dc:creator>
      <pubDate>Fri, 16 Oct 2026 12:25:04 +0000</pubDate>
      <link>https://dev.to/jobsbylevel/the-tools-job-postings-name-most-in-october-2026-3dpl</link>
      <guid>https://dev.to/jobsbylevel/the-tools-job-postings-name-most-in-october-2026-3dpl</guid>
      <description>&lt;h1&gt;
  
  
  The tools job postings name most in October 2026: Python, AWS, Excel, and Claude
&lt;/h1&gt;

&lt;p&gt;Every skills article tells you what employers "want". It is more useful to count what they actually write. &lt;a href="https://jobsbylevel.com" rel="noopener noreferrer"&gt;Level&lt;/a&gt; extracts the tools named in each live posting, which makes it possible to rank them. Here is what the ranking looked like on 16 October 2026, what is surprising in it, and how to use it without over-reading it.&lt;/p&gt;

&lt;h2&gt;
  
  
  The top of the list
&lt;/h2&gt;

&lt;p&gt;Across 140,530 live postings, the most frequently named tools were:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Rank&lt;/th&gt;
&lt;th&gt;Tool&lt;/th&gt;
&lt;th&gt;Postings naming it&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;Python&lt;/td&gt;
&lt;td&gt;8,602&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;AWS&lt;/td&gt;
&lt;td&gt;5,409&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;Excel&lt;/td&gt;
&lt;td&gt;3,784&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;SQL&lt;/td&gt;
&lt;td&gt;3,057&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;Kubernetes&lt;/td&gt;
&lt;td&gt;2,722&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;Claude&lt;/td&gt;
&lt;td&gt;2,674&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;C&lt;/td&gt;
&lt;td&gt;2,572&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;Java&lt;/td&gt;
&lt;td&gt;2,500&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;PyTorch&lt;/td&gt;
&lt;td&gt;2,481&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;Salesforce&lt;/td&gt;
&lt;td&gt;2,390&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Further down: Microsoft Office (2,149), Copilot (1,954), OpenAI (1,772), Databricks (1,721), Cursor (1,597) and Docker (1,433). The ranking comes from Level's market statistics for the same day.&lt;/p&gt;

&lt;h2&gt;
  
  
  Three things that stand out
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Excel beats Kubernetes.&lt;/strong&gt; Spreadsheets sit at number three, above container orchestration. The reason is that these counts cover every live posting on the board, and most postings are not AI roles at all. A tool ranking that includes finance, operations and sales roles will look different from one built only from machine learning jobs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;An AI assistant is in the top ten.&lt;/strong&gt; Claude is named in 2,674 postings, ahead of PyTorch (2,481) and Salesforce (2,390). Copilot (1,954), OpenAI (1,772) and Cursor (1,597) follow. Employers increasingly list the assistant a person is expected to work with, not only the platform a model runs on. On the site's tool index the same pattern continues with Claude Code (1,078), LangChain (884), ChatGPT (852) and LangGraph (603).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The same tool appears under several spellings.&lt;/strong&gt; The index lists Microsoft Office (2,112 at the time of that page render) and Ms Office (885) separately, and Excel appears alongside Microsoft Excel and Ms Excel. Tool names come from the posting text, so spelling variants are counted apart. If you are building your own analysis, merge them before you compare.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to use a tool ranking
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Rank by your target role, not the global list.&lt;/strong&gt; Python is number one overall, but a sales operations job and a model training job will not share a skill profile. Filter first, count second.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Separate "must" from "mentioned".&lt;/strong&gt; A count says how many postings name a tool. It does not say whether the tool is a requirement or a nice-to-have, and a posting that lists twenty tools is not asking for twenty things.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Watch the assistant tools as a signal of Level 2.&lt;/strong&gt; A role that names Copilot, Claude or Cursor next to ordinary duties is often an ordinary job that expects AI-assisted work. That is the Level 2 pattern: the requirement comes from the role, not from an AI company.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Look for frameworks to find Level 4.&lt;/strong&gt; PyTorch (2,481 mentions), TensorFlow, JAX and vLLM tend to appear where building or serving models is the work.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Treat counts as weather, not climate.&lt;/strong&gt; Level re-reads employer systems every six hours, so a figure on the day you read it will differ from the one printed here.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  A quick exercise
&lt;/h2&gt;

&lt;p&gt;Take a role you want. Open ten live postings for it and write down every tool they name. Sort the list by frequency. The top five are your baseline. Then check whether any of the five is an AI tool: if two or three are, the role is probably moving toward Level 2 or 3, and your portfolio should show you using them on a real task, not just listing them.&lt;/p&gt;

&lt;h2&gt;
  
  
  Method
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Data:&lt;/strong&gt; counts of live postings that name each tool, from Level's market statistics on 16 October 2026 (140,530 live postings); lower-ranked figures from the public tool index on the same date.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Extraction:&lt;/strong&gt; tools come from the posting text, so spelling variants are counted separately.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Limits:&lt;/strong&gt; a mention is not a requirement, and the counts include every category, not only AI roles.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Level publishes the full, live list on its &lt;a href="https://jobsbylevel.com/tools" rel="noopener noreferrer"&gt;AI tools used in job openings&lt;/a&gt; page.&lt;/p&gt;

</description>
      <category>jobboard</category>
      <category>ai</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Build a weekly AI jobs digest agent in 20 lines of Python, no API key</title>
      <dc:creator>Level</dc:creator>
      <pubDate>Fri, 16 Oct 2026 12:25:03 +0000</pubDate>
      <link>https://dev.to/jobsbylevel/build-a-weekly-ai-jobs-digest-agent-in-20-lines-of-python-no-api-key-2lim</link>
      <guid>https://dev.to/jobsbylevel/build-a-weekly-ai-jobs-digest-agent-in-20-lines-of-python-no-api-key-2lim</guid>
      <description>&lt;h1&gt;
  
  
  Build a weekly AI jobs digest agent in 20 lines of Python, no API key
&lt;/h1&gt;

&lt;p&gt;Most job-search automation breaks on the same two things: scraping, and knowing which postings are worth reading. Level's catalog removes both. It is queryable over a free, read-only REST API and a remote MCP server, and every posting carries an AI score, so the "is this really an AI job" filter is a query parameter instead of a manual task. This tutorial builds a small digest script, shows where an agent fits on top of it, and lists the traps to watch for. Numbers were pulled on 16 October 2026.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 1: one request, filtered by AI level
&lt;/h2&gt;

&lt;p&gt;The REST endpoint is &lt;code&gt;https://jobsbylevel.com/api/v1/jobs&lt;/code&gt;. The parameters that matter for a digest are &lt;code&gt;query&lt;/code&gt;, &lt;code&gt;ai_level_min&lt;/code&gt;, &lt;code&gt;ai_level_max&lt;/code&gt;, &lt;code&gt;remote&lt;/code&gt;, &lt;code&gt;city&lt;/code&gt;, &lt;code&gt;company&lt;/code&gt;, &lt;code&gt;posted_within_hours&lt;/code&gt; (1 to 168), &lt;code&gt;sort=recent&lt;/code&gt; and &lt;code&gt;page&lt;/code&gt;. Results come back 20 per page.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;json&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;urllib&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;parse&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;urllib&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;request&lt;/span&gt;

&lt;span class="n"&gt;BASE&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://jobsbylevel.com/api/v1/jobs&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;fetch&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="n"&gt;params&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;BASE&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;?&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;urllib&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;parse&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;urlencode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;params&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;req&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;urllib&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;request&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Request&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;headers&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;User-Agent&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;weekly-digest/0.1&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;})&lt;/span&gt;
    &lt;span class="k"&gt;with&lt;/span&gt; &lt;span class="n"&gt;urllib&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;request&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;urlopen&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;req&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;timeout&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;30&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;json&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;load&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;fetch&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;query&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;machine learning&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;ai_level_min&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;remote&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
             &lt;span class="n"&gt;posted_within_hours&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;168&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;sort&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;recent&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;total&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt; matching jobs in the last 7 days&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;job&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;items&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;][:&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;]:&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;L&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;job&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;ai_level&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt; (&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;job&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;ai_score&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;) &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;job&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;title&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt; @ &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;job&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;company&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;   &lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;job&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;url&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nf"&gt;split&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;?&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I ran exactly this on 16 October 2026. It reported 110 matching jobs for the previous seven days. The first five were a Block security engineering role (score 65), a Databricks generative AI solutions architect role (70), a Natera Principal AI Engineer role (90), a Fetch staff machine learning engineer role (90) and an NVIDIA foundation model internship (90).&lt;/p&gt;

&lt;p&gt;The first result is the lesson. A "Security Engineer" appeared for a "machine learning" query, because a search with a text query matches the posting text, not only the title. That is why the AI level filter exists: combined with &lt;code&gt;ai_level_min=3&lt;/code&gt;, it keeps only postings where AI is central to the work, but you still want to look at the titles before you trust a keyword.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 2: add the pieces an agent needs
&lt;/h2&gt;

&lt;p&gt;A digest is a loop with three decisions, and each maps to a field you already have:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Is it new?&lt;/strong&gt; Store the &lt;code&gt;id&lt;/code&gt; of each posting you have seen. Skip repeats.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Is it AI-heavy enough?&lt;/strong&gt; Use &lt;code&gt;ai_score&lt;/code&gt; directly. A score of 80 or above is Level 4, so you can set your own cut-off instead of relying on the level label.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Is it worth a human's time?&lt;/strong&gt; Pass the title, company, &lt;code&gt;tools&lt;/code&gt; and pay fields to a language model and ask for a one-line reason to apply or skip. Salary fields (&lt;code&gt;salary_min&lt;/code&gt;, &lt;code&gt;salary_max&lt;/code&gt;, &lt;code&gt;salary_currency&lt;/code&gt;) are present when the employer published them and null otherwise, so handle both.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each result also carries a canonical &lt;code&gt;url&lt;/code&gt; on the Level site. Keep that link when you show results to anyone; it is the one condition the data comes with.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 3: or skip the script and use MCP
&lt;/h2&gt;

&lt;p&gt;If you already work inside Claude, Cursor or another MCP client, you do not need the script. Add the server, which is Streamable HTTP, stateless, read-only and needs no authentication:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;claude mcp add &lt;span class="nt"&gt;--transport&lt;/span&gt; http level-jobs https://jobsbylevel.com/mcp
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The server exposes tools including &lt;code&gt;search_jobs&lt;/code&gt;, &lt;code&gt;latest_ai_jobs&lt;/code&gt;, &lt;code&gt;get_job&lt;/code&gt;, &lt;code&gt;market_stats&lt;/code&gt;, &lt;code&gt;list_companies_by_ai_level&lt;/code&gt; and &lt;code&gt;get_level_definitions&lt;/code&gt;. Ask your assistant for "remote Level 3 or 4 roles posted in the last 48 hours, grouped by company", and it will compose the calls itself.&lt;/p&gt;

&lt;p&gt;A useful sanity check before you build anything is &lt;code&gt;market_stats&lt;/code&gt;. On 16 October 2026 it reported 140,530 live postings, split 116,494 at Level 1, 5,446 at Level 2, 11,769 at Level 3 and 6,821 at Level 4, with a remote share of 17.7%. If your digest returns hundreds of results a week, you now know what fraction of the whole board that is.&lt;/p&gt;

&lt;h2&gt;
  
  
  Traps worth knowing
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Totals are capped with a query.&lt;/strong&gt; A text query makes &lt;code&gt;total&lt;/code&gt; stop at 1,000 and flags it with &lt;code&gt;total_capped&lt;/code&gt;. Without a query the total is exact.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Rate limits are polite, not generous.&lt;/strong&gt; Both interfaces allow about 60 requests per minute per IP address. A weekly job is nowhere near that, but a naive loop over pages can be.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Postings change.&lt;/strong&gt; Level re-reads employer systems every six hours and rescores a posting whose text changes. Do not cache a score for weeks.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The score is about the text.&lt;/strong&gt; If a description is thin, the level is low because the text is thin. Do not read it as a verdict on the job.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Where to go from here
&lt;/h2&gt;

&lt;p&gt;Add &lt;code&gt;city&lt;/code&gt; for a local digest, &lt;code&gt;company&lt;/code&gt; to watch an employer, or &lt;code&gt;ai_level_max=2&lt;/code&gt; if you are looking for roles that use AI tools rather than build them. The parameters compose, and none of them need a signup.&lt;/p&gt;

&lt;p&gt;Everything above, including the endpoint list and the fair-use limits, is documented on &lt;a href="https://jobsbylevel.com/developers" rel="noopener noreferrer"&gt;Level's free MCP server and REST API page&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>jobboard</category>
      <category>ai</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Remote AI jobs: the people building AI are less remote than the people using it</title>
      <dc:creator>Level</dc:creator>
      <pubDate>Wed, 23 Sep 2026 07:38:28 +0000</pubDate>
      <link>https://dev.to/jobsbylevel/remote-ai-jobs-the-people-building-ai-are-less-remote-than-the-people-using-it-26c0</link>
      <guid>https://dev.to/jobsbylevel/remote-ai-jobs-the-people-building-ai-are-less-remote-than-the-people-using-it-26c0</guid>
      <description>&lt;h1&gt;
  
  
  Remote AI jobs: the people building AI are less remote than the people using it
&lt;/h1&gt;

&lt;p&gt;"Remote" is the first filter most candidates tick on an AI job board. It is also the filter that quietly changes which AI jobs you see. We counted remote flags across every live posting on &lt;a href="https://jobsbylevel.com" rel="noopener noreferrer"&gt;Level&lt;/a&gt;, an AI-rated job board, crossed with how central AI is to the work. Numbers as of 23 September 2026.&lt;/p&gt;

&lt;h2&gt;
  
  
  The headline number
&lt;/h2&gt;

&lt;p&gt;Level tracks 46,913 live postings pulled from company applicant tracking systems. 18,037 of them carry a remote flag: 38.4%.&lt;/p&gt;

&lt;p&gt;That average hides the interesting part.&lt;/p&gt;

&lt;h2&gt;
  
  
  Remote share by AI level
&lt;/h2&gt;

&lt;p&gt;Every posting is rated from Level 1 to Level 4 on how central AI is to the job, scored from the posting text alone (&lt;a href="https://jobsbylevel.com/levels" rel="noopener noreferrer"&gt;how the levels work&lt;/a&gt;).&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Level&lt;/th&gt;
&lt;th&gt;Meaning&lt;/th&gt;
&lt;th&gt;Live jobs&lt;/th&gt;
&lt;th&gt;Remote&lt;/th&gt;
&lt;th&gt;Remote share&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;Build AI systems&lt;/td&gt;
&lt;td&gt;3,182&lt;/td&gt;
&lt;td&gt;1,060&lt;/td&gt;
&lt;td&gt;33.3%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;Work with AI&lt;/td&gt;
&lt;td&gt;6,023&lt;/td&gt;
&lt;td&gt;2,554&lt;/td&gt;
&lt;td&gt;42.4%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;Use AI as a tool&lt;/td&gt;
&lt;td&gt;2,807&lt;/td&gt;
&lt;td&gt;1,309&lt;/td&gt;
&lt;td&gt;46.6%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;Work around AI&lt;/td&gt;
&lt;td&gt;30,727&lt;/td&gt;
&lt;td&gt;8,940&lt;/td&gt;
&lt;td&gt;29.1%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;These counts exclude one aggregator, explained below. The pattern holds with or without it.&lt;/p&gt;

&lt;p&gt;Remote peaks in the middle of the scale. Roles that use AI as a tool, or work alongside AI systems, are remote almost half the time. Roles that build AI systems are remote a third of the time, barely more than roles where AI plays no part.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why builders are less remote
&lt;/h2&gt;

&lt;p&gt;A few plausible reasons, none of which the data proves on its own:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Hardware and data access.&lt;/strong&gt; Training and evaluating models often means on-site clusters, labs, vehicles or restricted datasets. The Level 4 list is full of robotics, autonomous driving and model labs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Early-stage teams.&lt;/strong&gt; Many companies hiring AI builders are small and still pick a hub city on purpose.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Middle-of-the-scale roles travel well.&lt;/strong&gt; Product, operations, marketing and support roles that adopt AI tools were already remote-friendly before AI entered the job description.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The aggregator caveat
&lt;/h2&gt;

&lt;p&gt;One source, Jobgether, republishes 4,174 postings and flags every single one of them as remote. Left in, it lifts the Level 4 remote share from 33.3% to 36.1% and Level 1 from 29.1% to 36.1%. It does not change the ranking, but it is a good reminder that a remote flag is only as honest as whoever set it. We report the numbers without it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Checking it yourself
&lt;/h2&gt;

&lt;p&gt;The counts come from Level's public read-only API. No key is required.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="s2"&gt;"https://jobsbylevel.com/api/v1/jobs?ai_level_min=4&amp;amp;ai_level_max=4&amp;amp;remote=1&amp;amp;per_page=1"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The &lt;code&gt;total&lt;/code&gt; field is the count. Swap the level, drop &lt;code&gt;remote=1&lt;/code&gt;, or add &lt;code&gt;company=&lt;/code&gt; to isolate a source. The MCP server answers the same question in one call with its &lt;code&gt;market_stats&lt;/code&gt; tool:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;claude mcp add &lt;span class="nt"&gt;--transport&lt;/span&gt; http level-jobs https://jobsbylevel.com/mcp
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  What to do with this
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;If you want to build AI and need remote&lt;/strong&gt;, expect a smaller pool: roughly one Level 4 role in three. Widen to Level 3 before widening your location.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;If you are hiring AI builders remotely&lt;/strong&gt;, you are competing for a scarcer kind of posting, which is a selling point worth stating plainly.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Re-run before quoting.&lt;/strong&gt; Postings refresh every six hours and a posting whose text changes is scored again.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Method: &lt;a href="https://jobsbylevel.com/method" rel="noopener noreferrer"&gt;jobsbylevel.com/method&lt;/a&gt;. &lt;a href="https://jobsbylevel.com" rel="noopener noreferrer"&gt;Level&lt;/a&gt; is a free, AI-rated job board for people who want to know what the job really is.&lt;/p&gt;

</description>
      <category>jobboard</category>
      <category>ai</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Three questions to ask an AI-rated job board (and the exact queries that answer them)</title>
      <dc:creator>Level</dc:creator>
      <pubDate>Wed, 23 Sep 2026 02:02:12 +0000</pubDate>
      <link>https://dev.to/jobsbylevel/three-questions-to-ask-an-ai-rated-job-board-and-the-exact-queries-that-answer-them-4anf</link>
      <guid>https://dev.to/jobsbylevel/three-questions-to-ask-an-ai-rated-job-board-and-the-exact-queries-that-answer-them-4anf</guid>
      <description>&lt;h1&gt;
  
  
  Three questions to ask an AI-rated job board (and the exact queries that answer them)
&lt;/h1&gt;

&lt;p&gt;Job boards answer "who is hiring" well and "what is the job, really" badly. Every AI job board we published on worked around that with a free read-only interface: &lt;a href="https://jobsbylevel.com" rel="noopener noreferrer"&gt;Level&lt;/a&gt; exposes its catalog through a REST API and an MCP server, no key required. Here are the three questions worth asking first, with the queries and the numbers as of 22 September 2026.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Who is building AI, rather than using it?
&lt;/h2&gt;

&lt;p&gt;The catalog rates every posting from Level 1 to Level 4 on how central AI is to the work, scored from the posting text alone:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Level&lt;/th&gt;
&lt;th&gt;Score&lt;/th&gt;
&lt;th&gt;Meaning&lt;/th&gt;
&lt;th&gt;Live jobs (22 Sept 2026)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;80-100&lt;/td&gt;
&lt;td&gt;Build AI systems&lt;/td&gt;
&lt;td&gt;3,539&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;60-79&lt;/td&gt;
&lt;td&gt;Work with AI&lt;/td&gt;
&lt;td&gt;6,574&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;40-59&lt;/td&gt;
&lt;td&gt;Use AI as a tool&lt;/td&gt;
&lt;td&gt;3,275&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;0-39&lt;/td&gt;
&lt;td&gt;Work around AI&lt;/td&gt;
&lt;td&gt;34,347&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Query the top of the scale:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="s2"&gt;"https://jobsbylevel.com/api/v1/jobs?ai_level_min=4"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The interesting result is the shape, not the list: Level 4 is 3,539 of 47,735 tracked postings — about 7%. If your sourcing strategy assumes every company with "AI" in its pitch is hiring AI builders, this is the correction.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Which companies hire AI builders most consistently?
&lt;/h2&gt;

&lt;p&gt;Sorting companies by the average AI score of their open roles is a better signal than headcount, because it does not reward a company for posting fifty Level 1 roles. Two MCP tools answer this directly: &lt;code&gt;market_stats&lt;/code&gt; for the live distribution by AI level, remote share and top tools, and &lt;code&gt;list_ai_native_companies&lt;/code&gt; for companies ranked by the average AI score of their open roles.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;claude mcp add &lt;span class="nt"&gt;--transport&lt;/span&gt; http level-jobs https://jobsbylevel.com/mcp
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then ask the assistant the question instead of writing the aggregation yourself. On the REST side, &lt;code&gt;/api/v1/jobs&lt;/code&gt; filters by &lt;code&gt;company&lt;/code&gt;, so a single company can be checked without the ranking tool.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Is remote real in AI roles, or is it a filter that hides the work?
&lt;/h2&gt;

&lt;p&gt;Remote flags on job boards are self-reported by the posting. Cross the flag with the AI level to see where remote actually concentrates:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="s2"&gt;"https://jobsbylevel.com/api/v1/jobs?ai_level_min=3&amp;amp;remote=1"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then run the same query without &lt;code&gt;remote=1&lt;/code&gt;, and once more with &lt;code&gt;ai_level_max=2&lt;/code&gt;, and compare the counts. If remote only concentrates at Level 1 and 2, the roles you want are on-site more often than a remote-first filter suggests. The same comparison is available as a single &lt;code&gt;market_stats&lt;/code&gt; call, which reports the remote share directly.&lt;/p&gt;

&lt;h2&gt;
  
  
  Two caveats worth repeating
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Text, not reality.&lt;/strong&gt; The level reflects what the posting says. Where a description avoids AI entirely, the score says AI is absent from the description — which is weaker than saying it is absent from the job.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Counts move.&lt;/strong&gt; Postings are pulled from company applicant tracking systems every six hours, and a posting whose text changes is scored again. Re-run a query before quoting a number.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Keeping the link
&lt;/h2&gt;

&lt;p&gt;Results carry a canonical &lt;code&gt;jobsbylevel.com/jobs/&amp;lt;slug&amp;gt;&lt;/code&gt; URL — keep that link when you show results. Fair use sits around 60 requests per minute per IP, and the endpoints are read-only by design.&lt;/p&gt;

&lt;p&gt;Full method: &lt;a href="https://jobsbylevel.com/method" rel="noopener noreferrer"&gt;jobsbylevel.com/method&lt;/a&gt; · Level definitions: &lt;a href="https://jobsbylevel.com/levels" rel="noopener noreferrer"&gt;jobsbylevel.com/levels&lt;/a&gt; · &lt;a href="https://jobsbylevel.com" rel="noopener noreferrer"&gt;Level&lt;/a&gt; is a free, AI-rated job board for people who want to know what the job really is.&lt;/p&gt;

</description>
      <category>jobboard</category>
      <category>ai</category>
      <category>webdev</category>
    </item>
    <item>
      <title>How to tell if a job posting is really an AI job: a 4-level scale</title>
      <dc:creator>Level</dc:creator>
      <pubDate>Wed, 23 Sep 2026 01:37:50 +0000</pubDate>
      <link>https://dev.to/jobsbylevel/how-to-tell-if-a-job-posting-is-really-an-ai-job-a-4-level-scale-1f1g</link>
      <guid>https://dev.to/jobsbylevel/how-to-tell-if-a-job-posting-is-really-an-ai-job-a-4-level-scale-1f1g</guid>
      <description>&lt;h1&gt;
  
  
  How to tell if a job posting is really an AI job: a 4-level scale
&lt;/h1&gt;

&lt;p&gt;"AI Engineer", "AI Product Manager", "AI Solutions Specialist". Job titles with "AI" in them are multiplying, but the title alone tells you very little about the work. Here is the scale we use at &lt;a href="https://jobsbylevel.com" rel="noopener noreferrer"&gt;Level&lt;/a&gt; to read a posting, with the number of live jobs at each level on 22 September 2026.&lt;/p&gt;

&lt;h2&gt;
  
  
  Level 4: Build AI systems (score 80-100)
&lt;/h2&gt;

&lt;p&gt;Building AI systems is the job itself. Without AI, the role would not exist. Think model training, inference infrastructure, evaluation pipelines, applied research.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;3,539 live jobs on 22 September 2026.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Level 3: Work with AI (score 60-79)
&lt;/h2&gt;

&lt;p&gt;The daily work happens on or around AI systems, without necessarily building the model: integrating LLMs into a product, managing an AI roadmap, running evaluations. Remove AI and the job is hollow.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;6,574 live jobs.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Level 2: Use AI as a tool (score 40-59)
&lt;/h2&gt;

&lt;p&gt;An ordinary role whose duties require AI tools: coding with an assistant, writing or sourcing with one. The job exists without AI, but the posting expects you to use it.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;3,275 live jobs.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Level 1: Work around AI (score 0-39)
&lt;/h2&gt;

&lt;p&gt;The work itself involves no AI, or AI only appears as scenery, such as a company tagline. This is the largest group by far.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;34,347 live jobs, 72% of the 47,735 tracked.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Three questions to ask of any posting
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Does it name specific tools or models?&lt;/strong&gt; Vague mentions of "AI-driven" rarely mean much. Named frameworks, model providers or evaluation tools usually do.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Which skills does it ask for?&lt;/strong&gt; Retrieval pipelines, fine-tuning or prompt evaluation point to Level 3 or 4, even when the title never says "AI".&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;How much of the described work depends on them?&lt;/strong&gt; One bullet out of fifteen is Level 2 at best. Most of the responsibilities is Level 3 or 4.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Method
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Data:&lt;/strong&gt; 47,735 live postings from 481 companies, read from their applicant tracking systems every six hours; counts as of 22 September 2026.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Scoring:&lt;/strong&gt; 0-100 from the posting text only, never the company's marketing. A posting whose text changes is scored again.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Thresholds:&lt;/strong&gt; fixed (80 / 60 / 40), so the share at each level moves with the market.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Limits:&lt;/strong&gt; where a description says nothing about AI, the level says AI is absent from the description, which is weaker than saying it is absent from the job.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Full method and definitions: &lt;a href="https://jobsbylevel.com/method" rel="noopener noreferrer"&gt;jobsbylevel.com/method&lt;/a&gt;&lt;/p&gt;

</description>
      <category>jobboard</category>
      <category>ai</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Only about 1 in 5 job postings at AI-era companies is really an AI job</title>
      <dc:creator>Level</dc:creator>
      <pubDate>Wed, 23 Sep 2026 01:37:40 +0000</pubDate>
      <link>https://dev.to/jobsbylevel/only-about-1-in-5-job-postings-at-ai-era-companies-is-really-an-ai-job-fa6</link>
      <guid>https://dev.to/jobsbylevel/only-about-1-in-5-job-postings-at-ai-era-companies-is-really-an-ai-job-fa6</guid>
      <description>&lt;h1&gt;
  
  
  Only about 1 in 5 job postings at AI-era companies is really an AI job
&lt;/h1&gt;

&lt;p&gt;"AI" is everywhere in hiring right now: in company taglines, in job titles, in the first line of almost every careers page. So we measured how much of the actual work involves AI.&lt;/p&gt;

&lt;p&gt;On 22 September 2026, &lt;a href="https://jobsbylevel.com" rel="noopener noreferrer"&gt;Level&lt;/a&gt; tracked &lt;strong&gt;47,735 live job postings from 481 companies&lt;/strong&gt;. Each one was scored from 0 to 100 on how central AI is to the daily work, then placed on a four-level scale.&lt;/p&gt;

&lt;h2&gt;
  
  
  What we found
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Level&lt;/th&gt;
&lt;th&gt;What it means&lt;/th&gt;
&lt;th&gt;Live jobs&lt;/th&gt;
&lt;th&gt;Share&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Level 4&lt;/td&gt;
&lt;td&gt;Building AI systems is the job&lt;/td&gt;
&lt;td&gt;3,539&lt;/td&gt;
&lt;td&gt;7.4%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Level 3&lt;/td&gt;
&lt;td&gt;The daily work is on or around AI systems&lt;/td&gt;
&lt;td&gt;6,574&lt;/td&gt;
&lt;td&gt;13.8%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Level 2&lt;/td&gt;
&lt;td&gt;An ordinary role that requires AI tools&lt;/td&gt;
&lt;td&gt;3,275&lt;/td&gt;
&lt;td&gt;6.9%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Level 1&lt;/td&gt;
&lt;td&gt;The work itself involves no AI&lt;/td&gt;
&lt;td&gt;34,347&lt;/td&gt;
&lt;td&gt;72.0%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Only &lt;strong&gt;10,113 postings (21.2%)&lt;/strong&gt; reach Level 3 or 4, the jobs where removing AI would leave the role hollow. Nearly three in four postings describe work where AI is absent, or only appears as scenery.&lt;/p&gt;

&lt;p&gt;Among those Level 1 postings, sales (5,823), operations (2,139) and marketing (1,266) are the largest groups. Many of them sit at companies that describe themselves as AI companies.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why it matters if you are job hunting
&lt;/h2&gt;

&lt;p&gt;A company that markets itself as "AI-first" can still be hiring mostly for roles that never touch a model. The reverse is also true: a posting that never says "AI" but asks for retrieval pipelines or evaluation work can be a real AI role.&lt;/p&gt;

&lt;p&gt;If you want to move into AI work, the job title and the company's homepage are weak signals. The posting itself is the better one: which tools it names, which skills it asks for, and how much of the described work depends on them.&lt;/p&gt;

&lt;p&gt;You can browse the four levels and filter by role or remote work on &lt;a href="https://jobsbylevel.com/levels" rel="noopener noreferrer"&gt;jobsbylevel.com/levels&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Method
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Source:&lt;/strong&gt; postings pulled directly from company applicant tracking systems every six hours. Expired postings are removed.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Scoring:&lt;/strong&gt; each posting gets a 0-100 score from the text of the posting only (AI tools named, skills requested, share of the work that depends on them), never from the company's marketing.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Levels:&lt;/strong&gt; fixed thresholds, not percentiles: 80+ is Level 4, 60-79 Level 3, 40-59 Level 2, below 40 Level 1.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Date:&lt;/strong&gt; counts read from the database on 22 September 2026.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Limits:&lt;/strong&gt; the level describes the posting, not the company or the person hired. A poorly written description can understate a role.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Full method: &lt;a href="https://jobsbylevel.com/method" rel="noopener noreferrer"&gt;jobsbylevel.com/method&lt;/a&gt;&lt;/p&gt;

</description>
      <category>jobboard</category>
      <category>ai</category>
      <category>webdev</category>
    </item>
    <item>
      <title>A free MCP server and REST API for AI-rated job listings (no key)</title>
      <dc:creator>Level</dc:creator>
      <pubDate>Wed, 23 Sep 2026 00:35:59 +0000</pubDate>
      <link>https://dev.to/jobsbylevel/a-free-mcp-server-and-rest-api-for-ai-rated-job-listings-no-key-14b5</link>
      <guid>https://dev.to/jobsbylevel/a-free-mcp-server-and-rest-api-for-ai-rated-job-listings-no-key-14b5</guid>
      <description>&lt;h1&gt;
  
  
  A free MCP server and REST API for AI-rated job listings (no key)
&lt;/h1&gt;

&lt;p&gt;If you want an assistant like Claude, ChatGPT or Cursor to answer "which companies are hiring ML engineers remotely right now?", it needs live job data. &lt;a href="https://jobsbylevel.com" rel="noopener noreferrer"&gt;Level&lt;/a&gt; exposes its catalog through a free MCP server and a plain REST API: no key, no authentication, read-only.&lt;/p&gt;

&lt;p&gt;On 22 September 2026 the catalog held &lt;strong&gt;47,735 live jobs from 481 companies&lt;/strong&gt;, each rated from Level 1 to Level 4 on how central AI is to the work.&lt;/p&gt;

&lt;h2&gt;
  
  
  The MCP server
&lt;/h2&gt;

&lt;p&gt;Endpoint: &lt;code&gt;https://jobsbylevel.com/mcp&lt;/code&gt; (Streamable HTTP, stateless).&lt;/p&gt;

&lt;p&gt;Five tools:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;search_jobs&lt;/code&gt;: text query, AI level range, remote, city, company (up to 20 results)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;get_job&lt;/code&gt;: full detail of one listing by id or slug&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;market_stats&lt;/code&gt;: live distribution by AI level, remote share, top tools&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;list_ai_native_companies&lt;/code&gt;: companies ranked by the average AI score of their open roles&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;get_level_definitions&lt;/code&gt;: what each of the four levels means&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Add it to Claude Code:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;claude mcp add &lt;span class="nt"&gt;--transport&lt;/span&gt; http level-jobs https://jobsbylevel.com/mcp
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Or to Claude Desktop / Cursor config:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"mcpServers"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"level-jobs"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"url"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://jobsbylevel.com/mcp"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  The REST API
&lt;/h2&gt;

&lt;p&gt;Plain JSON, open CORS, same fields as the MCP tools.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="s2"&gt;"https://jobsbylevel.com/api/v1/jobs?query=machine%20learning&amp;amp;ai_level_min=3&amp;amp;remote=1"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Query parameters on &lt;code&gt;/api/v1/jobs&lt;/code&gt;: &lt;code&gt;query&lt;/code&gt;, &lt;code&gt;ai_level_min&lt;/code&gt;, &lt;code&gt;ai_level_max&lt;/code&gt;, &lt;code&gt;remote&lt;/code&gt;, &lt;code&gt;city&lt;/code&gt;, &lt;code&gt;company&lt;/code&gt;, &lt;code&gt;page&lt;/code&gt;. Results are capped at 20 per page. Details: &lt;code&gt;/api/v1/jobs/&amp;lt;slug&amp;gt;&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Fair use is about 60 requests per minute per IP. Every result carries a canonical &lt;code&gt;jobsbylevel.com/jobs/&amp;lt;slug&amp;gt;&lt;/code&gt; URL; please keep that link when you show results.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the levels mean
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Level&lt;/th&gt;
&lt;th&gt;Score&lt;/th&gt;
&lt;th&gt;Meaning&lt;/th&gt;
&lt;th&gt;Live jobs (22 Sept 2026)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;80-100&lt;/td&gt;
&lt;td&gt;Build AI systems&lt;/td&gt;
&lt;td&gt;3,539&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;60-79&lt;/td&gt;
&lt;td&gt;Work with AI&lt;/td&gt;
&lt;td&gt;6,574&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;40-59&lt;/td&gt;
&lt;td&gt;Use AI as a tool&lt;/td&gt;
&lt;td&gt;3,275&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;0-39&lt;/td&gt;
&lt;td&gt;Work around AI&lt;/td&gt;
&lt;td&gt;34,347&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Method
&lt;/h2&gt;

&lt;p&gt;Jobs are pulled from company applicant tracking systems every six hours and scored 0-100 from the posting text only. Fixed thresholds map the score to a level. Counts above were read from the database on 22 September 2026.&lt;/p&gt;

&lt;p&gt;Docs: &lt;a href="https://jobsbylevel.com/developers" rel="noopener noreferrer"&gt;jobsbylevel.com/developers&lt;/a&gt; · Method: &lt;a href="https://jobsbylevel.com/method" rel="noopener noreferrer"&gt;jobsbylevel.com/method&lt;/a&gt;&lt;/p&gt;

</description>
      <category>jobboard</category>
      <category>ai</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
