Freelancer.com Project Scraper
Pricing
from $0.50 / 1,000 results
Freelancer.com Project Scraper
Scrape live Freelancer.com projects by keyword with budget, skills & poster info. Filter by budget, export to CSV/JSON/Excel, or deliver leads to Notion, Slack & Jira via MCP connectors.
Pricing
from $0.50 / 1,000 results
Rating
0.0
(0)
Developer
Techforce Global
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
2 days ago
Last modified
Categories
Share
Freelancer.com Project Scraper & MCP Connector
Pull fresh, live projects from Freelancer.com for any set of keywords — title, budget, required skills, and poster details — without logging in, without an API key, and without clicking through search pages by hand.
Built for freelancers, agencies, and lead-gen teams who want a constant feed of new jobs to bid on, filtered by budget and keyword, delivered straight into the tools they already work in.
Give it keywords → get matching projects with budget & poster info → deliver it straight into Notion, Slack, Jira, or your CRM.
⭐ Why This Actor?
- ✅ Just add keywords — no login, API key, or session tokens required. Uses Freelancer's own public project-search endpoint.
- ✅ Multiple keywords in one run — search
python,web scraping,react(or any list) in a single Actor call. - ✅ Budget filtering built in — set a minimum and/or maximum budget so you only see projects worth your time.
- ✅ Rich poster info — display name, country, and profile URL for every project, so you know who you'd be pitching before you open the listing.
- ✅ Never silently drops results — pagination continues per keyword until the limit is hit or Freelancer runs out of matches.
- ✅ Deliver anywhere via MCP connectors — push new projects straight into Notion, Slack, Jira, GitHub, Linear, Airtable, and more, as a summary digest, one message per project, or chunked batches.
- ✅ Export-ready — JSON, CSV, Excel, or direct API integration for your own pipeline.
📝 Use Cases & ROI
| Use Case | Time Saved | What You Get |
|---|---|---|
| Lead generation for freelancers | 1–2 hrs/day | A live list of new jobs matching your skills, budget, and keywords |
| Agency bid pipelines | 3–5 hrs/week | Structured project data ready to route into a CRM or Slack channel |
| Market & rate research | 2–4 hrs/batch | Budgets and skill demand across a keyword set, at a glance |
| Competitor / niche monitoring | 2–3 hrs/week | See what's being posted in a niche without manually searching |
| Automated alerting | Ongoing | New matching projects pushed into Notion/Slack the moment a run finishes |
🚀 How to Use
- Open the Actor on Apify.
- Add one or more Search Keywords (e.g.
python,web scraping,react). - Set Results Per Keyword — how many projects to fetch for each keyword (default:
20, max:100). - (Optional) Set Minimum Budget ($) and/or Maximum Budget ($) to filter out projects outside your range (
0= no limit). - (Optional) Pick an MCP connector to deliver matching projects into Notion, Slack, Jira, etc.
- Click Run — results stream into the dataset as each keyword is processed.
- Download as CSV, Excel, or JSON — or let the connector push them into your tools automatically.
💡 First time with a connector? Run once with a connector selected — the run log prints the connector's available tool names, so you know what to put in Connector Tool Name.
🧩 Input Configuration
| Field | Type | Required | Description |
|---|---|---|---|
keywords | Array | ✔️ Yes | Keywords to search for on Freelancer.com (e.g. python, web scraping, react). Default: ["python", "web scraping"]. |
limitPerKeyword | Integer | Optional | How many projects to fetch per keyword (1–100). Default: 20. |
minBudget | Integer | Optional | Only include projects with a budget above this amount. 0 = no minimum. Default: 0. |
maxBudget | Integer | Optional | Only include projects with a budget below this amount. 0 = no maximum. Default: 0. |
mcpConnector | Connector | Optional | Deliver scraped projects into a connector you've authorized (Notion, Slack, Linear, Airtable, Jira, GitHub, or any MCP-compatible connector). Leave empty to only save results to the dataset. |
deliveryMode | Enum | Optional | How to package projects when sending them to the connector: summary (one digest call for the whole run), perProject (one call per project), chunked (a few grouped digest calls), or none. Default: summary. |
mcpTool | String | Optional | Name of the tool to call on the selected MCP connector (e.g. create-pages, send_message). |
mcpArguments | Object | Optional | JSON object of arguments to pass to the tool; string values support {placeholder} tokens. |
mcpMessageTemplate | String | Optional | Template used to build the {message} placeholder available in Tool Arguments. |
Example — Search two keywords with a budget floor
{"keywords": ["python", "web scraping"],"limitPerKeyword": 30,"minBudget": 100}
Example — Post each matching project to Slack
{"keywords": ["react", "node.js"],"limitPerKeyword": 20,"mcpConnector": "<your-slack-connector>","deliveryMode": "perProject","mcpTool": "send_message","mcpArguments": { "channel": "#leads", "text": "{message}" },"mcpMessageTemplate": "*{title}* — {budget}\n\nSkills: {skills}\nPoster: {posterDisplayName} ({posterCountry})\n{projectUrl}"}
Example — Create one Notion page per project
{"keywords": ["python"],"limitPerKeyword": 25,"mcpConnector": "<your-notion-connector>","deliveryMode": "perProject","mcpTool": "create-pages","mcpArguments": {"parent": { "page_id": "<your-page-id>" },"pages": [{"properties": { "title": "{title}" },"content": "{message}"}]},"mcpMessageTemplate": "{title} — {budget}\n\nSkills: {skills}\nPoster: {posterDisplayName} ({posterCountry})\nURL: {projectUrl}"}
Example — One summary digest of the whole run
{"keywords": ["python", "web scraping"],"limitPerKeyword": 20,"mcpConnector": "<your-notion-connector>","deliveryMode": "summary","mcpTool": "create-pages","mcpArguments": {"parent": { "page_id": "<your-page-id>" },"pages": [{"properties": { "title": "Freelancer Scrape - {projectCount} projects ({keywords})" },"content": "{digest}"}]}}
Placeholders available in arguments / template
Summary & chunked modes: {projectCount} · {keywords} · {digest} · {message}
Chunked mode adds: {part} · {partCount}
Per-project mode adds: {title} · {budget} · {budgetMin} · {budgetMax} · {currency} · {skills} · {posterUsername} · {posterDisplayName} · {posterCountry} · {posterProfileUrl} · {projectUrl} · {postedAt} · {keyword} · {message}
⚠️
{title},{budget},{skills}, and the other per-project fields only exist inperProjectmode. Insummaryorchunkedmode, reference{digest}(all matching projects formatted as text) instead — unknown placeholders render as empty strings, not errors.
📦 Output Fields
Every record in the dataset always carries the fields below.
| Field | Description |
|---|---|
title | Project title |
budget | Formatted budget range, e.g. "$250 - $750", or "N/A" |
budgetMin / budgetMax | Raw minimum and maximum budget |
currency | Currency symbol (e.g. $) |
skills | Array of required skills/tags |
poster.username / poster.displayName / poster.country / poster.profileUrl | Poster's Freelancer username, display name, country, and profile link |
projectUrl | Direct link to the project on Freelancer.com |
postedAt | ISO timestamp the project was submitted |
scrapedAt | ISO timestamp this Actor scraped it |
keyword | The search keyword that matched this project |
Example Output
[{"title": "Build a Python web scraper for e-commerce sites","budget": "$250 - $750","budgetMin": 250,"budgetMax": 750,"currency": "$","skills": ["Python", "Web Scraping", "BeautifulSoup"],"poster": {"username": "janedoe123","displayName": "Jane Doe","country": "United States","profileUrl": "https://www.freelancer.com/u/janedoe123"},"projectUrl": "https://www.freelancer.com/projects/python/Build-Python-web-scraper","postedAt": "2026-07-19T14:32:00Z","scrapedAt": "2026-07-20T05:44:42Z","keyword": "python"}]
You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.
🔌 Integrations & Delivery
Deliver matching projects into any MCP connector you've authorized in Apify — no glue code, no webhooks:
- Notion — create a page per project, or one summary page per run
- Slack / Discord — post new leads to a channel as they're found
- Jira / GitHub / Linear — open a task or issue per project to track a bid
- Airtable / Google Sheets — append a structured row per project
- …or any other MCP-compatible connector
Credentials stay private — delivery runs through the Apify MCP Proxy, so the Actor never sees your connector tokens. You can also consume the dataset directly via the Apify API, or wire it into n8n, Zapier, and Make.
⚙️ Delivery modes:
summarysends one digest of all matching projects,perProjectsends one call per project (so you get per-project placeholders like{title}and{budget}),chunkedgroups projects into a few digest calls to stay under service size limits, andnoneskips delivery entirely. MCP delivery only runs on the Apify platform and never affects what's saved to the dataset.
🛠️ How It Works
my_actor/main.py reads the input, then:
- For each keyword, pages through Freelancer's public project-search API (
/api/projects/0.1/projects/active), applyingminBudget/maxBudgetfilters and stopping oncelimitPerKeywordis reached or results run out. - Normalizes each raw project into title, formatted budget, skills, and poster info, and tags it with the keyword that matched it.
- Pushes every scraped project to the dataset.
- If a connector is configured, delivers the projects via MCP — as a summary digest, one call per project, or grouped chunks — without ever affecting what was already saved to the dataset.
Built with: Apify Client for Python · requests · MCP
🆘 Support
For issues, custom scraping requests, or feature suggestions:
Email: bhavin.shah@techforceglobal.com
Need a Custom Pipeline?
Want multi-keyword batch runs, scheduled refreshes, deeper enrichment, or a full data-warehouse integration?
📅 Book a Free 15-min Consultation
Made with ❤️ by Techforce Specialists in High-Performance Web Scrapers and AI Automation.
Disclaimer
This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Freelancer.com or Freelancer Technology Pty Limited. Freelancer® is a trademark of its respective owner; all trademarks are property of their respective owners. The Actor collects only publicly available project listings via Freelancer's public search endpoint and does not log into, or scrape behind the authentication of, any platform. Use the data responsibly and in compliance with applicable laws (including GDPR/CCPA) and the terms of the platforms you operate on.