Upwork Jobs Scraper: New Freelance Jobs with Budgets avatar

Upwork Jobs Scraper: New Freelance Jobs with Budgets

Pricing

from $1.35 / 1,000 results

Go to Apify Store
Upwork Jobs Scraper: New Freelance Jobs with Budgets

Upwork Jobs Scraper: New Freelance Jobs with Budgets

Search Upwork jobs by skill or title, like "data engineer", or paste an Upwork job search link. Each job comes with its full description, posted date, fixed or hourly budget, experience level and skills. No login. Searches with no jobs are not charged.

Pricing

from $1.35 / 1,000 results

Rating

0.0

(0)

Developer

Hydrafetch

Hydrafetch

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Security

Limited permissions

Share


Upwork Jobs Scraper at a glance

  • Input: A list of URLs, plus a cap per search.
  • Output: one row per job with 14 fields, including title, budgetType, experienceLevel, postedAt.
  • Price: $1.50 per 1,000 jobs, charged only for results.
  • You need: nothing else. No cookies, no logins, no proxies and no API keys.
  • Export: JSON, CSV, Excel or XML, or straight into your own tools with the Apify API and MCP.

What is Upwork Jobs Scraper?

Searches public Upwork job posts the way you would on upwork.com: search terms or a pasted Upwork job search link. Every row is one job: title, link, full description, posted date, fixed price or hourly range, expected duration, experience level and the skills the client listed. Newest first, up to 500 jobs per search. Job posts only, never client or freelancer names. Searches with no jobs are skipped and not charged. Built for freelance lead alerts, agency pipelines and rate research.

  • Search like on Upwork. Skills or job titles, or paste any Upwork job search link.
  • Every job. Title, full description, posted date, link and the skills the client listed.
  • Budget. Fixed price or hourly range, with experience level and expected duration.
  • No personal data. Job posts only, never client or freelancer names.

What data can I extract with Upwork Jobs Scraper?

Every result is one row per job, with these fields:

FieldWhat it holds
searchQueryThe search you asked for
searchUrlThe Upwork search the jobs came from
jobIdUpwork's job id
titleJob title
urlLink to the job
descriptionThe job description
postedAtWhen it was posted
budgetType"fixed" or "hourly"
fixedBudgetFixed price in USD, for fixed-price jobs
hourlyMinLowest hourly rate in USD, for hourly jobs
hourlyMaxHighest hourly rate in USD, for hourly jobs
durationExpected length of the work
experienceLevelEntry, Intermediate or Expert
skillsSkills the client listed

The table view in Apify shows Job, Budget, Level, Posted. The full record is in the JSON, CSV, Excel and XML exports, and over the API.

How to use Upwork Jobs Scraper

  1. Open Upwork Jobs Scraper in the Apify Console. A free Apify account is enough to try it.
  2. Paste your searches, one per line, or upload a list.
  3. Click Start. Each search is processed on its own, so one bad entry never loses the batch.
  4. Download the results as JSON, CSV or Excel, or send them to your own tools with an integration.

Input

One field: searches. Use full URLs, including https://.

maxJobsPerSearch caps how many jobs each search returns (default 50, at most 500).

Every line is checked before the run starts. Each must be job search terms like "data engineer", or a LinkedIn jobs search link; a run with any other line is refused with that line named, so a typo never costs you anything.

{
"searches": [
"data engineer"
],
"maxJobsPerSearch": 50
}

Output

A search with no jobs is skipped and costs nothing. The run log names every one that was skipped, so a short result is never a mystery.

{
"searchQuery": "data engineer",
"jobId": "2115764270844073095",
"title": "Senior Data Engineer",
"url": "https://www.upwork.com/jobs/~022115764270844073095",
"postedAt": "2026-10-29T11:15:39.170Z",
"budgetType": "fixed",
"fixedBudget": 6500,
"duration": "More than 6 months",
"experienceLevel": "Expert",
"skills": [
"Data Modeling",
"Snowflake",
"Python",
"SQL"
]
}

How much does Upwork Jobs Scraper cost?

Upwork Jobs Scraper costs $1.50 per 1,000 jobs returned, which is $0.0015 each, with no separate compute charge. 10,000 jobs cost $15.

  • You pay only for results. A search with no jobs is skipped and costs nothing.
  • Try it on the free plan. On Apify's free plan you get 50 jobs from this Actor in total, not per month, to try it out. After that a run stops and asks you to move to a paid Apify plan. Paid plans have no limit. On a paid plan, $5 covers about 3,333 jobs.
  • Volume discounts. Scale plans pay 5% less per result and Business plans 10% less.
  • Cap any run. Set a maximum cost per run in the run options and the Actor stops cleanly when it is reached.

Common use cases

  • Freelance lead alerts. Schedule a task to catch new jobs for your skills within the hour.
  • Agency pipeline. Collect jobs that match your services and route them to Slack.
  • Rate research. Compare hourly rates and budgets for a skill.
  • Demand research. See which skills clients are hiring for right now.

Integrate Upwork Jobs Scraper with other apps

Upwork Jobs Scraper works with the integrations on the Apify platform, including Make, Zapier, n8n, Google Sheets, Slack, Airbyte, Google Sheets, Slack, Airtable. Results can also go anywhere with a webhook when a run finishes.

To keep a list current, save your input as a task and put it on a schedule.

Upwork Jobs Scraper API

Run Upwork Jobs Scraper from your own code with the Apify API clients.

JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('hydrafetch/upwork-jobs-scraper').call({ searches: ["data engineer"] });
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Python

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("hydrafetch/upwork-jobs-scraper").call(run_input={"searches": ["data engineer"]})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)

AI agents can call it too. Connect Claude, Cursor or any MCP client to the Apify MCP server and add hydrafetch/upwork-jobs-scraper as a tool.

FAQ

What do I give it?

Skills or titles like "data engineer", or an Upwork job search link.

Which jobs come back?

The newest jobs matching the search, up to 500 per search.

Do I need an Upwork account?

No, it reads the public job search.

Is there a free trial?

Yes. On Apify's free plan you get 50 jobs from this Actor in total to try it, charged to your free Apify credit. After that, runs stop and ask you to move to a paid Apify plan, which has no limit.

Do I need cookies, a login or proxies?

No. Upwork Jobs Scraper works without cookies, accounts, proxies or API keys. Paste your searches and run it; everything else is handled for you.

Upwork Jobs Scraper collects only publicly available public job posts on Upwork. As with any data collection, you are responsible for how you use the results: follow the terms of the websites you work with and data protection laws such as GDPR wherever personal data is involved. If you are unsure about your use case, check with a lawyer.

Does Upwork Jobs Scraper have an API?

Yes. Every run is available through the Apify API, with the JavaScript and Python examples above, and through the Apify MCP server for AI agents.

Other Actors by Hydrafetch

  • Company Enrichment API: give it domains and get a full company record for each: name, legal name, tagline, description, logo, brand colors, fonts, industry with NAICS code, email and social profiles. Input: domains like stripe.com. One row per company; domains that return nothing are not charged.
  • Bulk Company Logo Finder: give it domains and get a direct image URL for each company's logo, with its format, width, height, dominant color and whether it is an icon or a wordmark. Input: domains like stripe.com. One row per company; domains with no logo found are not charged.
  • Website Color Palette Extractor: give it domains and get each site's design as tokens: colors by role, fonts, type scale, radius, shadows and spacing, plus a paste-ready CSS stylesheet and Tailwind CSS v4 theme to restyle an app like it. Input: domains like linear.app. One row per site; failures are not charged.
  • AI SEO & GEO Audit: give it page URLs and find out whether LLMs and AI agents can read them: a score out of 100, every check passed, warned or failed, the specific fixes, and a sample of the markdown an agent would see. Input: full URLs. One row per URL; pages we cannot read are not charged.
  • Website to Markdown: give it URLs and get each page as clean markdown for LLMs, RAG and AI agents, with navigation, cookie banners and ads removed and JavaScript pages rendered. Input: full URLs. Each row has the markdown, title, language and word count; pages that return nothing are not charged.
  • Article Extractor: give it article or blog post URLs and get the full text with its title, author, publish date, site name, language, lead image and word count. Input: full URLs. One row per article; pages with no article to extract are not charged.
  • Company Social Links Finder: give it company domains or names and get the social profiles each company links from its own website: LinkedIn, X, Facebook, Instagram, YouTube, TikTok, GitHub and Crunchbase, with handles. Input: domains like stripe.com or names like "Acme Corp, Germany". Companies with none are not charged.
  • LinkedIn Company Scraper: give it LinkedIn company page URLs or company domains and get the public profile: industry, company size, employees on LinkedIn, followers, headquarters address, founded year, specialties and logo. No login needed. One row per company; companies we cannot find are not charged.
  • Tech Stack Detector: give it domains and get the technology each site runs: CMS, ecommerce platform, analytics, tag managers, JavaScript frameworks, hosting, web server, payments, marketing automation and live chat. Input: domains like stripe.com. One row per site; sites we cannot read are not charged.
  • PDF to Markdown: give it links to PDF files and get each document as clean markdown with headings and tables intact, plus its title and word count, ready for LLMs, RAG and search. Input: full URLs to PDFs. One row per PDF; files we cannot read are not charged.
  • Website Crawler to Markdown: give it a start URL and get the site or docs section crawled into clean markdown, one row per page with its title, language, page type, depth and word count. Input: full URLs, plus how many pages to read per site. Charged per page returned; pages that return nothing are free.
  • Company Jobs Scraper: give it company domains and get every open job from the hiring platform each company uses: title, team, location, remote status, employment type, pay when listed, posting date, apply link and full description. Input: domains like stripe.com. Companies with no open roles found are not charged.
  • YouTube Channel & Videos Scraper: get any YouTube channel's details and its latest videos from a handle, link or channel id: subscribers, total videos, and per video the title, link, views, length and publish time. Up to 500 per channel. No API key or quota. Channels with no videos are not charged.
  • YouTube Transcript Scraper: give it YouTube links or video ids and get each video's full transcript, as plain text and as timestamped segments, with the title, channel and word count. Input: youtube.com or youtu.be links, or 11 character ids. One row per video; videos without a transcript are not charged.
  • Google Ads Library Scraper: give it company domains and get the Google ads each company runs, from the public Ads Transparency Center: advertiser, format, image, preview link and first and last shown dates. Input: domains like stripe.com, plus how many ads per domain. One row per ad; domains with no ads are not charged.
  • LinkedIn Ad Library Scraper: give it company names, domains or LinkedIn pages and get the ads each runs on LinkedIn: full copy, headline, call to action, image or video, run dates, impressions by country and targeting. One row per ad; companies with no ads, or none we can match, are not charged.
  • Facebook Ads Library Scraper: give it brand names, domains, Facebook pages or Ad Library links and get the ads each runs on Facebook and Instagram: copy, images, videos, carousel cards, platforms, start and end dates and active status. One row per ad; brands with no ads, or none we can match, are not charged.
  • Website Contact Details Scraper: give it company domains or names and get the emails, phone numbers, social profiles and postal address each company publishes on its own website. Input: domains like stripe.com, or names like "Acme Corp, Germany". One row per company; companies with no contact details are not charged.
  • App Store and Google Play Scraper: give it App Store or Google Play links, Apple app ids or package names and get app details plus its newest reviews: rating, rating count, installs, version, then each review's text, stars, date and developer reply. One row per review; apps not found or with no reviews are not charged.
  • Stepstone Jobs Scraper: search Stepstone Germany by job title or skill, like "data engineer", with an optional city, or paste a Stepstone search link. Each posting comes with employer, location, posted date, link and pay where shown. No login. Searches with no jobs are not charged.
  • Career Site Jobs Search: search open jobs across company career sites and hiring platforms like Workday, Greenhouse, iCIMS and Ashby by title, with location, remote and date filters. Each job has company website, platform, pay where stated and a link to the employer's posting. Empty searches are not charged.
  • Trustpilot Reviews Scraper: give it company domains and get each company's Trustpilot TrustScore, star breakdown and total reviews, plus its newest reviews with rating, text, dates and the company's reply, without reviewer names. Input: domains like stripe.com. One row per review; companies not on Trustpilot are not charged.
  • Shopify Store Products Scraper: give it Shopify store domains and get every product: title, price range, currency, variants with SKUs and stock, options, images, vendor, type, tags and description, including stores that hide their product feed. One row per product; stores with no readable products are not charged.
  • LinkedIn Jobs Scraper: search LinkedIn jobs by role or skill, like "data engineer", or by company, by name, website or LinkedIn page, filtered by location and date posted. Each posting comes with company, pay, applicants, seniority and full description. No login. Empty searches are not charged.
  • LinkedIn Hiring Signals: find companies hiring for a role, like "VP Sales OR Chief Revenue Officer", across up to 10 locations, as one row per company: openings, titles, locations, newest posting, website, industry and size. Built for sales prospecting. No login. Searches with no hiring company are not charged.
  • LinkedIn Company Posts Scraper: get the latest LinkedIn posts of any company by name, website or LinkedIn link: full text, exact post time, reactions, comment counts, and reposts marked with the original author. About 10 per company. No login or cookies. Companies with no posts are not charged.
  • LinkedIn Post & Comments Scraper: paste LinkedIn post links and get each post with its full text, exact time, author, reactions and comment count, plus the top 10 or so comments with each commenter, their LinkedIn page and reactions. No login or cookies. Posts we cannot read are not charged.
  • Google Maps Scraper with Emails: search Google Maps with a phrase like "dentists in Berlin" or a Maps link and get every place: name, address, phone, website, rating, reviews and coordinates, up to 120 per search. Turn on contacts to add emails and socials from each place's own website, charged only when found.
  • Amazon Product Scraper: search Amazon.com with terms like "wireless earbuds", or give it product links or ASINs, and get each product's US price, rating, review count, sales in the past month and seller, with the full product page on request. One row per product; searches with no products are not charged.
  • News Scraper with Full Article Text: search the news for any topic, like "stripe funding", and get recent articles with their full text as clean markdown, the real publisher link, source, author and publish date. Input: search queries, plus how many articles and how far back. Queries with no readable articles are not charged.
  • News Search: Headlines & Links: search the news for any topic, in any language, and get recent headlines with the real publisher link, source, date and summary. Several major news sources, merged and de-duplicated. Input: search queries, how many headlines and how far back. Queries with no news are not charged.
  • Company News Monitor: paste a list of company names and get each one's recent news: headline, real publisher link, source, date and summary. Each company is matched by its exact name, so similarly named companies are left out. Companies with no recent news are not charged.
  • Company Ads Across Google, LinkedIn, Meta and TikTok: give it company domains and get the ads each company runs on Google, LinkedIn, Facebook and Instagram, and TikTok in one dataset with the same columns: platform, headline, copy, image or video, link and dates. One row per ad, plus a small charge per domain checked.
  • TikTok Ad Library Scraper: get a company's TikTok ads by name or website, with reach per country split by age and gender, targeting, sponsor and dates, from TikTok's public ad library for Europe. No login. Companies with no TikTok ads are not charged.
  • Company Website Finder: give it company names, optionally with the country after a comma, and get each company's official website and domain, checked against the company's own homepage so directories never slip through, with a confidence level. One row per company; names we cannot confirm are not charged.
  • Google Trends Scraper: give it search terms and get Google Trends data: interest over time with a 0 to 100 value per point, interest by country or region, and top and rising related queries. Input: one search per line, up to 5 comma-separated terms to compare. Searches with no data are not charged.
  • Reddit Scraper: give it a subreddit like r/startups, a user, a post link or words to search Reddit, and get posts with title, author, subreddit, score, comment count, date, flair, link and full text. Input: one per line, with sort, time window and up to 500 posts each. Inputs with no posts are not charged.
  • Booking.com Reviews Scraper: give it Booking.com hotel links and get the newest guest reviews: score, date, title, what guests liked and disliked, language, country, room type, nights and check-in date, with the hotel name and overall score on every row. One row per review; hotels with no reviews are not charged.
  • Website Screenshot API: give it URLs and get a screenshot of each page as a hosted PNG link, of the first screen or the full page, rendered in a real browser, with its width and height. Input: full URLs. One row per screenshot; pages that fail to load are not charged.
  • LinkedIn People Search: find the people in a role at any company: give company names, websites or LinkedIn pages plus roles like "VP Sales", and get each person's name, headline, profile link and location, with the employer confirmed. No login or cookies. Optional public profile details. Companies with no matches are free.

Terms of use

Your results are yours. We claim no rights in the inputs you submit or the data you get back. Full terms: hydrafetch.com/terms

Your feedback

Something not working, or a field you need? Open an issue on the Issues tab with the input you used, and we read every one.