# Upwork Jobs Scraper - Search & All Current Freelance Jobs (`lentic_clockss/upwork-jobs-scraper`) Actor

Scrape public Upwork freelance jobs from the all-current feed or optional English keywords. Export titles, budget, skills, client signals, and job links with residential-proxy support.

- **URL**: https://apify.com/lentic\_clockss/upwork-jobs-scraper.md
- **Developed by:** [kane liu](https://apify.com/lentic_clockss) (community)
- **Categories:** Jobs, Lead generation, Developer tools
- **Stats:** 1 total users, 1 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Upwork Jobs Scraper - Search & All Current Freelance Jobs

**Collect current public Upwork jobs without logging in.** Start from the unfiltered all-jobs feed, or narrow the run with optional keywords. Export structured titles, budgets, skills, proposal ranges, and client signals into an Apify Dataset you can download as Excel, CSV, or JSON.

This Actor is a thin Apify client: scraping runs on a Cloud Run worker (Patchright headed Chrome + CapSolver Cloudflare + Apify RESIDENTIAL). Dataset field names stay compatible with previous builds.

> **Worker URL is config, not code:** the Actor reads `WORKER_BASE_URL` from Actor environment variables (plus optional per-run `workerBaseUrl`). Migrating the worker host means updating `WORKER_BASE_URL` (and `WORKER_AUTH` if the API key changes) in Apify Console — no Actor code change required. Set `WORKER_PROVIDES_PROXY=1` when the worker supplies its own `PROXY_URL` instead of Apify RESIDENTIAL.

There are **no preset search keywords**. Empty input means “all current job types on the public search feed.” Optional keywords only apply when you enter them.

### What you can do with it

#### 1. Pull the latest all-jobs feed for market scanning

**In plain English:** Watch what freelancers and agencies are hiring for right now — without typing a keyword first.

To run this, all you fill in are a few fields in the Apify input form:

| Field | What to enter |
| --- | --- |
| Keywords | Leave empty |
| Max items | e.g. `20` |
| Sort | `recency` |

Click **Start**. The Actor calls the Cloud Run worker, which opens the public Upwork search surface, solves the Cloudflare challenge path, and writes the newest public listings into a clean table:

| Title | Job type | Budget | Proposals | Client country |
| --- | --- | --- | --- | --- |
| Go High Level Specialist | hourly | $15–$25/hr | 5 to 10 | United States |
| Real Estate Listing Marketing Strategist | fixed | $500 | Less than 5 | Canada |

Every row has the fields you need for research or outreach lists. Download as Excel, CSV, or JSON, or pipe the Dataset into Make / n8n / Zapier.

<details>
<summary>For developers: JSON input/output</summary>

```json
Input:
{
  "maxItems": 20,
  "sort": "recency",
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": ["RESIDENTIAL"],
    "apifyProxyCountry": "US"
  }
}

Output (one Dataset item, fields vary by public page layout):
{
  "jobId": "~012345678901234567",
  "title": "Build n8n AI Automation Workflow",
  "jobUrl": "https://www.upwork.com/jobs/~012345678901234567",
  "searchKeyword": "all",
  "jobType": "hourly",
  "hourlyMin": 25,
  "hourlyMax": 50,
  "proposalsRaw": "5 to 10",
  "proposalsMid": 8,
  "skills": ["n8n", "Automation"],
  "clientCountry": "United States",
  "paymentVerified": true
}
```

</details>

#### 2. Track demand for a niche skill or tool

**In plain English:** See how many public jobs mention tools like `n8n`, `LangChain`, or `Shopify` — and what clients are offering.

| Field | What to enter |
| --- | --- |
| Keywords | e.g. `n8n automation` |
| Max pages per keyword | `1`–`3` |
| Max items | e.g. `50` |

You get titles, skills, budgets, proposal pressure, and client signals so you can compare niches without manual copying.

<details>
<summary>For developers: keyword input</summary>

```json
{
  "keywords": ["n8n automation", "LangChain"],
  "maxPagesPerKeyword": 1,
  "maxItems": 50,
  "sort": "recency"
}
```

</details>

#### 3. Build agency lead lists from public budgets and client spend

**In plain English:** Filter for jobs that show public budget and client country/spend signals, then export for CRM or Sheets.

| Field | What to enter |
| --- | --- |
| Keywords | Optional niche phrases |
| Scrape details | `true` when you need extra public detail fields |
| Max detail items | e.g. `5` |

Detail enrichment visits a bounded number of public job pages. It is slower; keep `maxDetailItems` small on first runs.

#### 4. Feed freelancing alerts into automation tools

**In plain English:** Run on a schedule and push new Upwork listings into Slack, Telegram, Google Sheets, or a database.

| Platform | How to connect |
| --- | --- |
| Make.com | Apify → Run Actor → `lentic_clockss/upwork-jobs-scraper` |
| n8n | Apify node → Run Actor |
| Zapier | Apify integration → Run Actor |
| Python / JS | Apify client SDK (example below) |

#### 5. Compare hourly vs fixed-price competition

**In plain English:** Capture `jobType`, rate ranges, fixed prices, and proposal midpoints so you can estimate competition density without opening dozens of browser tabs.

### More Actors like this

Need another job board or a different vertical? Use a **dedicated Actor** below for structured fields. Use this Actor for **Upwork** public freelance job search and the all-current feed.

#### Similar jobs & freelance Actors

- [LinkedIn Jobs Scraper](https://apify.com/lentic_clockss/linkedin-jobs-scraper)
- [Indeed Jobs Scraper](https://apify.com/lentic_clockss/indeed-jobs-scraper)
- [Glassdoor Scraper](https://apify.com/lentic_clockss/glassdoor-scraper)
- [Fiverr Gigs Scraper](https://apify.com/lentic_clockss/fiverr-programming-tech-gigs-scraper)
- [Freelancer.com Scraper](https://apify.com/lentic_clockss/freelancer-scraper)
- [Himalayas Jobs Scraper](https://apify.com/lentic_clockss/himalayas-jobs-scraper)
- [RemoteOK Jobs Scraper](https://apify.com/lentic_clockss/remoteok-all-jobs-scraper)
- [Jobicy Remote Jobs Scraper](https://apify.com/lentic_clockss/jobicy-remote-jobs-scraper)
- [SEEK Jobs Scraper](https://apify.com/lentic_clockss/seek-scraper)
- [Bayt Jobs Scraper](https://apify.com/lentic_clockss/bayt-scraper)

#### Prefer another specialized scraper?

If your target has a specialized Actor below, use that first — usually cheaper and more structured than a generic scrape.

**E-commerce**

- [Walmart Product Scraper](https://apify.com/lentic_clockss/walmart-scraper)
- [Amazon Search Scraper](https://apify.com/lentic_clockss/amazon-search-results-collector)
- [Shopee Search Scraper](https://apify.com/lentic_clockss/shopee-search-scraper)
- [Etsy Scraper](https://apify.com/lentic_clockss/etsy-scraper)
- [SHEIN Product Scraper](https://apify.com/lentic_clockss/shein-scraper)
- [1688 Global Product Search Scraper](https://apify.com/lentic_clockss/1688-global-scraper)
- [Allegro Scraper](https://apify.com/lentic_clockss/allegro-scraper)

**Real Estate**

- [Zillow & Zumper Scraper](https://apify.com/lentic_clockss/us-real-estate-scraper)
- [Realtor.com Scraper](https://apify.com/lentic_clockss/realtor-com-scraper)
- [Apartments.com Rental Scraper](https://apify.com/lentic_clockss/apartments-com-rental-scraper)
- [Rightmove Scraper](https://apify.com/lentic_clockss/rightmove-property-scraper)
- [Idealista Scraper](https://apify.com/lentic_clockss/idealista-scraper)
- [realestate.com.au Scraper](https://apify.com/lentic_clockss/realestate-com-au-scraper)

**Travel & Stays**

- [Booking.com Hotels Scraper](https://apify.com/lentic_clockss/booking-hotels-scraper)
- [Airbnb Listings Scraper](https://apify.com/lentic_clockss/airbnb-listings-scraper)
- [Expedia Scraper](https://apify.com/lentic_clockss/expedia-scraper)
- [TripAdvisor Scraper](https://apify.com/lentic_clockss/tripadvisor-scraper)

**Social & Content**

- [YouTube Research Scraper](https://apify.com/lentic_clockss/youtube-research-scraper)
- [TikTok Scraper](https://apify.com/lentic_clockss/tiktok-scraper)
- [Reddit Scraper](https://apify.com/lentic_clockss/reddit-scraper)
- [YouTube Shorts Scraper](https://apify.com/lentic_clockss/youtube-shorts-scraper)

**Ads Intelligence**

- [Facebook Ad Library Scraper](https://apify.com/lentic_clockss/facebook-ad-library-scraper)
- [TikTok Ads Scraper](https://apify.com/lentic_clockss/tiktok-ads-top-ads-actor)

**Local & Maps**

- [Google Maps Scraper](https://apify.com/lentic_clockss/google-maps-scraper)

**General Tools**

- [Stealth Web Scraper](https://apify.com/lentic_clockss/stealth-web-scraper)
- [Email Risk Validator](https://apify.com/lentic_clockss/email-risk-validator)
- [Phone Number Intelligence](https://apify.com/lentic_clockss/phone-number-intelligence)

→ See the full catalog in [Related Actors](#related-actors) below, or browse [apify.com/lentic\_clockss](https://apify.com/lentic_clockss).

***

### How to use (no code required)

1. Click **Try for free**
2. Leave **keywords** empty for the full public feed, or add up to 10 phrases
3. Set **maxItems** for cost control (start with `5`–`20`)
4. Keep **Apify RESIDENTIAL proxy** enabled (required)
5. Click **Start** and open the Dataset

That's the whole workflow: choose scope, start, download. The free monthly Apify credit is enough for small canaries before you scale.

**Owner / operator note:** configure the `CAPSOLVER_API_KEY` secret once in Actor settings. Never put the key in run input.

### What you get back

Each Dataset item can include:

- **Job identity** — job ID, title, description snippet, canonical URL
- **Search context** — keyword used (`all` when unfiltered), page, source search URL
- **Budget** — hourly min/max or fixed price when public
- **Competition** — proposal range text + normalized midpoint
- **Skills & level** — public skill tags and experience level when present
- **Client signals** — country, total spend bucket, hire rate, payment-verified flag when public
- **Timestamp** — collection time

Missing public values stay empty/`null`. The Actor does not invent data.

Run artifacts in Key-Value Store:

| Artifact | What it is |
| --- | --- |
| `INPUT_ECHO` | Normalized input (`presetKeywords: []`, collection scope) |
| `RUN_SUMMARY` | Pages succeeded/blocked, proxy mode, counts |
| `ERROR_SUMMARY` | Structured failure if the run cannot collect trustworthy rows |

### Data source and boundary

| Mode | Source |
| --- | --- |
| All current jobs | Public Upwork search feed without `q` |
| Keyword search | Public Upwork search with optional `q` |
| Optional details | Public job detail pages (bounded) |

- Browser path: Patchright Chrome + sticky **Apify RESIDENTIAL** proxy
- Cloudflare Challenge solving: CapSolver `AntiCloudflareTask` (same sticky proxy + user agent)
- No login, no messaging, no private account data
- Page structure and anti-bot rules change; start small and keep budgets bounded

#### Free Apify plan limits (set by this Actor's developer)

| Limit | Free Apify plan | Paid Apify plan |
| --- | --- | --- |
| Runs of this Actor | **10 runs total** | Unlimited |
| Jobs per run (`maxItems`) | **Up to 500** | Up to 500 |

When the run cap is hit, the run finishes with a clear status message — not an Apify platform error.

### Pricing

**Pay per event.** No subscription.

**Free Apify plan:** up to **10 runs** of this Actor and **500 jobs per run**. Upgrade to a paid Apify plan for unlimited runs. (Limits set by the Actor developer.)

| Event | Price | When charged |
| --- | ---: | --- |
| `apify-actor-start` | **$0.005** | Once when a normal run starts |
| `apify-default-dataset-item` | **$2.00 / 1,000** ($0.002 each) | Each Dataset item written |

**User pays platform usage costs: Yes** (compute, residential proxy, etc. billed to the user when platform billing is active).

**Real-world examples:**

| Scenario | Approx. product charge |
| --- | --- |
| Canary: 5 jobs | $0.005 + 5 × $0.002 = **$0.015** |
| Daily niche scan: 100 jobs | $0.005 + $0.20 = **$0.205** |
| 1,000 jobs | $0.005 + $2.00 = **$2.005** |

Cost scales mostly with results. Platform usage (especially residential proxy) is separate and depends on run duration/memory.

### Live View endpoints

When Standby / Live View is enabled, the service exposes a small OpenAPI surface:

| Endpoint | Purpose |
| --- | --- |
| `GET /` | Readiness |
| `GET /health` | Health |
| `GET /input-example` | Low-cost example input |
| `GET /openapi.json` | Deployed OpenAPI document |

Collection still runs through a normal Actor run — Live View does not scrape Upwork by itself.

### Connect from code

Actor ID: `lentic_clockss/upwork-jobs-scraper`

```python
from apify_client import ApifyClient

client = ApifyClient("<APIFY_TOKEN>")
run = client.actor("lentic_clockss/upwork-jobs-scraper").call(
    run_input={
        "maxItems": 20,
        "sort": "recency",
        "proxyConfiguration": {
            "useApifyProxy": True,
            "apifyProxyGroups": ["RESIDENTIAL"],
            "apifyProxyCountry": "US",
        },
    }
)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item.get("title"), item.get("jobUrl"), item.get("salary"))
```

### Input reference

| Parameter | Type | Default | Description |
| --- | --- | --- | --- |
| `keywords` | string\[] | `[]` | Optional search phrases (max 10). Empty = all-current feed. |
| `maxPagesPerKeyword` | integer | `1` | Pages per keyword (1–10). |
| `maxItems` | integer | `20` | Max deduplicated jobs (1–500). Free Apify plan: also capped at 500/run and **10 total runs** of this Actor. |
| `sort` | string | `recency` | `recency` or `relevance`. |
| `scrapeDetails` | boolean | `false` | Enrich from public detail pages. |
| `maxDetailItems` | integer | `5` | Max detail pages when enrichment is on. |
| `proxyConfiguration` | object | RESIDENTIAL US | Apify RESIDENTIAL sticky proxy required. |
| `timeoutSecs` | integer | `90` | Browser navigation timeout (30–180). |
| `debug` | boolean | `false` | Bounded diagnostics only (no raw HTML stored). |
| `workerBaseUrl` | string | *(env)* | Optional per-run override of the Cloud Run worker origin. Default: Actor env `WORKER_BASE_URL`. |

Aliases such as putting CapSolver keys in input are not supported. Use the Actor secret `CAPSOLVER_API_KEY`.

### FAQ

**Do I need an Upwork account?**\
No. The Actor only reads public pages.

**Are there preset keywords?**\
No. Empty keywords collect the unfiltered public feed.

**Why is residential proxy required?**\
Upwork is protected by Cloudflare. CapSolver Challenge solving and the browser must share a sticky Apify RESIDENTIAL session.

**What if a page is blocked?**\
The run fails closed when it cannot produce trustworthy rows. It does not fake an empty success after hard blocks.

**Can I scrape private proposals or messages?**\
No.

**How fresh is the data?**\
As fresh as the public search page at run time.

**I'm on the free Apify plan — are there limits?**\
Yes. Free Apify plan users get **10 runs** of this Actor and **up to 500 jobs per run**. These limits are set by the Actor developer (not Apify). When you hit the run cap, the run finishes with a clear status message — it is not a platform bug. Upgrade to a paid Apify plan for unlimited runs.

### When to use something else

| If you need… | Use something else |
| --- | --- |
| RemoteOK / Himalayas / Jobicy job boards | Our dedicated job-board Actors |
| Freelancer profile / portfolio mining at scale | A profile-focused scraper |
| Applying to jobs or messaging clients | Manual Upwork or official APIs |

***

### Related Actors

All **77** public Actors from \[[lentic\_clockss](https://apify.com/lentic_clockss)]. Click a name to open the Store detail page.

#### Jobs & Freelance

- [LinkedIn Jobs Scraper](https://apify.com/lentic_clockss/linkedin-jobs-scraper)
- [Bayt Jobs Scraper](https://apify.com/lentic_clockss/bayt-scraper)
- [Fiverr Gigs Scraper](https://apify.com/lentic_clockss/fiverr-programming-tech-gigs-scraper)
- [Freelancer.com Scraper](https://apify.com/lentic_clockss/freelancer-scraper)
- [Glassdoor Scraper](https://apify.com/lentic_clockss/glassdoor-scraper)
- [Himalayas Jobs Scraper](https://apify.com/lentic_clockss/himalayas-jobs-scraper)
- [Indeed Jobs Scraper](https://apify.com/lentic_clockss/indeed-jobs-scraper)
- [Jobicy Remote Jobs Scraper](https://apify.com/lentic_clockss/jobicy-remote-jobs-scraper)
- [RemoteOK Jobs Scraper](https://apify.com/lentic_clockss/remoteok-all-jobs-scraper)
- [SEEK Jobs Scraper](https://apify.com/lentic_clockss/seek-scraper)
- [Upwork Jobs Scraper](https://apify.com/lentic_clockss/upwork-jobs-scraper)

#### Real Estate

- [Zillow & Zumper Scraper](https://apify.com/lentic_clockss/us-real-estate-scraper)
- [Realtor.com Scraper](https://apify.com/lentic_clockss/realtor-com-scraper)
- [99.co Scraper](https://apify.com/lentic_clockss/ninetynine-co-sg-scraper)
- [Realtor.com Agents Scraper](https://apify.com/lentic_clockss/realtor-com-agents-scraper)
- [Apartments.com Rental Scraper](https://apify.com/lentic_clockss/apartments-com-rental-scraper)
- [Bayut Scraper](https://apify.com/lentic_clockss/bayut-uae-scraper)
- [Craigslist Housing Scraper](https://apify.com/lentic_clockss/craigslist-housing-scraper)
- [Daft.ie Scraper](https://apify.com/lentic_clockss/daft-property-scraper)
- [Dot Property Scraper](https://apify.com/lentic_clockss/dot-property-th-scraper)
- [FINN.no Scraper](https://apify.com/lentic_clockss/finn-scraper)
- [Funda Scraper](https://apify.com/lentic_clockss/funda-scraper)
- [Hepsiemlak Scraper](https://apify.com/lentic_clockss/hepsiemlak-scraper)
- [Idealista Scraper](https://apify.com/lentic_clockss/idealista-scraper)
- [Immobiliare.it Scraper](https://apify.com/lentic_clockss/immobiliare-property-scraper)
- [ImmoScout24 Scraper](https://apify.com/lentic_clockss/immobilienscout24-scraper)
- [Naver Land Scraper](https://apify.com/lentic_clockss/naver-land-scraper)
- [OpenSooq Scraper](https://apify.com/lentic_clockss/opensooq-real-estate-scraper)
- [Otodom Scraper](https://apify.com/lentic_clockss/otodom-scraper)
- [Property Finder Scraper](https://apify.com/lentic_clockss/property-finder-uae-scraper)
- [PropertyGuru Scraper](https://apify.com/lentic_clockss/propertyguru-sg-scraper)
- [realestate.com.au Scraper](https://apify.com/lentic_clockss/realestate-com-au-scraper)
- [Realtor.ca Scraper](https://apify.com/lentic_clockss/realtor-ca-scraper)
- [Rightmove Scraper](https://apify.com/lentic_clockss/rightmove-property-scraper)
- [SeLoger Scraper](https://apify.com/lentic_clockss/seloger-property-scraper)
- [SUUMO Scraper](https://apify.com/lentic_clockss/suumo-property-scraper)
- [Zillow Group Scraper](https://apify.com/lentic_clockss/zillow-group-scraper)

#### E-commerce

- [Shopee Search Scraper](https://apify.com/lentic_clockss/shopee-search-scraper)
- [E-commerce Scraper](https://apify.com/lentic_clockss/ecommerce-scraper)
- [1688 Global Product Search Scraper](https://apify.com/lentic_clockss/1688-global-scraper)
- [Allegro Scraper](https://apify.com/lentic_clockss/allegro-scraper)
- [Amazon Search Scraper](https://apify.com/lentic_clockss/amazon-search-results-collector)
- [ASOS Product Scraper](https://apify.com/lentic_clockss/asos-scraper)
- [Cdiscount Product Scraper](https://apify.com/lentic_clockss/cdiscount-scraper)
- [Costco Product Scraper](https://apify.com/lentic_clockss/costco-scraper)
- [Coupang Product Scraper](https://apify.com/lentic_clockss/coupang-scraper)
- [Etsy Scraper](https://apify.com/lentic_clockss/etsy-scraper)
- [Lazada Scraper](https://apify.com/lentic_clockss/lazada-ph-search-results-collector)
- [MercadoLibre Scraper](https://apify.com/lentic_clockss/mercadolibre-scraper)
- [Mercari Japan Scraper](https://apify.com/lentic_clockss/mercari-scraper)
- [Rakuten Japan Scraper](https://apify.com/lentic_clockss/rakuten-scraper)
- [SHEIN Product Scraper](https://apify.com/lentic_clockss/shein-scraper)
- [Target Product Scraper](https://apify.com/lentic_clockss/target-scraper)
- [Temu Product Scraper](https://apify.com/lentic_clockss/temu-scraper)
- [Walmart Product Scraper](https://apify.com/lentic_clockss/walmart-scraper)

#### Travel & Stays

- [Booking.com & Airbnb Scraper](https://apify.com/lentic_clockss/booking-airbnb-scraper)
- [Agoda Scraper](https://apify.com/lentic_clockss/agoda-scraper)
- [Airbnb Listings Scraper](https://apify.com/lentic_clockss/airbnb-listings-scraper)
- [Booking.com Hotels Scraper](https://apify.com/lentic_clockss/booking-hotels-scraper)
- [Despegar Scraper](https://apify.com/lentic_clockss/despegar-scraper)
- [Expedia Scraper](https://apify.com/lentic_clockss/expedia-scraper)
- [Traveloka Scraper](https://apify.com/lentic_clockss/traveloka-scraper)
- [Travelstart Flights Scraper](https://apify.com/lentic_clockss/travelstart-scraper)
- [Trip.com Scraper](https://apify.com/lentic_clockss/trip-com-scraper)
- [TripAdvisor Scraper](https://apify.com/lentic_clockss/tripadvisor-scraper)

#### Social & Content

- [TikTok Scraper](https://apify.com/lentic_clockss/tiktok-scraper)
- [Reddit Scraper](https://apify.com/lentic_clockss/reddit-scraper)
- [YouTube Shorts Scraper](https://apify.com/lentic_clockss/youtube-shorts-scraper)
- [YouTube Research Scraper](https://apify.com/lentic_clockss/youtube-research-scraper)
- [Hacker News Scraper](https://apify.com/lentic_clockss/hacker-news-scraper)

#### Ads Intelligence

- [Facebook Ad Library Scraper](https://apify.com/lentic_clockss/facebook-ad-library-scraper)
- [Google Ads Transparency VN](https://apify.com/lentic_clockss/google-ads-transparency-center-vn)
- [TikTok Ads Scraper](https://apify.com/lentic_clockss/tiktok-ads-top-ads-actor)

#### Local & Maps

- [Google Maps Scraper](https://apify.com/lentic_clockss/google-maps-scraper)

#### General Tools

- [Stealth Web Scraper](https://apify.com/lentic_clockss/stealth-web-scraper)
- [Email Risk Validator](https://apify.com/lentic_clockss/email-risk-validator)
- [Phone Number Intelligence](https://apify.com/lentic_clockss/phone-number-intelligence)

→ Browse the full profile: [apify.com/lentic\_clockss](https://apify.com/lentic_clockss)

# Actor input Schema

## `keywords` (type: `array`):

Optional Upwork job search phrases. Leave empty to collect the unfiltered all-jobs feed.

## `maxPagesPerKeyword` (type: `integer`):

Maximum number of Upwork result pages to visit for each keyword.

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

Maximum number of deduplicated job records across all keywords (1–500). Free Apify plan users: also limited to 10 total runs of this Actor (Actor developer policy).

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

Sort Upwork search results by newest jobs or relevance.

## `scrapeDetails` (type: `boolean`):

Visit a bounded number of public job detail pages to fill additional rate, proposal, and client fields when available. This is slower and may return fewer anonymous fields.

## `maxDetailItems` (type: `integer`):

Maximum job detail pages to visit when detail enrichment is enabled.

## `proxyConfiguration` (type: `object`):

Apify RESIDENTIAL sticky proxy minted by the Actor and passed to the Cloud Run worker (required for CapSolver + Patchright).

## `timeoutSecs` (type: `integer`):

Maximum browser navigation timeout in seconds.

## `debug` (type: `boolean`):

Save bounded diagnostics for blocked or unrecognized pages. Enable only while troubleshooting.

## `workerBaseUrl` (type: `string`):

Override worker origin for this run. Default: Actor env WORKER\_BASE\_URL. Production migrations should update WORKER\_BASE\_URL in Actor settings (no code change).

## Actor input object example

```json
{
  "keywords": [],
  "maxPagesPerKeyword": 1,
  "maxItems": 20,
  "sort": "recency",
  "scrapeDetails": false,
  "maxDetailItems": 5,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "US"
  },
  "timeoutSecs": 90,
  "debug": false
}
```

# Actor output Schema

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

Deduplicated public Upwork job records.

## `runSummary` (type: `string`):

Acquisition, parsing, deduplication, and proxy metrics.

## `inputEcho` (type: `string`):

Normalized non-secret input.

## `errorSummary` (type: `string`):

Present when the run fails before producing a valid Upwork result surface.

# 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 = {
    "keywords": []
};

// Run the Actor and wait for it to finish
const run = await client.actor("lentic_clockss/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 = { "keywords": [] }

# Run the Actor and wait for it to finish
run = client.actor("lentic_clockss/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 '{
  "keywords": []
}' |
apify call lentic_clockss/upwork-jobs-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/acts/c6xxPeWK6nzBnvc0r/builds/IgrKx8QubEewoohQD/openapi.json
