Scrape public Freelancer.com jobs and projects from RSS, jobs, and project URLs. The Actor returns project titles, URLs, IDs, descriptions, budgets, currencies, skills/categories, published dates, bid hints, and scrape timestamps for lead generation, market research, and freelance project monitoring.
What does this Freelancer.com scraper do?
Freelancer.com Jobs & Projects Scraper helps you monitor public freelance project demand without manually refreshing Freelancer.com search pages. You can collect recent projects, filter by keywords or skills, and export structured records for analysis, sales outreach, recruiting research, or product planning.
The Actor is designed for public project discovery. It does not log in to Freelancer.com, place bids, contact clients, or access private account data. It saves only fields that are visible from public project sources.
Who is it for?
- Freelancers tracking new projects in their niche.
- Agencies looking for demand signals and buyer intent.
- Recruiters and market researchers studying freelance job categories.
- Sales teams building lead lists around public project needs.
- Product teams watching trends in outsourced software, design, writing, marketing, and data work.
Examples
Example: recent web scraping projects
Use this example input to collect recent Freelancer.com projects that mention web scraping.
{
"startUrls": [{ "url": "https://www.freelancer.com/rss.xml" }],
"keywords": ["web scraping"],
"maxItems": 20,
"includeDetails": false,
"sort": "recent"
}
Example: skill-filtered projects
{
"startUrls": [{ "url": "https://www.freelancer.com/rss.xml" }],
"skills": ["python", "data mining"],
"maxItems": 20
}
Example: budget-filtered research
{
"startUrls": [{ "url": "https://www.freelancer.com/rss.xml" }],
"keywords": ["shopify"],
"minBudget": 100,
"maxBudget": 2000,
"maxItems": 20
}
Input recipes
Use startUrls for public Freelancer.com jobs or project sources. If you leave it empty, the Actor uses a default public project source. Use keywords or skills to keep only matching projects. Add minBudget and maxBudget to filter by visible budget values when Freelancer exposes them.
Important input fields:
maxItemslimits how many project records are saved.keywordsmatches title, description, skills, and categories.skillsmatches visible skill/category text.sortcan keep recent source order or prioritize keyword relevance.maxRunSecondssets a safety deadline for long runs.
Output
Each dataset item contains structured Freelancer.com project data:
titleandurlprojectIddescriptionbudgetText,currency,budgetMin,budgetMax, andbudgetTypeskillsandcategoriespublishedAtsourceisFeaturedandisGuaranteedbidsCountandaverageBidTextwhen visiblescrapedAt
Some fields can be empty when Freelancer.com does not expose the value for a project. The raw project URL and title are still saved whenever a matching record is available.
API usage
Run the Actor through the Apify API with the same JSON input used in the Console. After the run succeeds, read the default dataset to download Freelancer.com project records as JSON, CSV, Excel, XML, or RSS.
Node.js
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const input = {
startUrls: [{ url: 'https://www.freelancer.com/rss.xml' }],
keywords: ['web scraping'],
maxItems: 20,
};
const run = await client.actor('fetch_cat/freelancer-jobs-projects-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-projects-scraper').call(run_input={
'startUrls': [{'url': 'https://www.freelancer.com/rss.xml'}],
'keywords': ['web scraping'],
'maxItems': 20,
})
items = client.dataset(run['defaultDatasetId']).list_items().items
print(items)
cURL
curl -X POST "https://api.apify.com/v2/acts/fetch_cat~freelancer-jobs-projects-scraper/runs?token=$APIFY_TOKEN" \
-H 'Content-Type: application/json' \
-d '{"startUrls":[{"url":"https://www.freelancer.com/rss.xml"}],"keywords":["web scraping"],"maxItems":20}'
MCP
You can use this Actor from Apify MCP-compatible workflows by passing the same input JSON shown above. This is useful when an AI workflow needs fresh public freelance project data before drafting outreach, market summaries, or opportunity reports.
Add Apify MCP to Claude
claude mcp add apify -- npx -y @apify/actors-mcp-server --actors fetch_cat/freelancer-jobs-projects-scraper
MCP server JSON config
{
"mcpServers": {
"apify": {
"command": "npx",
"args": [
"-y",
"@apify/actors-mcp-server",
"--actors",
"fetch_cat/freelancer-jobs-projects-scraper"
],
"env": {
"APIFY_TOKEN": "your-apify-token"
}
}
}
}
Example prompts showing MCP usage
- "Run Freelancer.com Jobs & Projects Scraper for web scraping projects and summarize the highest-budget opportunities."
- "Find recent Freelancer.com projects mentioning Python and data mining, then group them by visible skill category."
- "Collect 20 Shopify-related Freelancer.com projects and draft a market-demand summary from the dataset."
Data quality notes
Freelancer.com project pages and feeds can vary by category, country, and listing type. Budget parsing is best-effort from visible text. When precise budget fields are not available, keep budgetText in your downstream workflow so a human or model can interpret the original wording.
Public data and use limits
This Actor is intended for public Freelancer.com project data. It does not sign in, bid on projects, message clients, or collect private account data. Use the exported records only in workflows that fit your Freelancer.com terms, privacy, and retention obligations.
Troubleshooting
If a run returns fewer items than expected, broaden your keywords, remove tight budget filters, or increase maxItems. If a public source has no matching projects at that moment, the Actor can finish successfully with an empty dataset.