<?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: CleanFeed Data</title>
    <description>The latest articles on DEV Community by CleanFeed Data (@cleanfeeddata).</description>
    <link>https://dev.to/cleanfeeddata</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%2F4219131%2F3437bf1a-caeb-47db-9c8b-a0d38e6a5484.png</url>
      <title>DEV Community: CleanFeed Data</title>
      <link>https://dev.to/cleanfeeddata</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/cleanfeeddata"/>
    <language>en</language>
    <item>
      <title>How to Track Hiring at a List of Startups (Greenhouse, Lever &amp; Ashby) Without Writing a Scraper</title>
      <dc:creator>CleanFeed Data</dc:creator>
      <pubDate>Sat, 31 Oct 2026 14:06:20 +0000</pubDate>
      <link>https://dev.to/cleanfeeddata/how-to-track-hiring-at-a-list-of-startups-greenhouse-lever-ashby-without-writing-a-scraper-16kg</link>
      <guid>https://dev.to/cleanfeeddata/how-to-track-hiring-at-a-list-of-startups-greenhouse-lever-ashby-without-writing-a-scraper-16kg</guid>
      <description>&lt;h1&gt;
  
  
  How to track hiring at a list of startups (without writing a scraper)
&lt;/h1&gt;

&lt;p&gt;Hiring is one of the most honest signals a company gives off. A startup that suddenly opens six data-center engineering roles is building something big. A competitor that posts its first "Head of Sales, EMEA" is about to go after your market. A portfolio company that quietly stops posting may be tightening its belt.&lt;/p&gt;

&lt;p&gt;The data is public: every company publishes its open roles on its careers page. The problem is that careers pages are all different. Under the hood most startups use an &lt;strong&gt;applicant tracking system (ATS)&lt;/strong&gt; such as Greenhouse, Lever, Ashby, Workable or SmartRecruiters, and each one has its own job-board format.&lt;/p&gt;

&lt;p&gt;In this tutorial we'll turn a plain list of eight companies into a single, clean table of open jobs. Then we'll filter it down to recent engineering roles and set it up to send &lt;strong&gt;only new postings&lt;/strong&gt; every morning. No code is required, and everything below comes from a real run on October 31, 2026.&lt;/p&gt;

&lt;h2&gt;
  
  
  What you'll need
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;A free &lt;a href="https://apify.com" rel="noopener noreferrer"&gt;Apify&lt;/a&gt; account. The free plan includes $5 of usage every month.&lt;/li&gt;
&lt;li&gt;The &lt;a href="https://apify.com/cleanfeed-data/multi-ats-jobs" rel="noopener noreferrer"&gt;Greenhouse, Lever &amp;amp; Ashby Jobs Scraper&lt;/a&gt; Actor, which reads each ATS's &lt;strong&gt;official public job-board API&lt;/strong&gt;. It doesn't log in or scrape HTML.&lt;/li&gt;
&lt;li&gt;A list of companies you care about.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Step 1: Write down your company list
&lt;/h2&gt;

&lt;p&gt;You don't need to know which ATS a company uses. The Actor accepts any of these:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;a plain name: &lt;code&gt;Hugging Face&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;a careers-page URL: &lt;code&gt;https://www.figma.com/careers/&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;a job-board link: &lt;code&gt;https://jobs.lever.co/spotify&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;an explicit hint, which is the fastest option: &lt;code&gt;greenhouse:anthropic&lt;/code&gt;, &lt;code&gt;ashby:ramp&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The hint is usually visible in the link when you click any job on a careers page. For example, &lt;code&gt;jobs.ashbyhq.com/notion/...&lt;/code&gt; means &lt;code&gt;ashby:notion&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;For this tutorial I used eight well-known startups:&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;"companies"&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="s2"&gt;"ashby:ramp"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="s2"&gt;"ashby:linear"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="s2"&gt;"ashby:notion"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="s2"&gt;"greenhouse:anthropic"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="s2"&gt;"greenhouse:figma"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="s2"&gt;"greenhouse:discord"&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://jobs.lever.co/spotify"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="s2"&gt;"Hugging Face"&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;"keywords"&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="s2"&gt;"engineer"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"postedWithinDays"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;30&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"includeDescription"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"maxResults"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;300&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"stateStoreName"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"tutorial-startup-hiring"&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;p&gt;What the filters do:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;keywords: engineer&lt;/strong&gt; keeps jobs whose title contains "engineer" (case-insensitive).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;postedWithinDays: 30&lt;/strong&gt; keeps only roles first published in the last 30 days.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;includeDescription: false&lt;/strong&gt; skips the long job descriptions, which keeps the output small and readable.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;maxResults: 300&lt;/strong&gt; is a safety cap on both size and cost.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;stateStoreName&lt;/strong&gt; is the "memory" the Actor uses to know which jobs it has already shown you. We'll use it in step 4.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Step 2: Run it
&lt;/h2&gt;

&lt;p&gt;Open the Actor, paste the input above into the JSON editor (or fill in the form fields), and click &lt;strong&gt;Start&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The run took &lt;strong&gt;about 3 seconds&lt;/strong&gt;. Its run summary shows what happened behind the scenes:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Company&lt;/th&gt;
&lt;th&gt;Input&lt;/th&gt;
&lt;th&gt;Detected ATS&lt;/th&gt;
&lt;th&gt;How it was found&lt;/th&gt;
&lt;th&gt;Open jobs&lt;/th&gt;
&lt;th&gt;Matching jobs&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Anthropic&lt;/td&gt;
&lt;td&gt;&lt;code&gt;greenhouse:anthropic&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Greenhouse&lt;/td&gt;
&lt;td&gt;hint&lt;/td&gt;
&lt;td&gt;675&lt;/td&gt;
&lt;td&gt;51&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ramp&lt;/td&gt;
&lt;td&gt;&lt;code&gt;ashby:ramp&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Ashby&lt;/td&gt;
&lt;td&gt;hint&lt;/td&gt;
&lt;td&gt;171&lt;/td&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Notion&lt;/td&gt;
&lt;td&gt;&lt;code&gt;ashby:notion&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Ashby&lt;/td&gt;
&lt;td&gt;hint&lt;/td&gt;
&lt;td&gt;148&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Figma&lt;/td&gt;
&lt;td&gt;&lt;code&gt;greenhouse:figma&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Greenhouse&lt;/td&gt;
&lt;td&gt;hint&lt;/td&gt;
&lt;td&gt;140&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Spotify&lt;/td&gt;
&lt;td&gt;&lt;code&gt;jobs.lever.co/spotify&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Lever&lt;/td&gt;
&lt;td&gt;URL&lt;/td&gt;
&lt;td&gt;89&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Discord&lt;/td&gt;
&lt;td&gt;&lt;code&gt;greenhouse:discord&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Greenhouse&lt;/td&gt;
&lt;td&gt;hint&lt;/td&gt;
&lt;td&gt;41&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Linear&lt;/td&gt;
&lt;td&gt;&lt;code&gt;ashby:linear&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Ashby&lt;/td&gt;
&lt;td&gt;hint&lt;/td&gt;
&lt;td&gt;31&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Hugging Face&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Hugging Face&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Workable&lt;/td&gt;
&lt;td&gt;API probe&lt;/td&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;That's &lt;strong&gt;1,301 open jobs&lt;/strong&gt; across eight companies, narrowed to &lt;strong&gt;88 engineering roles posted in the last 30 days&lt;/strong&gt;. Note that "Hugging Face" was typed as a plain name and the Actor still found the right board on Workable by itself.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 3: Read the results
&lt;/h2&gt;

&lt;p&gt;Each job is one row with the same fields, whichever ATS it came from. Here's a real record (Notion, via Ashby):&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;"company"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Notion"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"ats"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"ashby"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"title"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Software Engineer, Developer Platform"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"department"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Engineering"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"location"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"San Francisco, California"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"locations"&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="s2"&gt;"San Francisco, California"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"New York, New York"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"workplaceType"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"hybrid"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"employmentType"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Full-Time"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"postedAt"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"2026-10-19T17:28:06.956Z"&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://jobs.ashbyhq.com/notion/8c0bf773-e536-45c9-9a6c-8ee478148cc8"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"salary"&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;"min"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;179000&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"max"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;200000&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"currency"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"USD"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"interval"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"year"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"text"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"$179,000 â€“ $200,000 per year"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"source"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"description"&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;"isNew"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&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;p&gt;And a few rows from the same run, as they look in the table view:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Company&lt;/th&gt;
&lt;th&gt;Title&lt;/th&gt;
&lt;th&gt;Location&lt;/th&gt;
&lt;th&gt;Salary&lt;/th&gt;
&lt;th&gt;Posted&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Anthropic&lt;/td&gt;
&lt;td&gt;Applied AI Demo Engineer&lt;/td&gt;
&lt;td&gt;San Francisco, CA | New York City, NY&lt;/td&gt;
&lt;td&gt;240,000 - 315,000 USD&lt;/td&gt;
&lt;td&gt;Oct 19&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Anthropic&lt;/td&gt;
&lt;td&gt;Data Center Electrical Engineer â€“ Design&lt;/td&gt;
&lt;td&gt;Remote-Friendly, United States&lt;/td&gt;
&lt;td&gt;320,000 - 405,000 USD&lt;/td&gt;
&lt;td&gt;Oct 30&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Notion&lt;/td&gt;
&lt;td&gt;Data Engineer, Product&lt;/td&gt;
&lt;td&gt;San Francisco, California&lt;/td&gt;
&lt;td&gt;$179,000 - $200,000 per year&lt;/td&gt;
&lt;td&gt;Oct 28&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Notion&lt;/td&gt;
&lt;td&gt;Growth Engineer, Startups &amp;amp; SMBs&lt;/td&gt;
&lt;td&gt;New York, New York&lt;/td&gt;
&lt;td&gt;$150,000 - $180,000 per year&lt;/td&gt;
&lt;td&gt;Oct 21&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Linear&lt;/td&gt;
&lt;td&gt;Senior / Staff Security Engineer&lt;/td&gt;
&lt;td&gt;North America&lt;/td&gt;
&lt;td&gt;(not published)&lt;/td&gt;
&lt;td&gt;Oct 15&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Spotify&lt;/td&gt;
&lt;td&gt;AV Engineer - Platform&lt;/td&gt;
&lt;td&gt;Stockholm&lt;/td&gt;
&lt;td&gt;(not published)&lt;/td&gt;
&lt;td&gt;Oct 9&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;A few things jump out from this small sample:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Salary transparency is high:&lt;/strong&gt; 75 of the 88 roles (85%) came with a salary range, either published as structured data by the ATS or parsed from the job text. The &lt;code&gt;salary.source&lt;/code&gt; field tells you which.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Anthropic is hiring heavily for infrastructure.&lt;/strong&gt; Several of its newest engineering roles are about data centers, power generation and substations, which says more about its plans than any press release.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Remote is the exception:&lt;/strong&gt; only 28 of the 88 roles are flagged as remote-friendly.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;From the &lt;strong&gt;Output&lt;/strong&gt; tab you can export everything to &lt;strong&gt;CSV, Excel or JSON&lt;/strong&gt;, or open it in Google Sheets.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 4: Get only the new jobs every morning
&lt;/h2&gt;

&lt;p&gt;A one-time snapshot is nice, but the real value comes from tracking change. Turn on &lt;strong&gt;Only new jobs since last run&lt;/strong&gt; (&lt;code&gt;"onlyNew": true&lt;/code&gt;) and keep the same &lt;code&gt;stateStoreName&lt;/code&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The first run is the baseline: it returns all matching jobs and remembers their IDs.&lt;/li&gt;
&lt;li&gt;Every later run returns &lt;strong&gt;only jobs it hasn't seen before&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To check it, I ran the exact same input again a minute later with &lt;code&gt;onlyNew: true&lt;/code&gt;. It finished in 4 seconds and returned &lt;strong&gt;0 jobs&lt;/strong&gt;, which is correct, because nothing new had been posted in that minute. Tomorrow's run will return just the roles posted overnight.&lt;/p&gt;

&lt;p&gt;To automate it:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Click &lt;strong&gt;Save as a new task&lt;/strong&gt; so your company list and filters are stored.&lt;/li&gt;
&lt;li&gt;Open &lt;strong&gt;Schedules&lt;/strong&gt;, then &lt;strong&gt;Create new&lt;/strong&gt;, choose "Daily at 8:00", and attach the task.&lt;/li&gt;
&lt;li&gt;Optionally add an integration so new jobs are posted to &lt;strong&gt;Slack&lt;/strong&gt;, appended to &lt;strong&gt;Google Sheets&lt;/strong&gt;, or sent to &lt;strong&gt;Zapier, Make or n8n&lt;/strong&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;You now have a private hiring tracker that costs a few cents a day.&lt;/p&gt;

&lt;h2&gt;
  
  
  What does it cost?
&lt;/h2&gt;

&lt;p&gt;The Actor charges per job returned: &lt;strong&gt;$0.003 per job&lt;/strong&gt; ($3 per 1,000), plus $0.005 per run. Filters are applied before you pay, so you're only charged for jobs that pass them.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;This tutorial's first run: 88 jobs, about &lt;strong&gt;$0.27&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;A daily "only new jobs" monitor across 50 companies that sees about 30 new matching jobs a day costs about &lt;strong&gt;$0.10 a day&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Apify's free plan ($5 a month) covers about 1,600 jobs.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Ideas for what to do with it
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Sales and recruiting:&lt;/strong&gt; a company opening new engineering or sales roles is a good moment to reach out.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Investors:&lt;/strong&gt; watch hiring across a portfolio or a watchlist of competitors.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Job seekers:&lt;/strong&gt; get a morning digest of new roles at your 30 dream companies, filtered by &lt;code&gt;locations&lt;/code&gt; or &lt;code&gt;remoteOnly&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Niche job boards:&lt;/strong&gt; feed "remote AI jobs at Series Aâ€“C startups" from hundreds of boards, refreshed daily.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  A note on data sources
&lt;/h2&gt;

&lt;p&gt;Everything here comes from the public job-board APIs that Greenhouse, Lever, Ashby, Workable, SmartRecruiters, Teamtailor, Recruitee and Personio provide so jobs can be shown on career sites and job boards. Nothing is behind a login and no candidate data is involved. If you republish postings, check each company's terms first.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Try it with your own company list: &lt;a href="https://apify.com/cleanfeed-data/multi-ats-jobs" rel="noopener noreferrer"&gt;Greenhouse, Lever &amp;amp; Ashby Jobs Scraper on Apify&lt;/a&gt;. The same publisher also has an &lt;a href="https://apify.com/cleanfeed-data/app-store-reviews" rel="noopener noreferrer"&gt;App Store Reviews Scraper&lt;/a&gt; and a &lt;a href="https://apify.com/cleanfeed-data/bluesky-data" rel="noopener noreferrer"&gt;Bluesky Scraper&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Disclosure: I built the Jobs Scraper.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>jobs</category>
      <category>data</category>
      <category>automation</category>
      <category>nocode</category>
    </item>
  </channel>
</rss>
