# FlexJobs Scraper (`parseforge/flexjobs-scraper`) Actor

Scrapes FlexJobs job listings by keyword, category, remote level, schedule, or location. Returns each job as a flat row with title, company, location, and remote details.

- **URL**: https://apify.com/parseforge/flexjobs-scraper.md
- **Developed by:** [ParseForge](https://apify.com/parseforge) (community)
- **Categories:** Jobs, Automation, Developer tools
- **Stats:** 21 total users, 4 monthly users, 79.3% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $12.99 / 1,000 result items

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

[![ParseForge](https://raw.githubusercontent.com/ParseForge/apify-assets/main/banner.jpg)](https://apify.com/parseforge?fpr=vmoqkp)

### FlexJobs Scraper

**Scrape FlexJobs job listings by keyword, category, remote level, schedule, or location.** Get every posting as a clean row with title, company, location, and remote details. No login or API key. Export to CSV, JSON, Excel, or XML.

FlexJobs hides its listings behind a paywall and has no public API. This Actor reads the public job search results directly, applies your filters as it goes, and returns each match in one fixed schema. You get the same data a subscriber sees, without the subscription.

| Who uses it | What they scrape FlexJobs for |
|---|---|
| Job seekers | Find remote or flexible jobs that match their exact criteria without paying for a FlexJobs subscription |
| Recruiters | Build a pipeline of active candidates by pulling fresh listings for a specific role or location |
| Market researchers | Track which companies are hiring for remote roles and how job titles evolve over time |
| HR analysts | Benchmark salary ranges and benefits for flexible positions across industries |

### What it does

This Actor collects FlexJobs job listings by keyword, category, remote level, schedule, or location, and returns each one as a flat row.

- 🔍 **Keyword search:** Enter any job title or skill, like "software engineer" or "customer success".
- 🏷️ **Category filter:** Narrow results to a specific field such as Computer & IT, Marketing, or Sales.
- 🌍 **Remote level:** Choose 100% Remote, Hybrid Remote, or Option for Remote to match your work preference.
- ⏰ **Job schedule:** Filter by Full-Time or Part-Time to fit your availability.
- 📍 **Location filter:** Target a city, state, or ZIP code, or leave blank for all locations.
- 📊 **Structured output:** Every listing is returned as a flat row with consistent fields, ready for analysis.

Results export to CSV, JSON, Excel, or XML, or straight from the API.

### What you can do with FlexJobs data

**💼 Build a remote job shortlist.**

A job seeker runs the Actor with keyword "product manager" and remote level "100% Remote" to get a list of fully remote PM roles, then exports to CSV to track applications.

**📈 Monitor hiring trends.**

A market researcher runs the Actor weekly for "data scientist" across all locations to see which companies are hiring and how demand shifts by region.

**🤝 Source candidates for clients.**

A recruiter filters by "software engineer" and location "New York" to find active job postings, then cross-references with their candidate database.

**💰 Benchmark flexible job benefits.**

An HR analyst scrapes listings for "marketing manager" with schedule "Full-Time" to compare salary ranges and remote options across employers.

### Why choose this scraper

|  | What you get |
|---|---|
| **No login or API key** | Scrape public FlexJobs search results without an account or subscription |
| **Flexible filters** | Combine keyword, category, remote level, schedule, and location in one run |
| **Scalable** | Collect up to 1,000,000 listings per run with a single input |
| **Clean data** | Each job is returned as a flat row with consistent fields for easy export |

### How it compares

This Actor focuses on flexible filtering and clean output, while the other FlexJobs scrapers offer different extraction approaches.

| Feature | ParseForge | Flexjobs Jobs Scraper | FlexJobs Job Search Scraper |
|---|---|---|---|
| Keyword search | Yes | Not listed | Not listed |
| Category filter | Yes | Not listed | Not listed |
| Remote level filter | Yes | Not listed | Not listed |
| Job schedule filter | Yes | Not listed | Not listed |
| Location filter | Yes | Not listed | Not listed |
| Max items limit | Yes | Not listed | Not listed |

### Configure the run

Drive the Actor from a keyword, category, remote level, schedule, and location, alone or together, and filters run as each listing is read so only matches reach your dataset. The Input tab lists every parameter.

A first run with the defaults:

```json
{
  "maxItems": 10,
  "keyword": "software engineer"
}
```

A larger pull:

```json
{
  "maxItems": 200,
  "keyword": "software engineer"
}
```

### Pricing

Pay-per-result: **$0.01734 per result** collected. You pay only for the results written to your dataset.

| Results collected | Approximate cost |
|---|---|
| 100 results | $1.73 |
| 1,000 results | $17.34 |
| 10,000 results | $173.40 |

New Apify accounts start with $5 in free credit.

### Free users

Free-plan runs return up to 10 results as a preview. [Upgrade your Apify plan](https://console.apify.com/sign-up?fpr=vmoqkp) to collect up to 1,000,000 results per run.

### Run it

1. [Create a free Apify account with $5 in credit](https://console.apify.com/sign-up?fpr=vmoqkp).
2. Open the [FlexJobs Scraper](https://apify.com/parseforge/flexjobs-scraper?fpr=vmoqkp).
3. Set your inputs and any filters, then click **Start**.
4. Export the results as CSV, Excel, JSON, or XML from the **Dataset** tab.

Run it programmatically through the [Apify API](https://docs.apify.com/api/v2) (`run-sync-get-dataset-items`) or the [ApifyClient](https://docs.apify.com/api/client/js) for JavaScript and Python.

### Use with AI agents (MCP)

Give an AI agent live access to FlexJobs through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:

```bash
claude mcp add --transport http apify "https://mcp.apify.com/?tools=parseforge/flexjobs-scraper"
```

Then prompt it in plain language to run the scraper and read back the results.

### Troubleshooting

**Why am I getting no results?**

Your filters may be too restrictive. Try removing the location or category filter, or use a more general keyword. Also check that your keyword is spelled correctly.

**The scraper stops before reaching maxItems.**

This usually means there are no more matching listings on FlexJobs. Try broadening your filters or increasing the maxItems value.

**I get an error about invalid input.**

Make sure remoteLevel and jobSchedule are set to one of the allowed values from the dropdown. For keyword, category, and location, use plain text without special characters.

**The output is missing some fields.**

Some listings may not have all fields populated. The Actor returns whatever data is available on the public page. Check the sample output to see the full schema.

**The scraper is slow.**

FlexJobs may rate-limit requests. Try reducing maxItems or running the Actor during off-peak hours. You can also increase the timeout in Apify settings.

### FAQ

| Question | Answer |
|---|---|
| Do I need a FlexJobs account to use this scraper? | No. The Actor reads public search results from FlexJobs.com, so no login or subscription is required. |
| Can I filter by remote work options? | Yes. Use the remoteLevel input to select 100% Remote, Hybrid Remote, or Option for Remote. |
| How many job listings can I scrape in one run? | You can set maxItems up to 1,000,000. The Actor will stop once it reaches that number or runs out of matching listings. |
| What output formats are supported? | You can export the results to CSV, JSON, Excel, or XML directly from the Apify platform. |
| Can I combine multiple filters? | Yes. All filters, keyword, category, remote level, schedule, and location, can be used together in a single run. |
| Does this scraper get past the FlexJobs paywall? | No. It only collects data that is publicly visible in search results. It does not access subscriber-only content. |
| Is this scraper legal? | You should review FlexJobs' terms of service and comply with all applicable laws. The Actor only accesses publicly available data. |
| Can I schedule this scraper to run automatically? | Yes. You can set up a schedule in Apify to run the Actor at regular intervals, such as daily or weekly. |
| What if I get no results? | Check your filters. Try broadening your keyword or removing location and category filters to see if listings exist. |
| Does the scraper handle pagination? | Yes. It automatically follows pagination to collect all matching listings up to your maxItems limit. |

### Related actors

Browse the full [ParseForge collection](https://apify.com/parseforge?fpr=vmoqkp) for more scrapers.

🆘 **Need help?** Email parseforge@protonmail.com with your run ID, your input, and what you expected.

⚠️ **Disclaimer.** This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by FlexJobs Corporation. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.

# Actor input Schema

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

How many job listings to collect per run.

## `keyword` (type: `string`):

Search jobs by keyword (e.g. "software engineer", "marketing manager")

## `category` (type: `string`):

Filter by job category (e.g. "Computer & IT", "Marketing", "Sales")

## `remoteLevel` (type: `string`):

Filter by remote work option

## `jobSchedule` (type: `string`):

Filter by work schedule

## `location` (type: `string`):

Filter by location (e.g. "New York", "CA", "United States")

## Actor input object example

```json
{
  "maxItems": 10,
  "keyword": "software engineer",
  "remoteLevel": "all",
  "jobSchedule": "all"
}
```

# Actor output Schema

## `overview` (type: `string`):

Overview of job listings with key fields

## `fullData` (type: `string`):

Complete dataset with all scraped job fields

# 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 = {
    "maxItems": 10,
    "keyword": "software engineer"
};

// Run the Actor and wait for it to finish
const run = await client.actor("parseforge/flexjobs-scraper").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 = {
    "maxItems": 10,
    "keyword": "software engineer",
}

# Run the Actor and wait for it to finish
run = client.actor("parseforge/flexjobs-scraper").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 '{
  "maxItems": 10,
  "keyword": "software engineer"
}' |
apify call parseforge/flexjobs-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,parseforge/flexjobs-scraper"
        }
    }
}

```

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/BOcRhm6eWnnBShvx2/builds/NRJa6FkV3Gge6bbbh/openapi.json
