# Remote OK Scraper & Tech Job Leads API (Remote Startups) (`kamerozkan/remoteok-jobs-tech-leads-scraper`) Actor

Get the newest remote jobs from Remote OK as structured data: position, company, salary range, tech tags, location, apply link and full description. Official JSON feed, no proxy, $0.003 per job.

- **URL**: https://apify.com/kamerozkan/remoteok-jobs-tech-leads-scraper.md
- **Developed by:** [Kamer Ozkan](https://apify.com/kamerozkan) (community)
- **Categories:** Jobs, Lead generation, Developer tools
- **Stats:** 1 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$3.00 / 1,000 record extracteds

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/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Remote OK Scraper & Tech Job Leads API (Remote Startups)

Get the newest remote jobs from Remote OK as clean JSON, CSV or Excel: position, company, salary range, tech tags, location, apply link and the full job description in HTML and plain text.

### What does Remote OK Scraper do?

It reads the public Remote OK jobs feed (the official JSON API) and turns every listing into one structured row. You can filter by a tag, skill or role such as `python`, `react`, `devops` or `sales`. It needs no login, no API key and no proxy setup, and a run finishes in a few seconds.

The feed holds about 100 of the newest remote jobs at a time, so the actor works best on a schedule (for example daily) to collect new postings as they appear.

### Who is it for?

- **Recruiters and staffing agencies**: find companies that are hiring remotely right now and reach out with candidates.
- **Sales and lead generation teams**: use "is hiring" as a buying signal for HR, dev tools, payroll or EOR services.
- **Job boards and newsletters**: feed fresh remote jobs into your site, Slack channel or weekly digest.
- **Analysts**: track remote salaries and in-demand skills over time.

### What data can you get?

| Field | Example |
|---|---|
| `position` | Head of Operations |
| `company` | Leverage Live Local |
| `location` | Worldwide / Remote |
| `tags` | non tech, ops, exec |
| `salary` | $170,000 - $350,000 (or "Not specified") |
| `url` | Remote OK job page |
| `applyUrl` | Apply link |
| `companyLogo` | Logo URL when Remote OK has one |
| `summary` | First 300 characters of the description, plain text |
| `descriptionText` | Full description, plain text |
| `fullDescription` | Full description, original HTML |
| `postedAt` | 2026-10-03T20:20:32+00:00 |
| `id`, `extractedAt` | Remote OK job id, time of extraction |

### How much does it cost?

You pay only for results: **$0.003 per job extracted ($3.00 per 1,000 jobs)**. There is no extra charge for proxies.

Worked example: a daily run that collects the 30 newest jobs costs 30 x $0.003 = **$0.09 per run**, about $2.70 per month. A full feed of 100 jobs costs $0.30.

Set "Maximum Job Leads" or a maximum cost per run to cap spending.

### How to use it

1. Click **Try for free**.
2. Set **Maximum Job Leads** (default 30) and optionally a **Tag Filter** such as `python` or `marketing`.
3. Click **Start**, then download the results as JSON, CSV or Excel, or read them through the API.
4. To collect new jobs every day, add a schedule in Apify (Schedules > Create new).

### Input example

```json
{
  "maxItems": 30,
  "tagFilter": "python"
}
```

### Output example

Real row from a run on 2026-10-10 (descriptions shortened here):

```json
{
  "id": "1137461",
  "company": "Leverage Live Local",
  "position": "Head of Operations",
  "location": "Worldwide / Remote",
  "tags": "non tech, ops, exec",
  "salary": "$170,000 - $350,000",
  "url": "https://remoteOK.com/remote-jobs/remote-head-of-operations-leverage-live-local-1137461",
  "applyUrl": "https://remoteOK.com/remote-jobs/remote-head-of-operations-leverage-live-local-1137461",
  "companyLogo": "",
  "summary": "Leverage Live Local prepares and manages Florida Live Local Act property tax exemptions for multifamily owners. We represent more than 90 properties and about 30,000 units...",
  "descriptionText": "Leverage Live Local prepares and manages Florida Live Local Act property tax exemptions...",
  "fullDescription": "<p>Leverage Live Local prepares and manages Florida Live Local Act property tax exemptions...",
  "postedAt": "2026-10-03T20:20:32+00:00",
  "extractedAt": "2026-10-10T08:08:33.503061+00:00"
}
```

### Integrations and API

Run it from your code with the Apify API or the `apify-client` package, schedule it in Apify, or connect it to Make, n8n, Zapier, Google Sheets, Airtable or a webhook.

```python
from apify_client import ApifyClient

client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("kamerozkan/remoteok-jobs-tech-leads-scraper").call(run_input={"maxItems": 30, "tagFilter": "python"})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item["position"], item["company"], item["salary"])
```

### FAQ

**How many jobs can I get per run?** As many as the Remote OK feed holds at that moment, usually about 100 of the newest jobs. Schedule the actor to build a history.

**How does the tag filter work?** A job matches when the word is one of its tags, or appears in its title or description (case insensitive).

**Why is the salary "Not specified"?** Many companies do not publish a salary range on Remote OK. The actor never guesses one.

**Do I need to credit Remote OK?** Remote OK's API terms ask you to mention Remote OK as the source and link back to the job page when you republish jobs. Every row has the `url` field for that.

**Is it legal to collect this data?** It collects publicly available job listings that companies published. You are responsible for how you use it, including privacy laws like GDPR.

### Support and feedback

Something not working, a field missing or an idea for a filter? Open an issue on the **Issues** tab of this actor with your run link. We read every issue and usually answer within one working day.

# Actor input Schema

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

Maximum number of remote job leads to extract. The Remote OK feed holds about 100 of the newest jobs at a time.

## `tagFilter` (type: `string`):

Filter jobs by technology, role, or skill (e.g., Python, React, Devops, AI, Sales). Leave empty for all.

## Actor input object example

```json
{
  "maxItems": 30,
  "tagFilter": ""
}
```

# Actor output Schema

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

Default dataset containing extracted remote job leads.

# 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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("kamerozkan/remoteok-jobs-tech-leads-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 = {}

# Run the Actor and wait for it to finish
run = client.actor("kamerozkan/remoteok-jobs-tech-leads-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 '{}' |
apify call kamerozkan/remoteok-jobs-tech-leads-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,kamerozkan/remoteok-jobs-tech-leads-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/Eg4JO0hNdiYyxw1pi/builds/gUtHj2ZvqWrLYfhFf/openapi.json
