# Indeed Flex Shift Monitor: US & UK Pay Rates and Shift Alerts (`getascraper/indeed-flex-shift-monitor`) Actor

Pull live shift listings from Indeed Flex US and UK with real hourly pay ranges (min, max, currency, unit), role, sector, city, employment type, and shift pattern. Get JSON or CSV output, filter by role/sector/city, and turn on monitor mode for new-shift alerts. $0.00088/listing.

- **URL**: https://apify.com/getascraper/indeed-flex-shift-monitor.md
- **Developed by:** [GetAScraper](https://apify.com/getascraper) (community)
- **Categories:** Jobs, Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.66 / 1,000 shift listings

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## 💵 Indeed Flex Shift Monitor: Pay Rates & Shift Alerts

<table width="100%" style="table-layout:fixed;border-collapse:collapse">
<tr>
<td colspan="4" style="padding:14px 18px;background:#EAF1FB;border-top:3px solid #1D4ED8;border-left:1px solid #D6D3D1;border-right:1px solid #D6D3D1;border-radius:8px 8px 0 0">
<span style="font-size:16px;font-weight:700;color:#1C1917">Part of the Jobs &amp; Wage Monitor family.</span> <span style="font-size:15px;color:#57534E">Four Actors reading real pay, vacancies, and reviews across the US and UK job market, each with its own built-in change monitor.</span>
</td>
</tr>
<tr>
<td colspan="4" style="padding:10px 14px;background:#1D4ED8;border-left:1px solid #D6D3D1;border-right:1px solid #D6D3D1">
<span style="color:#FFFFFF;font-size:14px;font-weight:700;letter-spacing:0.5px">JOBS &amp; WAGE MONITOR SUITE</span>
<span style="color:#DCE8FB;font-size:13px">&nbsp;&nbsp;&bull;&nbsp;&nbsp;Real pay, vacancies, and reviews with built-in change alerts</span>
</td>
</tr>
<tr>
<td style="padding:10px 12px;border-left:1px solid #D6D3D1;border-bottom:1px solid #D6D3D1;vertical-align:top;width:25%;background:#EAF1FB;border-radius:0 0 0 8px">
<span style="overflow-wrap:break-word;word-break:break-word"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/jNDbFabbVxMhnQNb4-actor-vzoJjgEGk0pnbxQqI-WMbLq8w0Ij-0x0_%282%29.png" width="20" height="20" style="vertical-align:middle;border-radius:4px">&nbsp;<a href="https://apify.com/getascraper/indeed-flex-shift-monitor" style="color:#1D4ED8;text-decoration:none;font-weight:700;font-size:13px">Indeed Flex Shift Monitor</a></span><br>
<span style="color:#1D4ED8;font-size:11px;font-weight:700">&#10148; You are here</span>
</td>
<td style="padding:10px 12px;border-left:1px solid #D6D3D1;border-bottom:1px solid #D6D3D1;vertical-align:top;width:25%;background:#FFFFFF">
<span style="overflow-wrap:break-word;word-break:break-word"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/jNDbFabbVxMhnQNb4-actor-lrS5BCtM0j31WTTUo-alZfLv1Ekq-voluntary_action_sheffield_logo.jpeg" width="20" height="20" style="vertical-align:middle;border-radius:4px">&nbsp;<a href="https://apify.com/getascraper/vas-sheffield-jobs-scraper" style="color:#1C1917;text-decoration:none;font-weight:700;font-size:13px">VAS Sheffield Jobs Scraper</a></span><br>
<span style="color:#57534E;font-size:11px">UK charity vacancies + monitor</span>
</td>
<td style="padding:10px 12px;border-left:1px solid #D6D3D1;border-bottom:1px solid #D6D3D1;vertical-align:top;width:25%;background:#FFFFFF">
<span style="overflow-wrap:break-word;word-break:break-word"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/jNDbFabbVxMhnQNb4-actor-eYGGI6h0ZuQ2gw9ZU-vgMEJgs8hs-1656971601590.jpeg" width="20" height="20" style="vertical-align:middle;border-radius:4px">&nbsp;<a href="https://apify.com/getascraper/careerbliss-reviews-scraper" style="color:#1C1917;text-decoration:none;font-weight:700;font-size:13px">CareerBliss Reviews Scraper</a></span><br>
<span style="color:#57534E;font-size:11px">US salary reviews + monitor</span>
</td>
<td style="padding:10px 12px;border-left:1px solid #D6D3D1;border-right:1px solid #D6D3D1;border-bottom:1px solid #D6D3D1;vertical-align:top;width:25%;background:#FFFFFF;border-radius:0 0 8px 0">
<span style="overflow-wrap:break-word;word-break:break-word"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/jNDbFabbVxMhnQNb4-actor-WLUkB8Kw5ddoyDNm4-kYQrIYI7Vm-team_handshake_logo.jpeg" width="20" height="20" style="vertical-align:middle;border-radius:4px">&nbsp;<a href="https://apify.com/getascraper/handshake-jobs-scraper" style="color:#1C1917;text-decoration:none;font-weight:700;font-size:13px">Handshake Jobs Scraper</a></span><br>
<span style="color:#57534E;font-size:11px">US jobs &amp; internships</span>
</td>
</tr>
</table>

<table width="100%"><tr><td style="padding:24px 28px;background:#EAF1FB;border:1px solid #C9DCF5;border-top:4px solid #1D4ED8;border-radius:12px"><span style="font-size:23px;font-weight:800;color:#1C1917;line-height:1.3">Real hourly pay for every Indeed Flex shift, US and UK</span><br><span style="font-size:15px;color:#57534E;line-height:1.6">See the actual pay range, role, city, and shift details behind each listing, then get alerted the moment a new one is posted.</span></td></tr></table>

<table width="100%"><tr><td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #C9DCF5;border-radius:10px 0 0 10px;vertical-align:top"><span style="font-size:15px;font-weight:800;color:#1D4ED8">💰 Real pay ranges</span><br><span style="font-size:12px;color:#57534E">Min, max, currency, and per-hour or per-year, straight from the listing, never estimated.</span></td><td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #C9DCF5;border-left:none;vertical-align:top"><span style="font-size:15px;font-weight:800;color:#1D4ED8">🌍 US and UK, one run</span><br><span style="font-size:12px;color:#57534E">Combine both country sites into one dataset, or read just the one you need.</span></td><td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #C9DCF5;border-left:none;vertical-align:top"><span style="font-size:15px;font-weight:800;color:#1D4ED8">🔔 New-shift alerts</span><br><span style="font-size:12px;color:#57534E">Monitor mode returns only listings that are new or changed since your last run.</span></td><td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #C9DCF5;border-left:none;border-radius:0 10px 10px 0;vertical-align:top"><span style="font-size:15px;font-weight:800;color:#1D4ED8">🧾 Full listing detail</span><br><span style="font-size:12px;color:#57534E">Role, sector, city, employment type, shift pattern, and direct-apply status.</span></td></tr></table>

Indeed Flex Shift Monitor reads live shift listings straight from [Indeed Flex](https://indeedflex.com), the shift-based temp staffing marketplace, and returns the pay data most job feeds leave out: a real dollar or pound range for every listing, not just a title and a link. Run it once for a snapshot of what's open right now, or on a schedule to catch new shifts and pay changes as they happen.

### 🎯 What does this Actor do?

**Staffing agencies and recruiters** use it to check what Indeed Flex is actually paying for a role in a given city before setting their own rates. **Wage researchers and labor market analysts** use it to track real hourly pay by role, sector, and city without manually checking listings. **Job board builders** use it as a clean, structured feed of Indeed Flex's own shift postings. **Job seekers and side-hustle trackers** use monitor mode to get notified the moment a well-paid shift opens near them, instead of refreshing the site by hand.

This is a focused, live snapshot: Indeed Flex runs hundreds of active listings across both countries at any given time, and fully refreshes them once a day. This Actor is built around that reality, not marketed as a massive historical archive it isn't.

<table width="100%"><tr>
<td style="padding:12px 18px;background:#EAF1FB;border-left:4px solid #1D4ED8">
<span style="font-size:15px;color:#1C1917">&#9889; <b>Real pay, not a placeholder.</b> Every field comes straight from the listing itself: no login required, and it's ready to schedule for daily alerts.</span>
</td>
</tr></table>

### 🚀 How to use it

<table width="100%"><tr><td style="padding:16px 14px;width:33%;background:#EAF1FB;border:1px solid #C9DCF5;border-radius:10px 0 0 10px;vertical-align:top"><span style="font-size:12px;font-weight:800;color:#1D4ED8;letter-spacing:1px">STEP 1</span><br><span style="font-size:14px;font-weight:700;color:#1C1917">Pick a country and any filters</span><br><span style="font-size:12px;color:#57534E">The defaults already work if you just want to try it.</span></td><td style="padding:16px 14px;width:33%;background:#EAF1FB;border:1px solid #C9DCF5;border-left:none;vertical-align:top"><span style="font-size:12px;font-weight:800;color:#1D4ED8;letter-spacing:1px">STEP 2</span><br><span style="font-size:14px;font-weight:700;color:#1C1917">Run it once, or schedule it</span><br><span style="font-size:12px;color:#57534E">Turn on monitor mode to catch new and changed shifts over time.</span></td><td style="padding:16px 14px;width:33%;background:#EAF1FB;border:1px solid #C9DCF5;border-left:none;border-radius:0 10px 10px 0;vertical-align:top"><span style="font-size:12px;font-weight:800;color:#1D4ED8;letter-spacing:1px">STEP 3</span><br><span style="font-size:14px;font-weight:700;color:#1C1917">Get real pay, ready to use</span><br><span style="font-size:12px;color:#57534E">Every listing arrives with its actual pay range already attached.</span></td></tr></table>

### 🧩 Input

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| Countries | array of enum | No | Which Indeed Flex site(s) to read: United States, United Kingdom, or both. |
| Job roles | array of enum | No | Only return listings for these roles, for example Warehouse Operative or Barista. |
| Sectors | array of enum | No | Only return listings in these business sectors, for example Hospitality or Industrial. |
| City | string | No | Only return listings in this city. |
| Fetch structured pay, address, and employment details | boolean | No | Fetch each listing's full pay range, address, and employment type. Turn off for a faster, lighter run with just title, role, and location. |
| Max listings | integer | No | Maximum number of listings to return, combined across selected countries. |
| Incremental monitor mode | boolean | No | Only return listings that are new or changed since your last run with the same monitor state name. |
| Monitor state name | string | No | Name for this run's saved state, used only when monitor mode is on. |

### 📤 Output

```json
{
  "title": "Assembler",
  "role": "Assembler",
  "sector": "Industrial",
  "city": "Dallas",
  "shiftPattern": "Monday - Friday, 7am - 3pm",
  "datePosted": "2026-09-08T05:01:48",
  "country": "US",
  "sourceUrl": "https://indeedflex.com/job-listing/assembler-dallas/",
  "scrapedAt": "2026-09-08T07:44:16.991Z",
  "region": "TX",
  "postalCode": "75212",
  "payMin": 18,
  "payMax": 18,
  "payCurrency": "USD",
  "payUnit": "HOUR",
  "employmentType": "PART_TIME",
  "directApply": true
}
```

You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.

### 📊 Data table

| Field | Type | Description |
| --- | --- | --- |
| `title` | string | The shift listing's title. |
| `role` | string | Job role. |
| `sector` | string | Business sector. |
| `city` | string | City. |
| `region` | string | State or region, when the listing states one. |
| `postalCode` | string | Postal or ZIP code, when the listing states one. |
| `payMin` / `payMax` | number | Pay range, when the listing states one. |
| `payCurrency` | string | Currency of the pay range (USD or GBP). |
| `payUnit` | string | Pay rate unit, for example HOUR. |
| `employmentType` | string | Employment type as stated by the listing. |
| `shiftPattern` | string | Shift days and hours, when the listing states them clearly. |
| `datePosted` | string | Date the listing was posted or last refreshed. |
| `directApply` | boolean | Whether the listing accepts direct applications. |
| `country` | string | Which Indeed Flex site this listing came from, US or UK. |
| `sourceUrl` | string | Link to the original listing. |
| `changeType` | string | NEW, UPDATED, or CURRENT, present only in incremental monitor mode. |

### 💰 Pricing

This Actor uses pay per event pricing. Empty runs cost nothing, and there are no subscriptions.

### ⭐ Enjoying Indeed Flex Shift Monitor?

<table width="100%" style="display:table;width:100%"><tr><td style="padding:20px 24px 14px;background:#EAF1FB;border:1px solid #C9DCF5;border-left:5px solid #1D4ED8;border-radius:10px 10px 0 0"><span style="font-size:20px;letter-spacing:4px">⭐ ⭐ ⭐ ⭐ ⭐</span><br><span style="font-size:17px;font-weight:800;color:#1C1917">If this saved you from checking pay rates by hand, that's worth a rating.</span><br><span style="font-size:14px;color:#57534E">Your feedback tells us which roles, cities, and countries to add next.</span></td></tr><tr><td style="padding:0;background:#1D4ED8;border:1px solid #C9DCF5;border-top:none;border-radius:0 0 10px 10px;text-align:center"><a href="https://apify.com/getascraper/indeed-flex-shift-monitor/reviews" style="display:block;padding:13px 16px;color:#FFFFFF;text-decoration:none;font-weight:800;font-size:15px;letter-spacing:0.3px">★&nbsp;&nbsp;Rate this Actor on Apify</a></td></tr></table>

### ❓ FAQ

#### Does this show the actual pay rate, or just a job title?

The actual pay rate. Each listing includes a real minimum and maximum pay range with its currency and unit, straight from Indeed Flex's own listing data, when the listing states one.

#### How many listings are there at once?

Hundreds of active listings across the US and UK combined, at any given time. Indeed Flex fully refreshes its listings roughly once a day, so this reflects what's open right now, not a growing historical archive.

#### Can I track just new or changed shifts on a schedule?

Yes. Turn on incremental monitor mode and pair it with an Apify schedule. Each run only returns a listing when it's new or when its pay, role, or shift details have actually changed since your last run with that monitor state name.

#### Do I need my own proxy?

No. This Actor reads Indeed Flex's own public listing data directly, no proxy or login required.

### 🔗 Other actors

- [VAS Sheffield Jobs Scraper: Charity Vacancies & Monitor](https://apify.com/getascraper/vas-sheffield-jobs-scraper) ↗ - Scrape Sheffield charity job vacancies with a change monitor.
- [Freshersworld Jobs Scraper: Fresher & Entry Jobs](https://apify.com/getascraper/freshersworld-jobs-scraper) ↗ - Scrape entry-level and fresher job listings from India.
- [Handshake Jobs Scraper: Job & Internship Listings](https://apify.com/getascraper/handshake-jobs-scraper) ↗ - Scrape job and internship listings from Handshake.
- [CutShort Jobs Scraper: India Tech Salaries](https://apify.com/getascraper/cutshort-scraper) ↗ - Scrape India tech job listings with salary data.
- [CareerBliss Reviews Scraper: Ratings, Salary & Monitor](https://apify.com/getascraper/careerbliss-reviews-scraper) ↗ - Scrape employee reviews and salary data with a change monitor.

# Actor input Schema

## `countries` (type: `array`):

Which Indeed Flex site(s) to read shift listings from. US reads indeedflex.com, UK reads indeedflex.co.uk. Leave both selected to combine listings from both countries into one dataset.

## `jobRole` (type: `array`):

Only return listings for these job roles, for example Warehouse Operative or Barista. Available roles differ by country and are matched by name at runtime against each site's own role list. Leave empty to return every role.

## `sector` (type: `array`):

Only return listings in these business sectors. Sector names are shared across both countries, though the underlying site categories differ slightly (Clerical and Internal are US-only, Healthcare and Business Support are UK-only). Leave empty to return every sector.

## `city` (type: `string`):

Only return listings in this city, matched case-insensitively against the city name shown on the site, for example Dallas or Edinburgh. Leave empty to return listings from every city.

## `includeJsonLdDetails` (type: `boolean`):

Fetch each listing's own detail page and read its structured JobPosting data for a real pay range (min, max, currency, per hour or per year), full address (city, region, postal code), employment type, and whether the employer accepts direct applications. This is data no listings feed exposes on its own. Turn off to skip the extra per-listing fetch and return only title, role, sector, city, date posted, and the listing URL, which is faster for a quick census of what is posted.

## `maxItems` (type: `integer`):

Maximum number of shift listings to return in this run, combined across all selected countries.

## `incrementalMonitorMode` (type: `boolean`):

Only return listings that are new or have changed pay, role, or shift details since your last run with the same monitor state name. Pair with an Apify schedule to get alerted as new shifts are posted. Indeed Flex fully refreshes its listings once a day, so a new appearance reliably means the shift was newly posted or reposted since your last run.

## `monitorStateName` (type: `string`):

Name for this run's incremental state, used only when incremental monitor mode is on. Use different names to track separate filter configurations independently.

## Actor input object example

```json
{
  "countries": [
    "US",
    "UK"
  ],
  "jobRole": [],
  "sector": [],
  "city": "",
  "includeJsonLdDetails": true,
  "maxItems": 25,
  "incrementalMonitorMode": false,
  "monitorStateName": "default"
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "countries": [
        "US",
        "UK"
    ],
    "jobRole": [],
    "sector": [],
    "city": "",
    "includeJsonLdDetails": true,
    "maxItems": 25,
    "incrementalMonitorMode": false,
    "monitorStateName": "default"
};

// Run the Actor and wait for it to finish
const run = await client.actor("getascraper/indeed-flex-shift-monitor").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "countries": [
        "US",
        "UK",
    ],
    "jobRole": [],
    "sector": [],
    "city": "",
    "includeJsonLdDetails": True,
    "maxItems": 25,
    "incrementalMonitorMode": False,
    "monitorStateName": "default",
}

# Run the Actor and wait for it to finish
run = client.actor("getascraper/indeed-flex-shift-monitor").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "countries": [
    "US",
    "UK"
  ],
  "jobRole": [],
  "sector": [],
  "city": "",
  "includeJsonLdDetails": true,
  "maxItems": 25,
  "incrementalMonitorMode": false,
  "monitorStateName": "default"
}' |
apify call getascraper/indeed-flex-shift-monitor --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,getascraper/indeed-flex-shift-monitor"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/vzoJjgEGk0pnbxQqI/builds/TazNXnZIdowCeoW1I/openapi.json
