Freelancer Jobs Scraper
Pricing
Pay per event
Freelancer Jobs Scraper
Scrape public Freelancer.com projects and job listings by keyword, category, budget, bids, skills, and recency for lead generation.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Stas Persiianenko
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Scrape public Freelancer.com project and job listings from search, skill, and category pages.
Use this actor when you need structured freelance lead data from Freelancer.com without manually opening dozens of search pages.
What does Freelancer Jobs Scraper do?
Freelancer Jobs Scraper extracts public project cards from Freelancer.com job listing pages.
It saves one dataset row per project.
Each row can include the project title, URL, description preview, visible budget, parsed budget range, bid count, time-left label, skill tags, source URL, and scrape timestamp.
The actor is designed for public search pages such as:
https://www.freelancer.com/jobs/https://www.freelancer.com/jobs/python/https://www.freelancer.com/jobs/web-scraping/- Freelancer search URLs generated from keywords
Who is it for?
This actor is useful for teams that monitor freelance project demand.
- π§βπΌ Agencies can find new clients looking for specific services.
- π§βπ» Freelancers can track projects in their niche.
- π Market researchers can measure demand for skills and categories.
- π§² Sales teams can discover public project leads.
- π§ͺ Product teams can watch emerging service requests.
- π Analysts can export recurring job-market snapshots.
Why use this actor?
Freelancer.com has many public project listings, but manual monitoring is slow.
This actor turns those pages into a structured dataset.
You can run it on a schedule, export results, connect it to automations, or call it from your own application.
What data can you extract?
The actor extracts the fields visible on public listing cards.
| Field | Description |
|---|---|
title | Project title shown on Freelancer |
url | Absolute project URL |
projectId | Project URL slug |
description | Listing-card description preview |
budget | Raw visible budget or hourly rate text |
currency | Parsed currency symbol or code |
minBudget | Parsed lower budget value |
maxBudget | Parsed upper budget value |
budgetType | fixed, hourly, or unknown |
averageBid | Parsed visible average bid when Freelancer shows it |
bidCount | Visible number of bids |
timeLeft | Time-left label shown on the card |
skills | Public skill tags |
categorySlug | Category segment from project URL |
sourceUrl | Search/listing page that produced the row |
scrapedAt | ISO timestamp when the row was saved |
How much does it cost to scrape Freelancer jobs?
The actor uses pay-per-event pricing.
You pay a small start fee per run and a per-result fee for each Freelancer project saved.
Platform pricing uses the minimum accepted tier floor: BRONZE is $0.10 per 1,000 saved listings, with lower prices on higher Apify tiers, plus a $0.005 run-start event.
Actual Store pricing is shown on the Apify actor page before you start a run.
How to scrape Freelancer jobs
- Open the actor on Apify.
- Add one or more Freelancer job URLs, keywords, or category slugs.
- Set
maxItemsto the number of projects you need. - Optionally set budget filters.
- Click Start.
- Export the dataset as JSON, CSV, Excel, XML, or RSS.
Input options
You can use three discovery modes together.
Start URLs
Use direct Freelancer URLs when you already know the page you want.
Example:
{"startUrls": [{ "url": "https://www.freelancer.com/jobs/python/" }],"maxItems": 25}
Keywords
Use keywords to generate Freelancer job-category URLs. For example, web scraping becomes /jobs/web-scraping/.
Example:
{"keywords": ["web scraping", "shopify"],"maxItems": 50}
Category slugs
Use category slugs from Freelancer URLs.
Example:
{"categorySlugs": ["python", "web-scraping", "data-entry"],"maxItems": 100}
Output example
{"title": "Python Web Scraping Project","url": "https://www.freelancer.com/projects/python/example-project","projectId": "example-project","description": "I need a Python developer to collect public data...","budget": "$250 - $750","currency": "$","minBudget": 250,"maxBudget": 750,"budgetType": "fixed","averageBid": null,"bidCount": 12,"timeLeft": "6 days left","skills": ["Python", "Web Scraping", "Data Mining"],"categorySlug": "python","sourceUrl": "https://www.freelancer.com/jobs/python/","scrapedAt": "2026-05-30T08:00:00.000Z"}
Tips for better results
- Start with a small
maxItemsvalue to verify your query. - Use category slugs for cleaner niche-specific results.
- Use broad keywords if a specific keyword returns too few listings.
- Leave proxy disabled unless you see blocking.
- Schedule recurring runs to build a time series of demand.
- Use budget filters after you confirm the source page has enough results.
Budget filtering
The actor parses visible budget text from listing cards.
For example, $250 - $750 becomes minBudget: 250 and maxBudget: 750.
minBudget keeps projects whose parsed maximum is at least your threshold.
maxBudget keeps projects whose parsed minimum is no more than your threshold.
Budget parsing is best-effort because the source page controls the text format.
Proxy settings
Freelancer public job pages usually work without proxy.
If your environment receives blocks, enable useProxy.
You can optionally set proxyGroups such as SHADER.
Residential proxies are not the default because they cost more.
Scheduling workflows
Run the actor daily or hourly to monitor new project demand.
Common schedules include:
- Daily agency lead list for one category.
- Hourly alerts for urgent keywords.
- Weekly market snapshot for pricing research.
- Monthly skill-demand export for reports.
Integrations
You can connect the dataset to downstream tools.
- π¬ Send new matching projects to Slack or email.
- π§Ύ Export CSV files to Google Sheets.
- π§ Feed listings into lead scoring workflows.
- π Monitor demand for a niche over time.
- π§© Combine with CRM enrichment tools.
API usage with Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('automation-lab/freelancer-jobs-scraper').call({categorySlugs: ['python'],maxItems: 25,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items.slice(0, 3));
API usage with Python
from apify_client import ApifyClientclient = ApifyClient('YOUR_APIFY_TOKEN')run = client.actor('automation-lab/freelancer-jobs-scraper').call(run_input={'keywords': ['web scraping'],'maxItems': 25,})items = client.dataset(run['defaultDatasetId']).list_items().itemsprint(items[:3])
API usage with cURL
curl "https://api.apify.com/v2/acts/automation-lab~freelancer-jobs-scraper/runs?token=$APIFY_TOKEN" \-H 'Content-Type: application/json' \-d '{"categorySlugs":["python"],"maxItems":25}'
MCP usage
You can use this actor from Apify MCP tools in Claude Code, Claude Desktop, or other MCP-compatible clients.
Use an MCP URL that includes this actor as an enabled tool:
https://mcp.apify.com/?tools=automation-lab/freelancer-jobs-scraper
Claude Code setup example:
$claude mcp add apify-freelancer-jobs https://mcp.apify.com/?tools=automation-lab/freelancer-jobs-scraper
Claude Desktop JSON configuration example:
{"mcpServers": {"apify-freelancer-jobs": {"url": "https://mcp.apify.com/?tools=automation-lab/freelancer-jobs-scraper"}}}
Example prompts:
- "Scrape 25 Python projects from Freelancer and summarize the budgets."
- "Find Freelancer jobs for web scraping and group them by skill tags."
- "Run the Freelancer Jobs Scraper daily and alert me about projects over $500."
Data quality notes
The actor extracts public listing-card data.
It does not log in.
It does not scrape private messages.
It does not guarantee fields that are not visible in the public HTML.
Descriptions are previews from search result cards, not full private project documents.
Legality
This actor is intended to extract publicly available information from Freelancer.com listing pages.
You are responsible for using the data in compliance with applicable laws, Freelancer.com's terms, privacy rules, and your own data-processing obligations.
Avoid collecting or using personal data in ways that violate privacy, anti-spam, or platform rules.
FAQ
Is this an official Freelancer.com API?
No. This actor extracts public listing-card data from Freelancer.com pages. It is not affiliated with Freelancer.com.
Can it scrape full private project details?
No. The v0.1 actor focuses on public search/listing cards and does not log in or access private pages.
Troubleshooting
Why did I get fewer results than maxItems?
The source may have fewer public listings for your query, or your budget filters may remove many rows.
Try a broader keyword or a category URL.
Why are some budgets null?
Some listing cards may not show a standard budget format.
The actor keeps the raw budget text when visible and uses best-effort parsing for numeric fields.
Should I enable proxy?
Start without proxy.
Enable proxy only if requests are blocked or return empty pages unexpectedly.
Related scrapers
Other automation-lab actors may help with adjacent workflows:
https://apify.com/automation-lab/indeed-scraperhttps://apify.com/automation-lab/google-maps-scraperhttps://apify.com/automation-lab/linkedin-jobs-scraperhttps://apify.com/automation-lab/upwork-jobs-scraper
Changelog
0.1
Initial version.
- Public Freelancer job listings.
- Keyword, category slug, and direct URL inputs.
- Budget parsing.
- Skill tags.
- Optional proxy support.
Support
If a run fails, include the run URL and input when reporting the issue.
Small reproducible examples are the fastest to debug.
Summary
Freelancer Jobs Scraper gives you structured, exportable Freelancer.com public project listings for lead generation, research, and market monitoring.