Freelancer.com Project Scraper avatar

Freelancer.com Project Scraper

Pricing

from $0.50 / 1,000 results

Go to Apify Store
Freelancer.com Project Scraper

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

Techforce Global

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

2 days ago

Last modified

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 CaseTime SavedWhat You Get
Lead generation for freelancers1–2 hrs/dayA live list of new jobs matching your skills, budget, and keywords
Agency bid pipelines3–5 hrs/weekStructured project data ready to route into a CRM or Slack channel
Market & rate research2–4 hrs/batchBudgets and skill demand across a keyword set, at a glance
Competitor / niche monitoring2–3 hrs/weekSee what's being posted in a niche without manually searching
Automated alertingOngoingNew matching projects pushed into Notion/Slack the moment a run finishes

🚀 How to Use

  1. Open the Actor on Apify.
  2. Add one or more Search Keywords (e.g. python, web scraping, react).
  3. Set Results Per Keyword — how many projects to fetch for each keyword (default: 20, max: 100).
  4. (Optional) Set Minimum Budget ($) and/or Maximum Budget ($) to filter out projects outside your range (0 = no limit).
  5. (Optional) Pick an MCP connector to deliver matching projects into Notion, Slack, Jira, etc.
  6. Click Run — results stream into the dataset as each keyword is processed.
  7. 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

FieldTypeRequiredDescription
keywordsArray✔️ YesKeywords to search for on Freelancer.com (e.g. python, web scraping, react). Default: ["python", "web scraping"].
limitPerKeywordIntegerOptionalHow many projects to fetch per keyword (1–100). Default: 20.
minBudgetIntegerOptionalOnly include projects with a budget above this amount. 0 = no minimum. Default: 0.
maxBudgetIntegerOptionalOnly include projects with a budget below this amount. 0 = no maximum. Default: 0.
mcpConnectorConnectorOptionalDeliver 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.
deliveryModeEnumOptionalHow 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.
mcpToolStringOptionalName of the tool to call on the selected MCP connector (e.g. create-pages, send_message).
mcpArgumentsObjectOptionalJSON object of arguments to pass to the tool; string values support {placeholder} tokens.
mcpMessageTemplateStringOptionalTemplate 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 in perProject mode. In summary or chunked mode, 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.

FieldDescription
titleProject title
budgetFormatted budget range, e.g. "$250 - $750", or "N/A"
budgetMin / budgetMaxRaw minimum and maximum budget
currencyCurrency symbol (e.g. $)
skillsArray of required skills/tags
poster.username / poster.displayName / poster.country / poster.profileUrlPoster's Freelancer username, display name, country, and profile link
projectUrlDirect link to the project on Freelancer.com
postedAtISO timestamp the project was submitted
scrapedAtISO timestamp this Actor scraped it
keywordThe 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: summary sends one digest of all matching projects, perProject sends one call per project (so you get per-project placeholders like {title} and {budget}), chunked groups projects into a few digest calls to stay under service size limits, and none skips 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:

  1. For each keyword, pages through Freelancer's public project-search API (/api/projects/0.1/projects/active), applying minBudget/maxBudget filters and stopping once limitPerKeyword is reached or results run out.
  2. Normalizes each raw project into title, formatted budget, skills, and poster info, and tags it with the keyword that matched it.
  3. Pushes every scraped project to the dataset.
  4. 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.