# Cheapest Upwork Jobs Scraper (`energizing_technology/cheapest-upwork-jobs-scraper`) Actor

Get the latest jobs from upwork!

- **URL**: https://apify.com/energizing\_technology/cheapest-upwork-jobs-scraper.md
- **Developed by:** [David](https://apify.com/energizing_technology) (community)
- **Categories:** Jobs, Lead generation, Automation
- **Stats:** 3 total users, 2 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

$0.001 / actor start

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 Jobs Scraper

Scrape fresh Upwork job listings with filters for posting recency, category, pricing model, client history, and budget.

This Actor runs continuously to keep results as up to date as possible. It was originally built for personal use, and the results are also made available on Apify to help offset platform and running costs.

### What this Actor does

The Actor monitors Upwork job listings and returns structured job data for recent opportunities.
It is designed for freelancers, lead generation workflows, market monitoring, and internal automation.

Typical use cases:

- Track newly posted Upwork jobs.
- Filter jobs by payment type, client quality, and budget.
- Feed results into N8N, Make, Notion, Airtable, Telegram, Slack, or custom APIs.
- Build a personal dashboard of relevant freelance opportunities.

### Input

The Actor accepts the following input fields:

```json
{
  "keywords": "javascript laravel",
  "minutes_since_last_offer": 60,
  "category": "Web Development",
  "type_of_payment": "hourly",
  "price_per_project": 500,
  "hourly_price": 25,
  "client_minimum_spent": 1000,
  "client_minimum_hire": 5
}
````

#### Input fields

- `keywords` — Keywords to find in the title. Any match will be returned
- `minutes_since_last_offer` — Maximum age of the latest job posts to include, in minutes.
- `category` — Upwork categories to target.
- `type_of_payment` — Payment model to filter by, for example `hourly` or `fixed`.
- `price_per_project` — Minimum fixed-price project budget.
- `hourly_price` — Minimum hourly rate.
- `client_minimum_spent` — Minimum total amount previously spent by the client.
- `client_minimum_hire` — Minimum number of hires completed by the client.

### Output

The Actor stores structured results in the default Apify dataset.

Each item includes:

```json
{
  "title": "Need an Apify scraper for marketplace monitoring",
  "description": "Looking for a developer to build and maintain a scraper...",
  "publishDate": "2026-05-10T10:30:00.000Z",
  "category": "Web Development",
  "hourlyBudgetMin": 20,
  "hourlyBudgetMax": 40,
  "projectBudget": null,
  "clientTotalSpent": 12000,
  "clientTotalHires": 18,
  "jobUrl": "https://www.upwork.com/jobs/~0123456789abcdef"
}
```

#### Output fields

- `title` — Job title.
- `description` — Job description snippet or full description captured by the scraper.
- `publishDate` — Publish date of the job post.
- `category` — Job category.
- `hourlyBudgetMin` — Minimum hourly budget, when available.
- `hourlyBudgetMax` — Maximum hourly budget, when available.
- `projectBudget` — Fixed project budget, when available.
- `clientTotalSpent` — Total amount previously spent by the client.
- `clientTotalHires` — Total number of hires made by the client.
- `jobUrl` — Direct URL to the Upwork job post.

### How to use

1. Open the Actor in Apify Console.
2. Enter your filter values in the input form or JSON.
3. Start the Actor.
4. Review matching jobs in the dataset.
5. Export results or connect the dataset to your workflow.

### Best for

- Freelancers watching for relevant Upwork jobs.
- Recruiters or agencies monitoring niche demand.
- Automation workflows that need fresh job leads.
- Market research on rates, budgets, and client behavior.

# Actor input Schema

## `keywords` (type: `string`):

Word(s) to find in the title. A title matching with any word will be returned

## `minutes_since_last_offer` (type: `integer`):

How long ago to search for offers. Must be less than 1440.

## `category` (type: `array`):

Select one or more categories. Leave empty to mean all.

## `type_of_payment` (type: `array`):

Select one or more payment types. Leave empty to mean all.

## `price_per_project` (type: `integer`):

Minimum fixed budget.

## `hourly_price` (type: `integer`):

Minimum hourly rate.

## `client_minimum_spent` (type: `integer`):

Minimum total amount spent by the client.

## `client_minimum_hire` (type: `integer`):

Minimum number of hires by the client.

## Actor input object example

```json
{
  "keywords": "",
  "minutes_since_last_offer": 60,
  "category": [],
  "type_of_payment": [
    "fixed_budget",
    "hourly"
  ],
  "price_per_project": 0,
  "hourly_price": 0,
  "client_minimum_spent": 0,
  "client_minimum_hire": 0
}
```

# Actor output Schema

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

No description

# 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("energizing_technology/cheapest-upwork-jobs-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {}

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

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

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

```

## CLI example

```bash
echo '{}' |
apify call energizing_technology/cheapest-upwork-jobs-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Cheapest Upwork Jobs Scraper",
        "description": "Get the latest jobs from upwork!",
        "version": "0.0",
        "x-build-id": "nQdCk3pJxqVWpxFUY"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/energizing_technology~cheapest-upwork-jobs-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-energizing_technology-cheapest-upwork-jobs-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/energizing_technology~cheapest-upwork-jobs-scraper/runs": {
            "post": {
                "operationId": "runs-sync-energizing_technology-cheapest-upwork-jobs-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/energizing_technology~cheapest-upwork-jobs-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-energizing_technology-cheapest-upwork-jobs-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": {
                    "keywords": {
                        "title": "Keywords in the title",
                        "type": "string",
                        "description": "Word(s) to find in the title. A title matching with any word will be returned",
                        "default": ""
                    },
                    "minutes_since_last_offer": {
                        "title": "Minutes since last offer",
                        "minimum": 0,
                        "maximum": 1440,
                        "type": "integer",
                        "description": "How long ago to search for offers. Must be less than 1440.",
                        "default": 60
                    },
                    "category": {
                        "title": "Category",
                        "type": "array",
                        "description": "Select one or more categories. Leave empty to mean all.",
                        "items": {
                            "type": "string",
                            "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"
                            ],
                            "enumTitles": [
                                "Accounting & Consulting",
                                "Admin Support",
                                "Customer Service",
                                "Data Science & Analytics",
                                "Design & Creative",
                                "Engineering & Architecture",
                                "IT & Networking",
                                "Legal",
                                "Sales & Marketing",
                                "Translation",
                                "Web, Mobile & Software Dev",
                                "Writing"
                            ]
                        },
                        "default": []
                    },
                    "type_of_payment": {
                        "title": "Type of payment",
                        "type": "array",
                        "description": "Select one or more payment types. Leave empty to mean all.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "fixed_budget",
                                "hourly"
                            ],
                            "enumTitles": [
                                "Fixed budget",
                                "Hourly"
                            ]
                        },
                        "default": [
                            "fixed_budget",
                            "hourly"
                        ]
                    },
                    "price_per_project": {
                        "title": "Price per project",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Minimum fixed budget.",
                        "default": 0
                    },
                    "hourly_price": {
                        "title": "Hourly price",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Minimum hourly rate.",
                        "default": 0
                    },
                    "client_minimum_spent": {
                        "title": "Client minimum spent",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Minimum total amount spent by the client.",
                        "default": 0
                    },
                    "client_minimum_hire": {
                        "title": "Client minimum hire",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Minimum number of hires by the client.",
                        "default": 0
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
