Freelancer.com Jobs & Projects Scraper
Pricing
from $0.06 / 1,000 project saveds
Freelancer.com Jobs & Projects Scraper
Export public Freelancer.com project feed items with titles, descriptions, links, category tags and available budgets. Filter fetched items by keyword or skill.
Pricing
from $0.06 / 1,000 project saveds
Rating
0.0
(0)
Developer
Fetch Cat
Maintained by CommunityActor stats
0
Bookmarked
81
Total users
25
Monthly active users
3 days ago
Last modified
Categories
Features
Share
Collect public Freelancer.com project feed items and export titles, links, descriptions, category tags and available budget text. Use the records for freelance opportunity discovery and demand research. This Actor reads RSS items, not ordinary jobs or project web pages.
Quick start
- Open the input form and keep the default Freelancer.com RSS source.
- Set
maxItemsto a small limit and run the Actor. - Open the dataset and export JSON, CSV or Excel.
{"startUrls": [{ "url": "https://www.freelancer.com/rss.xml" }],"maxItems": 20}
Start without filters to see what the current feed provides. The Actor does not sign in, bid on projects or access private account data. It is an independent tool, not an official Freelancer.com API.
Prefer a video guide? This short Apify walkthrough shows you how to set up and run an Actor. It uses a different Actor, but the setup steps are the same.
What you get
One saved row per matching public RSS item, with title, project link, available feed description and category tags. Budget fields are best-effort text-derived observations rather than normalized quotes. The Actor reads feed items rather than ordinary project pages or complete seller/account data.
Who is it for?
- Freelancers and agencies reviewing public project opportunities manually.
- Market researchers comparing available project descriptions and category signals.
- Data and AI workflow teams organizing bounded feed records with original source links.
How you can use the data
- Prepare a Python opportunity shortlist. Use the default public RSS feed and the existing Python or web-scraping keyword recipe with a small saved-record cap. Keep
title,url,description,skillsandbudgetTexttogether before opening original project links for review. - Review a skill-niche sample. Add the existing design skill phrase when useful. Keyword phrases match within their group, skill phrases within theirs, and both groups must match when both are supplied. This filters fetched feed items rather than searching the entire marketplace.
- Interpret budgets with source context. Retain budget text and currency rather than comparing amounts as a single currency. Unknown budgets survive bounds, and parsed amounts can describe bids rather than the client's actual budget.
- Keep repeat observations in your own workflow. Save project identifiers or URLs alongside collection times for later comparisons. The feed can be limited or incomplete, and the Actor does not provide a historical archive or automatic monitoring.
Input settings
| Setting | API key | Purpose |
|---|---|---|
| Start URLs | startUrls | RSS sources. Empty or omitted uses the default feed. |
| Keywords | keywords | Match any supplied phrase in item text. |
| Skills | skills | Match any supplied skill phrase in item text. |
| Maximum projects | maxItems | Saved-record cap. Form default 20, omitted API input 50. |
| Include details | includeDetails | Inactive. Does not fetch detail pages. |
| Sort mode | sort | recent keeps source order. relevance prioritizes titles containing the first keyword within each source. |
| Budget bounds | minBudget, maxBudget | Optional bounds on parsed amounts. |
| Maximum run seconds | maxRunSeconds | Budget checked before the next source. Defaults to 270. |
See input-field help for matching rules and limitations. No fields are globally required. Jobs and project URLs are accepted by input validation, but ordinary pages are not RSS sources and fail with an unexpected-response error. Use RSS URLs for collection.
Input recipes
Find relevant opportunities: add "keywords": ["python", "web scraping"] to keep items containing either phrase. These filters search the fetched items, not the entire Freelancer.com marketplace.
Research a skill niche: add "skills": ["design"]. If keywords are also supplied, a record must match both groups. Skills are text matches, not exact Freelancer skill IDs.
Narrow visible budgets: add "minBudget": 100, "maxBudget": 2000. Records with unknown budgets still pass. Amounts are not converted between currencies.
Output data
Each saved row represents one matching feed item. This abbreviated example illustrates shape only, not an observed project:
{"title": "Example project title","url": "https://www.freelancer.com/projects/example/123","projectId": "123","description": "Example feed description","budgetText": null,"currency": null,"budgetMin": null,"budgetMax": null,"skills": [],"categories": [],"publishedAt": null,"source": "rss","bidsCount": null,"averageBidText": null}
| Fields | Meaning and limits |
|---|---|
title, url, projectId | Feed title/link and ID when recognized in the URL. ID can be null. |
description | Feed description with markup removed. Can be null or incomplete. |
budgetText, currency, budgetMin, budgetMax, budgetType | Best-effort values from budget or bid text. Nullable and not currency-normalized. |
skills, categories | Both contain the feed category tags, not separately enriched skills. |
publishedAt | Original feed publication text when supplied. Not guaranteed to be ISO format. |
source, scrapedAt | rss and the collection timestamp. |
isFeatured, isGuaranteed | Text hints from the feed, not independently verified project status. |
bidsCount, averageBidText | Currently always null. Bid statistics are not collected. |
Records are deduplicated by recognized project ID or URL within a run. The output links to the dataset. No downloadable run-summary record is produced. Logs report per-source counts and empty-result reasons, followed by the run total.
Download your results
Open your run's dataset, choose Export and select JSON, CSV or Excel. JSON keeps nested fields together. CSV and Excel are useful when you want to review the records in a spreadsheet.
See Apify's download and export guide for the available formats and field options.
Pricing
The start event is charged once when collection begins, and the item event is charged for each saved project row. An empty result can still incur the start event. See the live Pricing tab for current rates and discounts.
Keep the saved-record cap small while selecting filters. It is a ceiling rather than a guaranteed count.
Tips for best results
- Use actual RSS sources. Ordinary job or project pages can pass input validation but fail acquisition as unexpected responses.
- Start without filters for a small sample. Raising the record cap cannot create missing feed items.
- Keep keyword and skill matching distinct. Supplied groups must both match when used together, and skills are text phrases rather than exact platform skill IDs.
- Retain budget text and currency. Amounts can describe bids, missing budgets remain unknown and currencies are not converted.
- Use logs for outcome explanations. The Actor does not create a downloadable run-summary record.
Limits and caveats
The Actor reads public Freelancer.com RSS items, without signing in, bidding or accessing private accounts. Ordinary jobs/project URLs can pass validation but are not RSS sources and fail with an unexpected-response error. This independent tool is not an official Freelancer.com API.
Feed availability, missing fields and site access restrictions can limit output. A valid empty RSS feed or no matches after filtering succeeds with an empty dataset. Ordinary project text mentioning challenges or captchas is not an access block. Real access challenges, malformed or unexpected responses, and request or execution failures still fail the run.
The detail setting is accepted but inactive. Descriptions and category tags come from the feed, not extra project-page visits. The skills and categories arrays contain the same feed category tags. Bid count and average-bid text remain null. Budget amounts are not currency-normalized, and unknown budgets pass filters.
Recent mode preserves source order rather than date-sorting across sources. Relevance prioritizes first-keyword title matches within each source, not a whole-marketplace ranking. The runtime budget is checked before starting the next source. Saved items are deduplicated by recognized project ID or URL within a run.
Logs report per-source counts and empty-result reasons followed by the run total. There is no downloadable run-summary record, built-in recurring monitoring or historical archive.
Automation and integrations
Save your settings for next time
Once you have an input that works for you, save it as an Apify task. This keeps your settings together so you can use them again without filling in the form from scratch.
Run on a schedule
Need fresh results regularly? You can schedule the Actor or a saved task to run at a time that suits you.
Each scheduled run collects the data again. If you want to compare results or highlight changes, add that step in your own workflow.
Send results to your other tools
Use n8n, Make or Zapier to connect this scraper to the rest of your workflow. For example, you could pass its results to an AI assistant or add records to a spreadsheet. Follow the Apify integration guides for your chosen tool.
For a custom connection, an Apify webhook can notify your app when a run finishes or fails. Your app can then fetch the results or handle the failure.
API usage
Want to collect this data from your own app or automation? The examples below send input to the scraper and show how to collect its results.
The Node.js and Python examples wait for the run to finish before reading its results. The cURL example starts the run and returns its details. Wait for that run to finish, then use its defaultDatasetId to fetch the results.
For setup instructions, see Apify's JavaScript client guide, Python client guide and Actor runs API reference.
cURL
curl -X POST 'https://api.apify.com/v2/acts/fetch_cat~freelancer-jobs-projects-scraper/runs' \-H "Authorization: Bearer $APIFY_TOKEN" \-H 'Content-Type: application/json' \-d '{"maxItems":20}'
Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('fetch_cat/freelancer-jobs-projects-scraper').call({ maxItems: 20 });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-projects-scraper').call(run_input={'maxItems': 20})print(client.dataset(run['defaultDatasetId']).list_items().items)
The cURL request starts a run. Use its status and defaultDatasetId to retrieve the dataset after completion.
MCP and AI agents
You can ask your AI assistant to collect data with Freelancer Jobs & Projects Scraper and help you work with the results. The scraper returns the data, and your assistant can then summarize it, compare records or prepare notes.
Connect your assistant through the Apify MCP server. MCP gives your assistant a way to find this scraper, run it and read the results. Follow the official setup and sign-in guide for your app.
Easier setup with an Apify plugin
If you use a supported coding assistant, the official Apify plugin can set up the connection for you. It connects your assistant to Apify and includes instructions for common tasks. Follow the guide for your particular app.
Use Apify AI in Console
Prefer to keep everything in Apify? Open Apify AI in Console and ask it to find Fetch Cat's Freelancer Jobs & Projects Scraper. You can describe the data you want and ask questions about the results.
Apify AI is currently in beta. It asks for confirmation before starting an Actor, and normal run charges apply.
Choose your assistant
- Claude and Claude Code (Anthropic): Apify setup guide.
- ChatGPT and Codex (OpenAI): Apify setup guides.
- Grok Bot (xAI): Apify plugin guide.
- Gemini CLI (Google): MCP server setup guide. Use the server URL below with the HTTP configuration supported by Gemini CLI.
Connect just this scraper
To keep your setup focused on this scraper, add this server configuration to a compatible MCP client:
{"mcpServers": {"apify": {"url": "https://mcp.apify.com?tools=fetch_cat/freelancer-jobs-projects-scraper"}}}
Sign in to Apify when your client asks. If your client uses a Bearer token instead, follow its setup guide and keep the token in its secure configuration. Configuration formats vary by app, so use the linked guide if your client needs a different format.
Use Apify's general server
Already connected to the general Apify MCP server at https://mcp.apify.com? You can use it to find this scraper without adding another server. Ask your assistant to use Freelancer Jobs & Projects Scraper by Fetch Cat, or give it the identifier fetch_cat/freelancer-jobs-projects-scraper.
Your assistant can check the available settings and retrieve the results from the returned run. If the run is still working, it should follow that run rather than start it again. Both connection options use Apify's hosted service.
Example requests
- “Use Fetch Cat’s Freelancer Jobs & Projects Scraper to collect up to 5 items from the default public RSS feed matching python or web scraping. Show titles, descriptions and original project links for manual opportunity review.”
- “Collect at most 5 items from the public Freelancer RSS feed using the keyword and design skill phrase I provide. Explain that both filter groups must match and show the returned category tags without claiming full marketplace coverage.”
- “Retrieve up to 5 public feed items with budget bounds from 100 to 2000. Keep budget text and currency, separate unknown budgets that pass the filter, and do not infer bid statistics or normalized client budgets.”
Normal Apify charges apply. Check the live Pricing tab before asking your assistant to run a larger batch.
Pay with x402
If your AI agent has a funded wallet, it can pay for Apify usage through x402. This experimental option lets an agent use Apify without a conventional account.
Apify AGI provides a prepaid API token with a spending cap after payment. Your agent can use that token to run this scraper through the Apify API or an authenticated MCP connection.
Some MCP setups also support paying for each request directly. That is a different payment option, so check the official guide for its availability.
Follow the official guide for wallet setup, supported payment options and current terms. Apify handles the payments. Keep wallet keys and payment tokens in your agent's secure configuration.
Other ways for agents to pay
Apify also supports MPP for prepaid access through AGI and Skyfire for eligible Actors. If your agent already uses one of these, see the agentic payment guide to choose the right setup.
FAQ
Can I export Freelancer projects to CSV or JSON?
Yes. Export the saved dataset in Console or retrieve it through the API. It contains only matching feed items.
Is this a Freelancer API alternative?
It provides structured public feed data through Apify rather than the full official Freelancer API or authenticated account features.
Does it fetch a project's full page?
No. The includeDetails input is accepted but inactive, and ordinary project URLs are not extracted.
Why are budgets or bids missing?
Budgets depend on recognizable feed text. Bid counts and average bid text are currently always null.
Related Actors
- Freelancer Jobs Scraper — another Freelancer project-discovery option. Compare its supported inputs.
- Upwork Jobs Scraper — freelance opportunities from Upwork.
- Indeed Jobs Scraper — broader employment listings.
- LinkedIn Jobs Scraper — LinkedIn job discovery.
- RemoteOK Jobs Scraper — remote-work listings.
Support and feedback
For custom additions or integrations, email hello@fetchcat.dev.
Found an error or have a feature request? Open an issue with the run URL, a non-sensitive input example and what you expected.
Need help sharing it? See Apify’s guide to sharing a run when reporting an issue. Sharing a run can give the developer access to its input, logs and results, so use a run that contains no sensitive data. Please leave out API tokens, passwords, cookies, private documents and personal data. Use a public sample URL or a redacted example instead.
Tried this scraper? We'd love to hear how it worked for you. Leave a review to help others choose the right tool and help us improve it. Your feedback means a lot to us.
Made with care for curious people, AI agents and the possibilities in data. ♥