Freelancer Jobs Scraper avatar

Freelancer Jobs Scraper

Pricing

from $0.21 / 1,000 project listings

Go to Apify Store
Freelancer Jobs Scraper

Freelancer Jobs Scraper

Scrape public Freelancer.com project listings by keyword, category, or URL. Extract budgets, bids, skills, time left, and verified-payment signals.

Pricing

from $0.21 / 1,000 project listings

Rating

0.0

(0)

Developer

Hanna Nosova

Hanna Nosova

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

11 days ago

Last modified

Share

Extract public Freelancer.com project listings by keyword, category, or URL.

Use this actor to monitor new freelance projects, collect lead lists, compare budgets, track skill demand, and export structured data from public Freelancer.com job result pages.

What does Freelancer Jobs Scraper do?

Freelancer Jobs Scraper collects project cards from public Freelancer.com listing pages.

It returns clean project data such as title, project URL, description snippet, budget, bid count, skills, time left, payment verification, and source metadata.

You can scrape category pages, keyword searches, and exact URLs.

Who is it for?

  • ๐Ÿง‘โ€๐Ÿ’ป Freelancers looking for fresh project opportunities.
  • ๐Ÿข Agencies monitoring outsourcing demand.
  • ๐Ÿ“ˆ Sales teams finding companies with active project needs.
  • ๐Ÿ”Ž Recruiters tracking skill demand across public freelance projects.
  • ๐Ÿ“Š Analysts comparing budgets and proposal competition.

Why use this actor?

Manual Freelancer.com monitoring is repetitive.

This actor turns public project listings into exportable rows.

You can run it every day, connect it to alerts, or send the data to your CRM.

Input settings

SettingJSON keyType / defaultDescription
Start URLsstartUrlsarray, default [{"url":"https://www.freelancer.com/jobs/web-scraping/"}]Freelancer.com jobs, category, keyword, or paginated URLs to scrape.
Keyword searchesqueriesarray, default ["web scraping"]Keywords to search in public Freelancer projects, such as web scraping or lead generation.
Category slugscategoriesarray, default ["web-scraping"]Freelancer category slugs from URLs, for example web-scraping, python, or data-entry.
Maximum projectsmaxItemsinteger, default 20Maximum number of project listings to save across all sources.
Maximum pages per sourcemaxPagesinteger, default 2Maximum paginated Freelancer result pages to open for each source.
Maximum run timemaxRunSecondsoptional integer, 60โ€“270Safety limit for multi-page exports. The Actor preserves already saved projects and records a resume checkpoint before its deadline.
Proxy configurationproxyConfigurationobject, default {"useApifyProxy":false}Optional Apify Proxy settings. Leave empty for direct requests; use datacenter proxies first if your runs are rate limited.

Output fields

JSON keyLabelTypeDescription
titleTitlestringOutput field for title.
urlUrlstringOutput field for url.
projectIdProjectIdstring / nullOutput field for projectid.
slugSlugstring / nullOutput field for slug.
categoryCategorystring / nullOutput field for category.
descriptionSnippetDescriptionSnippetstring / nullOutput field for descriptionsnippet.
budgetBudgetstring / nullOutput field for budget.
currencyCurrencystring / nullOutput field for currency.
bidCountBidCountinteger / nullOutput field for bidcount.
averageBidAverageBidstring / nullOutput field for averagebid.
timeLeftTimeLeftstring / nullOutput field for timeleft.
postedAtPostedAtstring / nullOutput field for postedat.
skillsSkillsarrayOutput field for skills.
clientVerifiedPaymentClientVerifiedPaymentbooleanOutput field for clientverifiedpayment.
sourceUrlSourceUrlstringOutput field for sourceurl.
scrapedAtScrapedAtstringOutput field for scrapedat.

Pricing

This Actor uses Apify pay-per-event pricing. The prices below come from the current Actor pricing configuration. Apify public plans map to Store discount tiers, so the table shows both the user-facing plan context and the pricing tier name. The final price shown in Apify depends on the user account plan and any custom agreement.

EventWhat is chargedPrice
startOne-time fee charged when a run starts. Covers fixed startup cost (init, proxy warmup, first HTTP setup).$0.005
EventWhat is chargedFree / no discountStarter / BronzeScale / SilverBusiness / GoldCustom / PlatinumCustom / Diamond
itemPer Freelancer project listing produced$0.41071 / 1,000$0.35714 / 1,000$0.27857 / 1,000$0.21429 / 1,000$0.14286 / 1,000$0.1 / 1,000

Apify may also charge platform usage for compute, storage, proxies, or data transfer outside this Actor pricing. Check the Actor run and the Apify Pricing tab for the exact cost shown to your account.

Input options

You can combine multiple source types in one run.

  • startUrls accepts Freelancer.com job, category, search, and paginated URLs.
  • queries accepts keyword strings such as web scraping.
  • categories accepts category slugs such as web-scraping or python.
  • maxItems limits total saved projects.
  • maxPages limits pages opened per source.
  • maxRunSeconds is optional when you need a stricter safety budget than the platform timeout.
  • proxyConfiguration lets you enable Apify Proxy if needed.

Ready-to-run examples

View all ready-to-run examples

Example input

{
"startUrls": [
{
"url": "https://www.freelancer.com/jobs/web-scraping/"
}
],
"queries": [
"web scraping"
],
"categories": [
"web-scraping"
],
"maxItems": 20,
"maxPages": 2,
"proxyConfiguration": {
"useApifyProxy": false
}
}

Output example

{
"title": "Build a High-Speed Python Automation Bot for My Website",
"url": "https://www.freelancer.com/projects/automation/build-high-speed-python-automation",
"projectId": "build-high-speed-python-automation",
"slug": "build-high-speed-python-automation",
"category": "automation",
"descriptionSnippet": "I am looking for an experienced Python automation developer...",
"budget": "$250",
"currency": "USD",
"bidCount": 48,
"averageBid": "$250",
"timeLeft": "6 days left",
"postedAt": null,
"skills": ["Automation", "Python", "Selenium", "Web Scraping"],
"clientVerifiedPayment": true,
"sourceUrl": "https://www.freelancer.com/jobs/web-scraping/",
"scrapedAt": "2026-07-02T08:00:00.000Z"
}

How to scrape by category

  1. Open a Freelancer.com category page.
  2. Copy the slug from the URL.
  3. Add it to categories.
  4. Set maxItems.
  5. Run the actor.
  6. Export the dataset.

How to scrape by keyword

Add one or more keyword phrases to queries.

The actor creates public Freelancer jobs search URLs and extracts matching project cards.

Use specific phrases for better lead quality.

How to scrape exact URLs

Paste public Freelancer.com URLs into startUrls.

This is useful when you already have a search URL, category URL, or page 2+ URL you want to monitor.

Tips for better results

  • ๐ŸŽฏ Use specific categories for focused lead lists.
  • ๐Ÿงช Start with maxItems between 20 and 50.
  • ๐Ÿ“Œ Use scheduled runs for daily monitoring.
  • ๐Ÿงน Remove duplicate rows by url in your downstream tool.
  • ๐ŸŒ Enable proxy only if your network is rate limited.

Integrations

Send output to Google Sheets for lead review.

Send output to Airtable for enrichment.

Send output to a CRM for sales follow-up.

Send output to Slack or email for new project alerts.

Use Apify webhooks to trigger workflows after each run.

API usage

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

Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const input = {
"startUrls": [
{
"url": "https://www.freelancer.com/jobs/web-scraping/"
}
],
"queries": [
"web scraping"
],
"categories": [
"web-scraping"
],
"maxItems": 20,
"maxPages": 2
};
const run = await client.actor('fetch_cat/freelancer-jobs-scraper').call(input);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Python

from apify_client import ApifyClient
import os
client = ApifyClient(os.environ["APIFY_TOKEN"])
run = client.actor("fetch_cat/freelancer-jobs-scraper").call(run_input={
"startUrls": [
{
"url": "https://www.freelancer.com/jobs/web-scraping/"
}
],
"queries": [
"web scraping"
],
"categories": [
"web-scraping"
],
"maxItems": 20,
"maxPages": 2
})
items = client.dataset(run["defaultDatasetId"]).list_items().items
print(items)

cURL

curl -X POST "https://api.apify.com/v2/acts/fetch_cat~freelancer-jobs-scraper/runs?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"startUrls":[{"url":"https://www.freelancer.com/jobs/web-scraping/"}],"queries":["web scraping"],"categories":["web-scraping"],"maxItems":20,"maxPages":2}'

Use with AI agents via MCP

Freelancer Jobs Scraper can be used by AI assistants through the hosted Apify MCP server.

Claude Code setup

$claude mcp add --transport http apify "https://mcp.apify.com?tools=fetch_cat/freelancer-jobs-scraper"

Claude Desktop, Cursor, or VS Code JSON config

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com?tools=fetch_cat/freelancer-jobs-scraper"
}
}
}

Example prompts

  • "Run Freelancer Jobs Scraper with this input JSON and summarize the dataset."
  • "Export the latest Freelancer Jobs Scraper results to a table I can review."
  • "Schedule this Actor for monitoring and tell me what changed between runs."

Scheduling

Create a scheduled Apify task to run this actor daily or hourly.

Use a low maxItems value for frequent monitoring.

Use higher limits for periodic market research.

Data quality notes

Freelancer.com listing pages show public project summaries.

Some fields may be missing when Freelancer does not show them on a listing card.

Private or removed projects may not expose full details.

Limits

The actor extracts public listing-card data.

It does not log in.

It does not submit bids.

It does not message clients.

It does not bypass private project restrictions.

Legality

Only scrape public data.

Respect Freelancer.com's terms and applicable laws.

Do not use the data for spam.

Use reasonable run sizes and schedules.

FAQ

Is this an official Freelancer.com API?

No. This actor extracts public listing data and is not affiliated with Freelancer.com.

Can it bid on projects or message clients?

No. It only returns public project listing data.

Troubleshooting

Why did I get fewer results than maxItems?

The selected pages may contain fewer public projects, duplicates, or ended projects.

Increase maxPages or add more categories.

Why are some budgets or dates empty?

Freelancer.com does not show every value on every listing card.

The actor returns null when a public field is not visible.

Should I use a proxy?

Start without a proxy.

If you see rate limits from your network, enable Apify Proxy with a datacenter group first.

Support

Report bugs, wrong output, blocked runs, or missing fields from the Actor page. Include the Apify run ID or run URL, your input JSON, what you expected, what the Actor returned, and one reproducible public URL so the issue can be tested quickly.

Privacy and data handling

This Actor runs with Apify limited permissions and only processes data needed for the documented run. It uses job-search inputs and public job-posting results to produce the output dataset and sends requests to public Freelancer Jobs pages/endpoints; results are stored in Apify run storage for your account. FetchCat does not use your inputs or outputs for advertising, does not use them for model training, and does not retain them outside the Apify run except for transient support debugging when you explicitly share run details. You are responsible for using the Actor lawfully, respecting the target site's terms, and avoiding unnecessary personal or sensitive data in inputs.