# Freelancer.com Jobs & Projects Scraper (`fetch_cat/freelancer-jobs-projects-scraper`) Actor

Find public Freelancer.com project leads by keyword, skill, budget, and date. Export fresh freelance jobs with titles, URLs, budgets, skills, and descriptions.

- **URL**: https://apify.com/fetch\_cat/freelancer-jobs-projects-scraper.md
- **Developed by:** [Hanna Nosova](https://apify.com/fetch_cat) (community)
- **Categories:** Jobs, Lead generation
- **Stats:** 8 total users, 6 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.06 / 1,000 project saveds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Freelancer.com Jobs & Projects Scraper

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.

```json
{
  "startUrls": [{ "url": "https://www.freelancer.com/rss.xml" }],
  "keywords": ["web scraping"],
  "maxItems": 20,
  "includeDetails": false,
  "sort": "recent"
}
```

#### Example: skill-filtered projects

```json
{
  "startUrls": [{ "url": "https://www.freelancer.com/rss.xml" }],
  "skills": ["python", "data mining"],
  "maxItems": 20
}
```

#### Example: budget-filtered research

```json
{
  "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:

- `maxItems` limits how many project records are saved.
- `keywords` matches title, description, skills, and categories.
- `skills` matches visible skill/category text.
- `sort` can keep recent source order or prioritize keyword relevance.
- `maxRunSeconds` sets a safety deadline for long runs.

### Output

Each dataset item contains structured Freelancer.com project data:

- `title` and `url`
- `projectId`
- `description`
- `budgetText`, `currency`, `budgetMin`, `budgetMax`, and `budgetType`
- `skills` and `categories`
- `publishedAt`
- `source`
- `isFeatured` and `isGuaranteed`
- `bidsCount` and `averageBidText` when visible
- `scrapedAt`

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.

### Pricing and limits

The Actor uses pay-per-event pricing: a small start event plus one item event for each saved Freelancer.com project. See the [live Pricing tab](https://apify.com/fetch_cat/freelancer-jobs-projects-scraper/pricing) for current rates. Set `maxItems` to control cost during testing and production runs.

For small checks, start with 10–20 projects. For larger monitoring jobs, raise `maxItems` gradually and review the dataset quality before scheduling recurring runs.

### 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

```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

```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

```bash
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

```bash
claude mcp add apify -- npx -y @apify/actors-mcp-server --actors fetch_cat/freelancer-jobs-projects-scraper
```

#### MCP server JSON config

```json
{
  "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.

### Related actors

If you also monitor hiring demand outside Freelancer.com, consider pairing this Actor with other job, lead generation, or marketplace actors in your Apify workspace. Use consistent keyword inputs across actors to compare demand by source.

#### More Freelancer scrapers

- [Freelancer Jobs Scraper](https://apify.com/fetch_cat/freelancer-jobs-scraper)

### 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.

### FAQ

**Can I use a project URL directly?** Yes, public Freelancer.com RSS, jobs, and project URLs are accepted.

**Why are some budget fields empty?** Freelancer does not expose every field for every project in public feeds; raw `budgetText` is kept when available.

**Does this Actor bid on projects?** No. It only collects public project records.

**How do I get support?** Open an issue on the Actor page with your run ID and input.

# Actor input Schema

## `startUrls` (type: `array`):

Optional public Freelancer.com RSS, jobs, or project URLs.

## `keywords` (type: `array`):

Words or phrases to match against project title, description, skills, and categories.

## `skills` (type: `array`):

Freelancer skill/category names to match.

## `maxItems` (type: `integer`):

Maximum number of projects to save.

## `includeDetails` (type: `boolean`):

Fetch public project detail pages for extra visible fields when possible.

## `sort` (type: `string`):

RSS/source order is newest first; relevance prioritizes keyword matches.

## `minBudget` (type: `number`):

Optional lower budget bound.

## `maxBudget` (type: `number`):

Optional upper budget bound.

## `maxRunSeconds` (type: `integer`):

Optional whole-run safety budget.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.freelancer.com/rss.xml"
    }
  ],
  "keywords": [],
  "skills": [],
  "maxItems": 20,
  "includeDetails": false,
  "sort": "recent"
}
```

# Actor output Schema

## `overview` (type: `string`):

No description

## `runSummary` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "startUrls": [
        {
            "url": "https://www.freelancer.com/rss.xml"
        }
    ],
    "keywords": [],
    "skills": []
};

// Run the Actor and wait for it to finish
const run = await client.actor("fetch_cat/freelancer-jobs-projects-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "startUrls": [{ "url": "https://www.freelancer.com/rss.xml" }],
    "keywords": [],
    "skills": [],
}

# Run the Actor and wait for it to finish
run = client.actor("fetch_cat/freelancer-jobs-projects-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "startUrls": [
    {
      "url": "https://www.freelancer.com/rss.xml"
    }
  ],
  "keywords": [],
  "skills": []
}' |
apify call fetch_cat/freelancer-jobs-projects-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=fetch_cat/freelancer-jobs-projects-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/acts/1D15CszHAUjhbQ0YN/builds/vueLA4XMDyazKvLTE/openapi.json
