# Upwork Job Search 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

Stop manually refreshing Upwork search pages. The Upwork Job Search Actor pulls fresh, structured job postings for you — no setup required.

Whether you're a freelancer tracking niche opportunities or an agency monitoring demand in your market, this Actor turns Upwork into a clean, structured data feed you can actually work with.

---

### Key Features

- **No setup required** — just enter your search criteria and run
- **Rich filter support** — keyword, experience level, job type, budget, location, category, and more
- **Up to 1,000 jobs per run** with automatic pagination
- **Structured output** — clean JSON with job details, budget, skills, and timestamps

---

### Input

| 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` | Sort order: `relevance+desc` or `recency` |
| `contractorTier` | array | — | Experience level: `EntryLevel`, `IntermediateLevel`, `ExpertLevel` |
| `jobType` | array | — | Job type: `hourly`, `fixed` |
| `hourlyRateMin` | integer | — | Minimum hourly rate (USD) — applies when `jobType` includes `hourly` |
| `hourlyRateMax` | integer | — | Maximum hourly rate (USD) — applies when `jobType` includes `hourly` |
| `fixedBudgetRanges` | array | — | Fixed budget preset ranges: `0-99`, `100-499`, `500-999`, `1000-4999`, `5000-` |
| `fixedBudgetMin` | integer | — | Custom fixed budget minimum (USD) |
| `fixedBudgetMax` | integer | — | Custom fixed budget maximum (USD) |
| `clientHires` | array | — | Client hire history: `0` (no hires), `1-9`, `10-` |
| `clientLocation` | object | — | `{ "regions": [...], "countries": [...] }` |
| `clientTimezones` | array | — | Filter by client timezone (e.g. `"(UTC+09:00) Tokyo, Osaka, Sapporo, Seoul"`) |
| `durationV3` | array | — | Project length: `week`, `month`, `semester`, `ongoing` |
| `workload` | array | — | Hours per week: `as_needed`, `part_time`, `full_time` |
| `contractToHire` | boolean | false | Include only Contract-to-Hire roles |
| `category` | string | — | Job category (see supported categories below) |
| `subcategory` | string | — | Job subcategory — only valid when `category` is also set |

#### Example Input

```json
{
  "keyword": "backend developer",
  "maxResults": 50,
  "sort": "recency",
  "contractorTier": ["IntermediateLevel", "ExpertLevel"],
  "jobType": ["hourly"],
  "hourlyRateMin": 30,
  "hourlyRateMax": 100,
  "category": "Web, Mobile & Software Dev",
  "subcategory": "Web Development",
  "durationV3": ["month", "semester", "ongoing"],
  "workload": ["full_time"]
}
````

***

### 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 (HOURLY jobs only) |
| `hourlyBudgetMax` | number | null | Max hourly rate (HOURLY jobs only) |
| `hourlyEngagementType` | string | null | `FULL_TIME`, `PART_TIME`, `AS_NEEDED` (HOURLY only) |
| `engagementDurationLabel` | string | null | Contract duration label (HOURLY only) |
| `engagementDurationWeeks` | number | null | Contract duration in weeks (HOURLY only) |
| `fixedPriceAmount` | number | null | Fixed price in USD (FIXED jobs only) |
| `fixedPriceDurationLabel` | string | null | Project duration label (FIXED only) |
| `fixedPriceDurationWeeks` | number | null | Project duration in weeks (FIXED only) |
| `createTime` | string | Job creation timestamp (ISO 8601) |
| `publishTime` | string | Job publish timestamp (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"
}
```

***

### Use Cases

- **Job hunting** — Monitor opportunities matching your exact skill set without manual searching
- **Market research** — Analyze demand for specific skills and typical budget ranges
- **Rate benchmarking** — Collect hourly rate data across experience levels and categories
- **Job alert pipelines** — Feed results into Slack, email, or a database for real-time alerts

***

### 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, … |

***

### Supported Client Locations

#### Regions

`Africa` · `Americas` · `Antarctica` · `Asia` · `Europe` · `Oceania`

#### Countries

Albania · Algeria · Argentina · Armenia · Australia · Austria · Azerbaijan · Bahrain · Bangladesh · Belgium · Bolivia · Bosnia and Herzegovina · Brazil · Bulgaria · Cambodia · Cameroon · Canada · Chile · China · Colombia · Costa Rica · Croatia · Cyprus · Czech Republic · Denmark · Dominican Republic · Ecuador · Egypt · El Salvador · Estonia · Ethiopia · Finland · France · Georgia · Germany · Ghana · Greece · Guatemala · Honduras · Hong Kong · Hungary · Iceland · India · Indonesia · Ireland · Israel · Italy · Jamaica · Japan · Jordan · Kazakhstan · Kenya · Kuwait · Kyrgyzstan · Latvia · Lebanon · Lithuania · Luxembourg · Malaysia · Malta · Mexico · Moldova · Mongolia · Montenegro · Morocco · Myanmar · Nepal · Netherlands · New Zealand · Nicaragua · Nigeria · Norway · Oman · Pakistan · Panama · Paraguay · Peru · Philippines · Poland · Portugal · Qatar · Romania · Rwanda · Saudi Arabia · Senegal · Serbia · Singapore · Slovakia · Slovenia · South Africa · South Korea · Spain · Sri Lanka · Sweden · Switzerland · Taiwan · Tanzania · Thailand · Tunisia · Turkey · Ukraine · United Arab Emirates · United Kingdom · United States · Uruguay · Uzbekistan · Venezuela · Vietnam · Zimbabwe · and more.

***

### Limitations

- Search results are limited to publicly visible job postings (visitor-level access)
- Maximum 1,000 jobs per run
- `subcategory` is only effective when `category` is also specified
- `fixedBudgetRanges` and `fixedBudgetMin`/`fixedBudgetMax` can be combined and are merged together
- Multiple timezones with 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 Job Search 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": "dTBlQU8VH7oCfi11g"
    },
    "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
