# Upwork Jobs Scraper (`crw/upwork-job-search-scraper`) Actor

Scrape Upwork job postings without limits. No cookies or login required — session is acquired automatically. Filter by keyword, category, experience level, job type, budget, location, and more.

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

## Pricing

from $5.00 / 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 a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use 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

## Upwork Job Search Scraper

Find the right Upwork jobs faster — without the endless manual searching.

The Upwork Job Search Scraper collects fresh job postings on demand and delivers them as clean, structured data. Whether you want to monitor new opportunities in your niche, research what clients are paying, or build a job alert system, this Actor gives you a reliable data feed you can actually build on.

**No login. No cookies. No setup.** Just configure your filters and run.

---

### What You Can Do

- **Hunt smarter** — filter by keyword, category, experience level, budget, location, and more to get only the jobs that matter to you
- **Track the market** — see what skills are in demand, what clients are paying, and how competitive your niche is
- **Build alert pipelines** — feed results into Slack, email, Airtable, or any webhook to get notified the moment a matching job is posted
- **Research rates** — benchmark hourly rates and fixed-price budgets across categories and experience levels

---

### Filters

Every filter matches what you see in the Upwork job search UI.

| Field | Type | Default | Description |
|-------|------|---------|-------------|
| `keyword` | string | — | Search keyword (e.g. `"React developer"`). Leave empty to browse all. |
| `maxResults` | integer | 100 | Maximum number of jobs to collect (max: 1,000) |
| `sort` | string | `relevance+desc` | `relevance+desc` (Relevance) or `recency` (Newest first) |
| `contractorTier` | array | — | `Entry Level`, `Intermediate`, `Expert` |
| `jobType` | array | — | `hourly`, `fixed` |
| `hourlyRateMin` | integer | — | Min hourly rate in USD |
| `hourlyRateMax` | integer | — | Max hourly rate in USD |
| `fixedBudgetRanges` | array | — | `Less than $100`, `$100 to $500`, `$500 - $1K`, `$1K - $5K`, `$5K+` |
| `fixedBudgetMin` | integer | — | Custom fixed budget minimum (USD) |
| `fixedBudgetMax` | integer | — | Custom fixed budget maximum (USD) |
| `clientHires` | array | — | `No hires`, `1 to 9 hires`, `10+ hires` |
| `regions` | array | — | `Africa`, `Americas`, `Asia`, `Europe`, `Oceania`, … |
| `subregions` | array | — | `Eastern Europe`, `South-Eastern Asia`, `Western Asia`, … |
| `countries` | array | — | `United States`, `Germany`, `India`, … |
| `clientTimezones` | array | — | e.g. `"(UTC+09:00) Tokyo, Osaka, Sapporo, Seoul"` |
| `durationV3` | array | — | `Less than one month`, `1 to 3 months`, `3 to 6 months`, `More than 6 months` |
| `workload` | array | — | `Less than 30 hrs/week`, `More than 30 hrs/week` |
| `contractToHire` | boolean | false | Show only Contract-to-Hire roles |
| `category` | string | — | See supported categories below |
| `subcategory` | string | — | Only valid when `category` is also set |

#### Example Input

```json
{
  "keyword": "backend developer",
  "maxResults": 50,
  "sort": "recency",
  "contractorTier": ["Intermediate", "Expert"],
  "jobType": ["hourly"],
  "hourlyRateMin": 30,
  "hourlyRateMax": 100,
  "category": "Web, Mobile & Software Dev",
  "subcategory": "Web Development",
  "durationV3": ["1 to 3 months", "3 to 6 months", "More than 6 months"],
  "workload": ["More than 30 hrs/week"]
}
````

***

### Output

Each item in the dataset represents one job posting.

| Field | Type | Description |
|-------|------|-------------|
| `id` | string | Upwork internal job ID |
| `ciphertext` | string | Job URL identifier (e.g. `~022xxx`) |
| `title` | string | Job title |
| `description` | string | Full job description |
| `skills` | string\[] | Required skills |
| `jobType` | string | `HOURLY` or `FIXED` |
| `contractorTier` | string | null | `EntryLevel`, `IntermediateLevel`, or `ExpertLevel` |
| `hourlyBudgetMin` | number | null | Min hourly rate in USD (HOURLY only) |
| `hourlyBudgetMax` | number | null | Max hourly rate in USD (HOURLY only) |
| `hourlyEngagementType` | string | null | `FULL_TIME`, `PART_TIME`, or `AS_NEEDED` (HOURLY only) |
| `engagementDurationLabel` | string | null | Contract duration label (HOURLY only) |
| `engagementDurationWeeks` | number | null | Contract duration in weeks (HOURLY only) |
| `fixedPriceAmount` | number | null | Budget in USD (FIXED only) |
| `fixedPriceDurationLabel` | string | null | Project duration label (FIXED only) |
| `fixedPriceDurationWeeks` | number | null | Project duration in weeks (FIXED only) |
| `createTime` | string | Created at (ISO 8601) |
| `publishTime` | string | Published at (ISO 8601) |

#### Example Output

```json
{
  "id": "2054308449345801268",
  "ciphertext": "~022054308449345801268",
  "title": "Backend Developer (Node.js + n8n)",
  "description": "We're looking for a backend developer with deep expertise in n8n...",
  "skills": ["Node.js", "API", "JavaScript", "MySQL"],
  "jobType": "HOURLY",
  "contractorTier": "IntermediateLevel",
  "hourlyBudgetMin": 30,
  "hourlyBudgetMax": 60,
  "hourlyEngagementType": "FULL_TIME",
  "engagementDurationLabel": "More than 6 months",
  "engagementDurationWeeks": 52,
  "fixedPriceAmount": null,
  "fixedPriceDurationLabel": null,
  "fixedPriceDurationWeeks": null,
  "createTime": "2026-05-12T21:11:16.591Z",
  "publishTime": "2026-05-12T21:12:10.479Z"
}
```

***

### Supported Categories

| Category | Subcategories (sample) |
|----------|------------------------|
| Accounting & Consulting | Accounting & Bookkeeping, Financial Planning, Recruiting & Human Resources, … |
| Admin Support | Data Entry & Transcription Services, Virtual Assistance, Project Management, … |
| Customer Service | Customer Service & Tech Support, Community Management & Tagging |
| Data Science & Analytics | AI & Machine Learning, Data Analysis & Testing, Data Mining & Management, … |
| Design & Creative | Art & Illustration, Branding & Logo Design, Video & Animation, … |
| Engineering & Architecture | Civil & Structural Engineering, Electrical & Electronic Engineering, 3D Modeling & CAD, … |
| IT & Networking | DevOps & Solution Architecture, Information Security & Compliance, Network & System Administration, … |
| Legal | Corporate & Contract Law, Finance & Tax Law, International & Immigration Law, … |
| Sales & Marketing | Digital Marketing, Lead Generation & Telemarketing, Marketing, PR & Brand Strategy |
| Translation | Translation & Localization Services, Language Tutoring & Interpretation |
| Web, Mobile & Software Dev | Web Development, Mobile Development, AI Apps & Integration, Ecommerce Development, … |
| Writing | Content Writing, Editing & Proofreading Services, Professional & Business Writing, … |

***

### Notes

- Results are limited to publicly visible job postings — no login required
- Maximum 1,000 jobs per run
- `subcategory` requires `category` to also be set
- `fixedBudgetRanges` and `fixedBudgetMin`/`fixedBudgetMax` can be used together and are merged
- When `fixedBudgetRanges` or `fixedBudgetMin`/`fixedBudgetMax` are set, `fixed` is automatically added to `jobType`
- Multiple timezones sharing the same UTC offset are automatically deduplicated

# Actor input Schema

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

Keyword to search for (e.g. 'React developer'). Leave empty to browse all.

## `maxResults` (type: `integer`):

Maximum number of job postings to collect (max 1000)

## `sort` (type: `string`):

Sort order for results

## `contractorTier` (type: `array`):

Filter by required experience level. Leave empty for all.

## `jobType` (type: `array`):

Filter by job type: hourly or fixed. Leave empty for all.

## `hourlyRateMin` (type: `integer`):

Minimum hourly rate filter (only applies when Job Type includes Hourly)

## `hourlyRateMax` (type: `integer`):

Maximum hourly rate filter (only applies when Job Type includes Hourly)

## `fixedBudgetRanges` (type: `array`):

Filter by fixed-price budget preset ranges. Leave empty for all.

## `fixedBudgetMin` (type: `integer`):

Custom minimum fixed budget (only applies when Job Type includes Fixed Price)

## `fixedBudgetMax` (type: `integer`):

Custom maximum fixed budget (only applies when Job Type includes Fixed Price)

## `clientHires` (type: `array`):

Filter by client's hire history. Leave empty for all.

## `regions` (type: `array`):

Filter by client region. Leave empty for all.

## `subregions` (type: `array`):

Filter by client subregion. Leave empty for all.

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

Filter by client country. Leave empty for all.

## `clientTimezones` (type: `array`):

Filter by client time zone. Multiple selections with the same UTC offset are automatically deduplicated. Leave empty for all.

## `durationV3` (type: `array`):

Filter by estimated project length. Leave empty for all.

## `workload` (type: `array`):

Filter by hours per week. Leave empty for all.

## `contractToHire` (type: `boolean`):

Include only Contract-to-Hire roles

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

Filter by job category. Leave empty for all.

## `subcategory` (type: `string`):

Filter by subcategory (only valid when Category is also set). Leave empty for all.

## Actor input object example

```json
{
  "maxResults": 100,
  "sort": "relevance+desc",
  "contractToHire": false
}
```

# Actor output Schema

## `jobs` (type: `string`):

Collected job postings including title, description, skills, job type, budget, and timestamps

# 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("crw/upwork-job-search-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("crw/upwork-job-search-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 '{}' |
apify call crw/upwork-job-search-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Upwork Jobs Scraper",
        "description": "Scrape Upwork job postings without limits. No cookies or login required — session is acquired automatically. Filter by keyword, category, experience level, job type, budget, location, and more.",
        "version": "0.0",
        "x-build-id": "dKHCbrLKPyxabnzWz"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/crw~upwork-job-search-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-crw-upwork-job-search-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/crw~upwork-job-search-scraper/runs": {
            "post": {
                "operationId": "runs-sync-crw-upwork-job-search-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/crw~upwork-job-search-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-crw-upwork-job-search-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "keyword": {
                        "title": "Search Keyword",
                        "type": "string",
                        "description": "Keyword to search for (e.g. 'React developer'). Leave empty to browse all."
                    },
                    "maxResults": {
                        "title": "Max Results",
                        "minimum": 1,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "Maximum number of job postings to collect (max 1000)",
                        "default": 100
                    },
                    "sort": {
                        "title": "Sort By",
                        "enum": [
                            "relevance+desc",
                            "recency"
                        ],
                        "type": "string",
                        "description": "Sort order for results",
                        "default": "relevance+desc"
                    },
                    "contractorTier": {
                        "title": "Experience Level",
                        "type": "array",
                        "description": "Filter by required experience level. Leave empty for all.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "Entry Level",
                                "Intermediate",
                                "Expert"
                            ]
                        }
                    },
                    "jobType": {
                        "title": "Job Type",
                        "type": "array",
                        "description": "Filter by job type: hourly or fixed. Leave empty for all.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "hourly",
                                "fixed"
                            ]
                        }
                    },
                    "hourlyRateMin": {
                        "title": "Min Hourly Rate (USD)",
                        "type": "integer",
                        "description": "Minimum hourly rate filter (only applies when Job Type includes Hourly)"
                    },
                    "hourlyRateMax": {
                        "title": "Max Hourly Rate (USD)",
                        "type": "integer",
                        "description": "Maximum hourly rate filter (only applies when Job Type includes Hourly)"
                    },
                    "fixedBudgetRanges": {
                        "title": "Fixed-Price Budget Ranges",
                        "type": "array",
                        "description": "Filter by fixed-price budget preset ranges. Leave empty for all.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "Less than $100",
                                "$100 to $500",
                                "$500 - $1K",
                                "$1K - $5K",
                                "$5K+"
                            ]
                        }
                    },
                    "fixedBudgetMin": {
                        "title": "Fixed Budget Min (USD)",
                        "type": "integer",
                        "description": "Custom minimum fixed budget (only applies when Job Type includes Fixed Price)"
                    },
                    "fixedBudgetMax": {
                        "title": "Fixed Budget Max (USD)",
                        "type": "integer",
                        "description": "Custom maximum fixed budget (only applies when Job Type includes Fixed Price)"
                    },
                    "clientHires": {
                        "title": "Client Hires",
                        "type": "array",
                        "description": "Filter by client's hire history. Leave empty for all.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "No hires",
                                "1 to 9 hires",
                                "10+ hires"
                            ]
                        }
                    },
                    "regions": {
                        "title": "Client Regions",
                        "type": "array",
                        "description": "Filter by client region. Leave empty for all.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "Africa",
                                "Americas",
                                "Antarctica",
                                "Asia",
                                "Europe",
                                "Oceania"
                            ]
                        }
                    },
                    "subregions": {
                        "title": "Client Subregions",
                        "type": "array",
                        "description": "Filter by client subregion. Leave empty for all.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "Australia and New Zealand",
                                "Caribbean",
                                "Central America",
                                "Central Asia",
                                "Eastern Africa",
                                "Eastern Asia",
                                "Eastern Europe",
                                "Melanesia",
                                "Micronesia",
                                "Middle Africa",
                                "Northern Africa",
                                "Northern America",
                                "Northern Europe",
                                "Polynesia",
                                "South America",
                                "South-Eastern Asia",
                                "Southern Africa",
                                "Southern Asia",
                                "Southern Europe",
                                "Western Africa",
                                "Western Asia",
                                "Western Europe"
                            ]
                        }
                    },
                    "countries": {
                        "title": "Client Countries",
                        "type": "array",
                        "description": "Filter by client country. Leave empty for all.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "Albania",
                                "Algeria",
                                "American Samoa",
                                "Andorra",
                                "Angola",
                                "Anguilla",
                                "Antigua and Barbuda",
                                "Argentina",
                                "Armenia",
                                "Aruba",
                                "Australia",
                                "Austria",
                                "Azerbaijan",
                                "Bahamas",
                                "Bahrain",
                                "Bangladesh",
                                "Barbados",
                                "Belgium",
                                "Belize",
                                "Benin",
                                "Bermuda",
                                "Bhutan",
                                "Bolivia",
                                "Bonaire, Sint Eustatius and Saba",
                                "Bosnia and Herzegovina",
                                "Botswana",
                                "Bouvet Island",
                                "Brazil",
                                "British Indian Ocean Territory",
                                "British Virgin Islands",
                                "Brunei Darussalam",
                                "Bulgaria",
                                "Burkina Faso",
                                "Burundi",
                                "Cambodia",
                                "Cameroon",
                                "Canada",
                                "Cape Verde",
                                "Cayman Islands",
                                "Central African Republic",
                                "Chad",
                                "Chile",
                                "China",
                                "Christmas Island",
                                "Cocos (Keeling) Islands",
                                "Colombia",
                                "Comoros",
                                "Congo",
                                "Congo, the Democratic Republic of the",
                                "Cook Islands",
                                "Costa Rica",
                                "Cote d'Ivoire",
                                "Croatia",
                                "Curacao",
                                "Cyprus",
                                "Czech Republic",
                                "Denmark",
                                "Djibouti",
                                "Dominica",
                                "Dominican Republic",
                                "Ecuador",
                                "Egypt",
                                "El Salvador",
                                "Equatorial Guinea",
                                "Eritrea",
                                "Estonia",
                                "Ethiopia",
                                "Falkland Islands",
                                "Faroe Islands",
                                "Fiji",
                                "Finland",
                                "France",
                                "French Guiana",
                                "French Polynesia",
                                "French Southern and Antarctic Lands",
                                "Gabon",
                                "Gambia",
                                "Georgia",
                                "Germany",
                                "Ghana",
                                "Gibraltar",
                                "Greece",
                                "Greenland",
                                "Grenada",
                                "Guadeloupe",
                                "Guam",
                                "Guatemala",
                                "Guernsey",
                                "Guinea",
                                "Guinea-Bissau",
                                "Guyana",
                                "Haiti",
                                "Heard Island and McDonald Islands",
                                "Holy See",
                                "Honduras",
                                "Hong Kong",
                                "Hungary",
                                "Iceland",
                                "India",
                                "Indonesia",
                                "Ireland",
                                "Isle of Man",
                                "Israel",
                                "Italy",
                                "Jamaica",
                                "Japan",
                                "Jersey",
                                "Jordan",
                                "Kazakhstan",
                                "Kenya",
                                "Kiribati",
                                "Kuwait",
                                "Kyrgyzstan",
                                "Laos",
                                "Latvia",
                                "Lebanon",
                                "Lesotho",
                                "Liechtenstein",
                                "Lithuania",
                                "Luxembourg",
                                "Macao",
                                "Macedonia",
                                "Madagascar",
                                "Malawi",
                                "Malaysia",
                                "Maldives",
                                "Mali",
                                "Malta",
                                "Marshall Islands",
                                "Martinique",
                                "Mauritania",
                                "Mauritius",
                                "Mayotte",
                                "Mexico",
                                "Micronesia, Federated States of",
                                "Moldova",
                                "Monaco",
                                "Mongolia",
                                "Montenegro",
                                "Montserrat",
                                "Morocco",
                                "Mozambique",
                                "Myanmar",
                                "Namibia",
                                "Nauru",
                                "Nepal",
                                "Netherlands",
                                "Netherlands Antilles",
                                "New Caledonia",
                                "New Zealand",
                                "Nicaragua",
                                "Niger",
                                "Nigeria",
                                "Niue",
                                "Norfolk Island",
                                "Northern Mariana Islands",
                                "Norway",
                                "Oman",
                                "Pakistan",
                                "Palau",
                                "Palestinian Territories",
                                "Panama",
                                "Papua New Guinea",
                                "Paraguay",
                                "Peru",
                                "Philippines",
                                "Pitcairn",
                                "Poland",
                                "Portugal",
                                "Puerto Rico",
                                "Qatar",
                                "Reunion",
                                "Romania",
                                "Rwanda",
                                "Saint Barthelemy",
                                "Saint Helena",
                                "Saint Kitts and Nevis",
                                "Saint Lucia",
                                "Saint Martin (French part)",
                                "Saint Pierre and Miquelon",
                                "Saint Vincent and the Grenadines",
                                "Samoa",
                                "San Marino",
                                "Sao Tome and Principe",
                                "Saudi Arabia",
                                "Senegal",
                                "Serbia",
                                "Seychelles",
                                "Sierra Leone",
                                "Singapore",
                                "Sint Maarten (Dutch part)",
                                "Slovakia",
                                "Slovenia",
                                "Solomon Islands",
                                "Somalia",
                                "South Africa",
                                "South Korea",
                                "Spain",
                                "Sri Lanka",
                                "Suriname",
                                "Svalbard and Jan Mayen",
                                "Swaziland",
                                "Sweden",
                                "Switzerland",
                                "Taiwan",
                                "Tajikistan",
                                "Tanzania",
                                "Thailand",
                                "Timor-Leste",
                                "Togo",
                                "Tokelau",
                                "Tonga",
                                "Trinidad and Tobago",
                                "Tunisia",
                                "Turkey",
                                "Turkmenistan",
                                "Turks and Caicos Islands",
                                "Tuvalu",
                                "Uganda",
                                "Ukraine",
                                "United Arab Emirates",
                                "United Kingdom",
                                "United States",
                                "United States Minor Outlying Islands",
                                "United States Virgin Islands",
                                "Uruguay",
                                "Uzbekistan",
                                "Vanuatu",
                                "Venezuela",
                                "Vietnam",
                                "Wallis and Futuna",
                                "Western Sahara",
                                "Yemen",
                                "Zambia",
                                "Zimbabwe"
                            ]
                        }
                    },
                    "clientTimezones": {
                        "title": "Client Time Zones",
                        "type": "array",
                        "description": "Filter by client time zone. Multiple selections with the same UTC offset are automatically deduplicated. Leave empty for all.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "(UTC-11:00) Midway Island, Samoa",
                                "(UTC-10:00) Hawaii",
                                "(UTC-08:00) Alaska",
                                "(UTC-07:00) Pacific Time (US & Canada); Los Angeles",
                                "(UTC-07:00) Pacific Time (US & Canada); Tijuana",
                                "(UTC-07:00) Arizona",
                                "(UTC-06:00) Mountain Time (US & Canada)",
                                "(UTC-06:00) Saskatchewan",
                                "(UTC-05:00) Eastern Time - Indiana - Starke County",
                                "(UTC-06:00) Nicaragua",
                                "(UTC-06:00) Mexico City, Tegucigalpa",
                                "(UTC-05:00) Central Time (US & Canada)",
                                "(UTC-04:00) Eastern Time (US & Canada)",
                                "(UTC-05:00) Bogota, Lima",
                                "(UTC-04:00) Eastern Time - Indiana - most locations",
                                "(UTC-03:00) Atlantic Time (Canada)",
                                "(UTC-04:00) La Paz",
                                "(UTC-04:00) Caracas",
                                "(UTC-03:00) NE Brazil (MA, PI, CE, RN, PB)",
                                "(UTC-03:00) E Argentina (BA, DF, SC, TF)",
                                "(UTC-02:30) Newfoundland",
                                "(UTC-03:00) Pernambuco",
                                "(UTC-03:00) S & SE Brazil (GO, DF, MG, ES, RJ, SP, PR, SC, RS)",
                                "(UTC-02:00) Mid-Atlantic",
                                "(UTC+00:00) Azores, Cape Verde Island",
                                "(UTC+00:00) Tangiers, Casablanca",
                                "(UTC+01:00) (Coordinated Universal Time) Dublin, Edinburgh, London",
                                "(UTC+01:00) Lisbon",
                                "(UTC+00:00) (Coordinated Universal Time)",
                                "(UTC+02:00) Prague, Warsaw",
                                "(UTC+02:00) Paris, Madrid",
                                "(UTC+02:00) Berlin, Stockholm, Rome, Bern, Brussels",
                                "(UTC+01:00) Algeria",
                                "(UTC+03:00) Athens, Helsinki, Istanbul",
                                "(UTC+02:00) Eastern Europe",
                                "(UTC+03:00) Cairo",
                                "(UTC+02:00) Harare, Pretoria",
                                "(UTC+03:00) Israel",
                                "(UTC+03:00) Minsk",
                                "(UTC+03:00) Moscow, St. Petersburg, Volgograd",
                                "(UTC+03:30) Tehran",
                                "(UTC+03:00) Baghdad, Kuwait, Nairobi, Riyadh",
                                "(UTC+04:00) Abu Dhabi, Muscat, Tbilisi, Kazan",
                                "(UTC+05:00) Islamabad, Karachi",
                                "(UTC+04:30) Kabul",
                                "(UTC+04:00) Armenia",
                                "(UTC+05:45) Kathmandu, Nepal",
                                "(UTC+05:00) Tashkent",
                                "(UTC+05:00) Sverdlovsk",
                                "(UTC+06:00) Almaty, Dhaka",
                                "(UTC+05:30) Mumbai, Kolkata, Chennai, New Delhi",
                                "(UTC+06:00) Omsk, Novosibirsk",
                                "(UTC+07:00) Krasnoyarsk",
                                "(UTC+07:00) Bangkok, Jakarta, Hanoi",
                                "(UTC+08:00) Hong Kong SAR, Perth, Singapore, Taipei",
                                "(UTC+08:00) Irkutsk (Lake Baikal)",
                                "(UTC+08:00) Beijing, Chongqing, Urumqi",
                                "(UTC+09:00) Tokyo, Osaka, Sapporo, Seoul",
                                "(UTC+10:00) Guam, Port Moresby",
                                "(UTC+10:00) Magadan, Vladivostok",
                                "(UTC+10:00) Hobart",
                                "(UTC+09:30) Darwin",
                                "(UTC+10:00) Sydney, Melbourne",
                                "(UTC+10:00) Brisbane",
                                "(UTC+09:30) Adelaide",
                                "(UTC+09:00) Yakutsk (Lena River)",
                                "(UTC+12:00) Fiji Islands, Marshall Islands",
                                "(UTC+12:00) Wellington, Auckland",
                                "(UTC+12:00) Eniwetok, Kwajalein",
                                "(UTC+12:00) Kamchatka",
                                "(UTC+11:00) Solomon Islands, New Caledonia",
                                "(UTC+13:00) Apia (Samoa)"
                            ]
                        }
                    },
                    "durationV3": {
                        "title": "Project Length",
                        "type": "array",
                        "description": "Filter by estimated project length. Leave empty for all.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "Less than one month",
                                "1 to 3 months",
                                "3 to 6 months",
                                "More than 6 months"
                            ]
                        }
                    },
                    "workload": {
                        "title": "Hours Per Week",
                        "type": "array",
                        "description": "Filter by hours per week. Leave empty for all.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "Less than 30 hrs/week",
                                "More than 30 hrs/week"
                            ]
                        }
                    },
                    "contractToHire": {
                        "title": "Contract to Hire",
                        "type": "boolean",
                        "description": "Include only Contract-to-Hire roles",
                        "default": false
                    },
                    "category": {
                        "title": "Category",
                        "enum": [
                            "Accounting & Consulting",
                            "Admin Support",
                            "Customer Service",
                            "Data Science & Analytics",
                            "Design & Creative",
                            "Engineering & Architecture",
                            "IT & Networking",
                            "Legal",
                            "Sales & Marketing",
                            "Translation",
                            "Web, Mobile & Software Dev",
                            "Writing"
                        ],
                        "type": "string",
                        "description": "Filter by job category. Leave empty for all."
                    },
                    "subcategory": {
                        "title": "Subcategory",
                        "enum": [
                            "Personal & Professional Coaching",
                            "Accounting & Bookkeeping",
                            "Financial Planning",
                            "Recruiting & Human Resources",
                            "Management Consulting & Analysis",
                            "Other - Accounting & Consulting",
                            "Data Entry & Transcription Services",
                            "Virtual Assistance",
                            "Project Management",
                            "Market Research & Product Reviews",
                            "Community Management & Tagging",
                            "Customer Service & Tech Support",
                            "Data Analysis & Testing",
                            "Data Extraction/ETL",
                            "Data Mining & Management",
                            "AI & Machine Learning",
                            "Art & Illustration",
                            "Audio & Music Production",
                            "Branding & Logo Design",
                            "NFT, AR/VR & Game Art",
                            "Graphic, Editorial & Presentation Design",
                            "Performing Arts",
                            "Photography",
                            "Product Design",
                            "Video & Animation",
                            "Building & Landscape Architecture",
                            "Chemical Engineering",
                            "Civil & Structural Engineering",
                            "Contract Manufacturing",
                            "Electrical & Electronic Engineering",
                            "Interior & Trade Show Design",
                            "Energy & Mechanical Engineering",
                            "Physical Sciences",
                            "3D Modeling & CAD",
                            "Database Management & Administration",
                            "ERP/CRM Software",
                            "Information Security & Compliance",
                            "Network & System Administration",
                            "DevOps & Solution Architecture",
                            "Corporate & Contract Law",
                            "International & Immigration Law",
                            "Finance & Tax Law",
                            "Public Law",
                            "Digital Marketing",
                            "Lead Generation & Telemarketing",
                            "Marketing, PR & Brand Strategy",
                            "Language Tutoring & Interpretation",
                            "Translation & Localization Services",
                            "Blockchain, NFT & Cryptocurrency",
                            "AI Apps & Integration",
                            "Desktop Application Development",
                            "Ecommerce Development",
                            "Game Design & Development",
                            "Mobile Development",
                            "Other - Software Development",
                            "Product Management & Scrum",
                            "QA Testing",
                            "Scripts & Utilities",
                            "Web & Mobile Design",
                            "Web Development",
                            "Sales & Marketing Copywriting",
                            "Content Writing",
                            "Editing & Proofreading Services",
                            "Professional & Business Writing"
                        ],
                        "type": "string",
                        "description": "Filter by subcategory (only valid when Category is also set). Leave empty for all."
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
