# We Work Remotely Jobs Scraper – Remote Listings & Apply Links (`ninhothedev/weworkremotely-jobs-scraper`) Actor

$0.5/1K 🔥 Fast We Work Remotely scraper! Remote jobs — title, company, region, category & link. No key. JSON, CSV, Excel or API in seconds. Pick categories & pull thousands of remote jobs for boards & recruiting ⚡

- **URL**: https://apify.com/ninhothedev/weworkremotely-jobs-scraper.md
- **Developed by:** [ninhothedev](https://apify.com/ninhothedev) (community)
- **Categories:** Jobs, Lead generation, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.50 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#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

## We Work Remotely Jobs Scraper

Scrape **remote job listings from [We Work Remotely](https://weworkremotely.com)** — the largest remote-work community on the planet — straight into structured JSON, CSV or Excel. Pull the newest openings in programming, design, customer support, DevOps, product, marketing, sales and more, with **company, role, region, category, description, link and posted date** on every record.

No login. No API key. Datacenter-proxy friendly (or run with no proxy at all). Fast and cheap.

***

### Why use this actor?

- **No credentials, no scraping headaches** — powered by We Work Remotely's public RSS feeds.
- **Clean, split-out data** — the WWR title `"Company: Role"` is split into separate `company` and `title` fields for you.
- **Category targeting** — scrape the whole board or just the categories you care about.
- **Ready for pipelines** — flat, nullable, consistent schema. Export to JSON/CSV/Excel or push to your DB, Google Sheets, or an ATS.
- **Cheap** — roughly **$1 per 1,000 jobs**, plus Apify platform usage.

### Use cases

- **Remote job aggregation** — feed a job board or newsletter with fresh remote listings.
- **Recruiting & sourcing** — track which companies are hiring remotely and in which regions.
- **Job boards & market research** — monitor remote hiring trends by category over time.

### Input

| Field | Type | Default | Description |
|-------|------|---------|-------------|
| `mode` | select | `jobs` | What to scrape. `jobs` fetches the main feed plus any selected category feeds. |
| `categories` | array | `[]` | Category slugs to scrape (e.g. `programming`, `design`, `customer-support`, `devops-sysadmin`, `product`, `marketing`, `sales`). Empty = the main combined feed of all categories. |
| `maxItems` | integer | `100` | Maximum number of jobs to return across all feeds (1–1000). |

#### Example input

```json
{
  "mode": "jobs",
  "categories": ["programming", "design"],
  "maxItems": 200
}
```

Leave `categories` empty to scrape every category from the main feed:

```json
{ "mode": "jobs", "categories": [], "maxItems": 100 }
```

### Output

Each dataset item is one job:

```json
{
  "title": "Senior Product Manager, Pricing",
  "company": "LawnStarter",
  "region": "Anywhere in the World",
  "country": "United States",
  "category": "Product",
  "job_type": "Full-Time",
  "url": "https://weworkremotely.com/remote-jobs/lawnstarter-senior-product-manager-pricing",
  "guid": "https://weworkremotely.com/remote-jobs/lawnstarter-senior-product-manager-pricing",
  "logo": "https://wwr-pro.s3.amazonaws.com/logos/0171/5881/logo.gif",
  "description": "About LawnStarter ... (plain text, capped at 5000 chars)",
  "posted_at": "2026-07-20T10:55:05Z",
  "source": "weworkremotely",
  "scraped_at": "2026-07-20T11:00:00Z"
}
```

All fields are nullable — if We Work Remotely omits a value it comes back as `null` rather than breaking your pipeline.

### Available categories

Common slugs: `programming`, `design`, `customer-support`, `devops-sysadmin`, `product`, `marketing`, `sales`, `management-and-finance`, `all-other`. Pass the slug portion only — the actor builds the full feed URL for you.

### Pricing

Around **$1 per 1,000 jobs** scraped, on top of standard Apify platform usage. Runs are quick and light (512 MB) because they read compact RSS feeds rather than rendering pages.

### Related actors

Building a remote-jobs pipeline? Combine this with the rest of the collection:

- [RemoteOK Jobs Scraper](https://apify.com/ninhothedev/remoteok-jobs-scraper)
- [Jobicy Remote Jobs Scraper](https://apify.com/ninhothedev/jobicy-remote-jobs-scraper)
- [Himalayas Jobs Scraper](https://apify.com/ninhothedev/himalayas-jobs-scraper)
- [Arbeitnow Jobs Scraper](https://apify.com/ninhothedev/arbeitnow-jobs-scraper)

### FAQ

**Do I need a We Work Remotely account or API key?** No. The actor uses public RSS feeds.

**How fresh is the data?** As fresh as the feed — WWR updates continuously and the feed reflects the newest listings.

**Can I get the full job description?** Yes, plain-text and capped at 5000 characters in `description`. Open `url` for the original HTML posting.

**Is this legal?** The actor reads publicly available RSS feeds and returns only public job-listing data. You are responsible for complying with We Work Remotely's terms and applicable law.

***

**Keywords:** we work remotely scraper, weworkremotely jobs, remote jobs scraper, remote job listings, remote work api, job board scraper, remote developer jobs, remote design jobs, jobs rss feed, recruiting data, job aggregation, remote hiring.

# Actor input Schema

## `mode` (type: `string`):

What to scrape. Currently 'jobs' fetches the main We Work Remotely feed plus any selected category feeds.

## `categories` (type: `array`):

Category slugs to scrape (e.g. 'programming', 'design', 'customer-support', 'devops-sysadmin', 'product', 'marketing', 'sales'). Leave empty to scrape the main combined feed of all categories.

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

Maximum number of jobs to return across all selected feeds. Between 1 and 1000.

## Actor input object example

```json
{
  "mode": "jobs",
  "categories": [
    "programming",
    "design"
  ],
  "maxItems": 100
}
```

# 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 = {
    "categories": [
        "programming",
        "design"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("ninhothedev/weworkremotely-jobs-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 = { "categories": [
        "programming",
        "design",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("ninhothedev/weworkremotely-jobs-scraper").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "categories": [
    "programming",
    "design"
  ]
}' |
apify call ninhothedev/weworkremotely-jobs-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=ninhothedev/weworkremotely-jobs-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/5I29ZQIBtk1iKcehx/builds/7QnoK4VhBQsJc7Wvr/openapi.json
