Freelancer Jobs Scraper
Pricing
from $0.21 / 1,000 project listings
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
11 days ago
Last modified
Categories
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
| Setting | JSON key | Type / default | Description |
|---|---|---|---|
| Start URLs | startUrls | array, default [{"url":"https://www.freelancer.com/jobs/web-scraping/"}] | Freelancer.com jobs, category, keyword, or paginated URLs to scrape. |
| Keyword searches | queries | array, default ["web scraping"] | Keywords to search in public Freelancer projects, such as web scraping or lead generation. |
| Category slugs | categories | array, default ["web-scraping"] | Freelancer category slugs from URLs, for example web-scraping, python, or data-entry. |
| Maximum projects | maxItems | integer, default 20 | Maximum number of project listings to save across all sources. |
| Maximum pages per source | maxPages | integer, default 2 | Maximum paginated Freelancer result pages to open for each source. |
| Maximum run time | maxRunSeconds | optional integer, 60โ270 | Safety limit for multi-page exports. The Actor preserves already saved projects and records a resume checkpoint before its deadline. |
| Proxy configuration | proxyConfiguration | object, 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 key | Label | Type | Description |
|---|---|---|---|
title | Title | string | Output field for title. |
url | Url | string | Output field for url. |
projectId | ProjectId | string / null | Output field for projectid. |
slug | Slug | string / null | Output field for slug. |
category | Category | string / null | Output field for category. |
descriptionSnippet | DescriptionSnippet | string / null | Output field for descriptionsnippet. |
budget | Budget | string / null | Output field for budget. |
currency | Currency | string / null | Output field for currency. |
bidCount | BidCount | integer / null | Output field for bidcount. |
averageBid | AverageBid | string / null | Output field for averagebid. |
timeLeft | TimeLeft | string / null | Output field for timeleft. |
postedAt | PostedAt | string / null | Output field for postedat. |
skills | Skills | array | Output field for skills. |
clientVerifiedPayment | ClientVerifiedPayment | boolean | Output field for clientverifiedpayment. |
sourceUrl | SourceUrl | string | Output field for sourceurl. |
scrapedAt | ScrapedAt | string | Output 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.
| Event | What is charged | Price |
|---|---|---|
start | One-time fee charged when a run starts. Covers fixed startup cost (init, proxy warmup, first HTTP setup). | $0.005 |
| Event | What is charged | Free / no discount | Starter / Bronze | Scale / Silver | Business / Gold | Custom / Platinum | Custom / Diamond |
|---|---|---|---|---|---|---|---|
item | Per 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.
startUrlsaccepts Freelancer.com job, category, search, and paginated URLs.queriesaccepts keyword strings such asweb scraping.categoriesaccepts category slugs such asweb-scrapingorpython.maxItemslimits total saved projects.maxPageslimits pages opened per source.maxRunSecondsis optional when you need a stricter safety budget than the platform timeout.proxyConfigurationlets you enable Apify Proxy if needed.
Ready-to-run examples
- Freelancer Lead Generation Projects
- Freelancer Ai Ml Project Demand
- Freelancer Data Entry Jobs
- Freelancer Python Automation Projects
- Freelancer Web Scraping Jobs Leads
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
- Open a Freelancer.com category page.
- Copy the slug from the URL.
- Add it to
categories. - Set
maxItems. - Run the actor.
- 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
maxItemsbetween 20 and 50. - ๐ Use scheduled runs for daily monitoring.
- ๐งน Remove duplicate rows by
urlin 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 ApifyClientimport osclient = 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().itemsprint(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.
Related actors
- Ashby Jobs Scraper
- ATS Jobs Scraper for 6 ATS Sources
- Built In Jobs Scraper
- Greenhouse Jobs Scraper
- Jobicy Remote Jobs Scraper
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.