# Guru.com Scraper (`parseforge/guru-com-scraper`) Actor

Scrapes Guru.com freelancer profiles and job listings by skill keyword. Returns each result as a flat row with skills, rates, and projects. Export to CSV, JSON, Excel, or XML.

- **URL**: https://apify.com/parseforge/guru-com-scraper.md
- **Developed by:** [ParseForge](https://apify.com/parseforge) (community)
- **Categories:** Jobs, Lead generation, Business
- **Stats:** 11 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $19.00 / 1,000 results

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/actors/running/actors-in-store.md#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

[![ParseForge](https://raw.githubusercontent.com/ParseForge/apify-assets/main/banner.jpg)](https://apify.com/parseforge?fpr=vmoqkp)

### Guru.com Scraper

**Scrape Guru.com freelancer profiles and job listings by skill keyword, up to a million per run.** Each result comes with the freelancer's skills, rates, and active projects, or the job's budget and description. No login or API key. Export to CSV, JSON, Excel, or XML.

Guru.com's public search pages are the fastest way to see which freelancers are available for a skill and what jobs are being posted right now. This Actor reads those pages directly, so you skip the manual browsing and get every match in one flat row. Filter by a skill keyword like web developer or graphic designer, set a maximum result count, and the Actor returns the profiles and jobs that match.

| Who uses it | What they scrape Guru.com for |
|---|---|
| Recruiters | Build a candidate pipeline of freelancers with the exact skills they need. |
| Sales teams | Find freelancers who may need tools, services, or software for their work. |
| Market researchers | Track which skills are in demand and what rates freelancers are charging. |
| Job boards | Aggregate freelance job listings into their own platform. |

### What it does

This Actor collects Guru.com freelancer profiles and job listings by skill keyword, and returns each one as a flat row.

- 🔍 **Skill keyword search:** enter any skill like web developer, graphic designer, or python, and get matching freelancers and jobs.
- 📊 **Flat row output:** every profile and job is returned as a single row, ready for spreadsheets or databases.
- ⚙️ **Result limit:** set a maximum number of results per run, from 1 to 1,000,000.
- 📤 **Multiple export formats:** download your data as CSV, JSON, Excel, or XML.

Results export to CSV, JSON, Excel, or XML, or straight from the API.

### What you can do with Guru.com data

**📈 Track freelance demand by skill.**

A market researcher runs the Actor weekly for keywords like data science and UI design, then charts how many jobs and profiles appear over time to spot rising skills.

**🤝 Build a freelancer candidate list.**

A recruiter enters the skill they are hiring for, gets a list of freelancers with their rates and projects, and reaches out to the best matches.

**💰 Find leads for freelancer tools.**

A SaaS sales team scrapes profiles for a skill like WordPress developer, then contacts freelancers who may need hosting, themes, or plugins.

**📋 Aggregate job listings.**

A job board operator runs the Actor daily for a set of keywords and imports the results into their own site, keeping listings fresh without manual entry.

### Why choose this scraper

|  | What you get |
|---|---|
| **No API key** | The Actor reads Guru.com's public pages, so you don't need to register an app or manage tokens. |
| **One fixed schema** | Every result comes back with the same fields, so you can merge runs without cleaning. |
| **Scales to a million rows** | Set maxItems up to 1,000,000 and collect a full market view in one run. |
| **Runs on Apify** | Schedule it, monitor it, and integrate it with the rest of your data stack. |

### How it compares

This Actor focuses on keyword-based scraping of both freelancer profiles and job listings, while the competitors below offer overlapping but distinct features.

| Feature | ParseForge | Guru.com Scraper | Guru Freelance Jobs Scraper |
|---|---|---|---|
| Scrape freelancer profiles | Yes | Yes | Not listed |
| Scrape job listings | Yes | Yes | Yes |
| Filter by skill keyword | Yes | Not listed | Yes |
| Filter by budget type | Not listed | Not listed | Yes |
| Fetch by job ID or URL | Not listed | Not listed | Yes |
| No login or API key | Yes | Not listed | Yes |

### Configure the run

Drive the Actor with a skill keyword and a maximum result count. The keyword filters which freelancers and jobs are returned, and the limit caps how many rows you get per run. The Input tab lists every parameter.

A first run with the defaults:

```json
{
  "query": "web developer",
  "maxItems": 10
}
```

A larger pull:

```json
{
  "query": "web developer",
  "maxItems": 200
}
```

### Pricing

Pay-per-result: **$0.021 per result** collected. You pay only for the results written to your dataset.

| Results collected | Approximate cost |
|---|---|
| 100 results | $2.10 |
| 1,000 results | $21.00 |
| 10,000 results | $210.00 |

New Apify accounts start with $5 in free credit.

### Free users

Free-plan runs return up to 10 results as a preview. [Upgrade your Apify plan](https://console.apify.com/sign-up?fpr=vmoqkp) to collect up to 1,000,000 results per run.

### Run it

1. [Create a free Apify account with $5 in credit](https://console.apify.com/sign-up?fpr=vmoqkp).
2. Open the [Guru.com Scraper](https://apify.com/parseforge/guru-com-scraper?fpr=vmoqkp).
3. Set your inputs and any filters, then click **Start**.
4. Export the results as CSV, Excel, JSON, or XML from the **Dataset** tab.

Run it programmatically through the [Apify API](https://docs.apify.com/api/v2) (`run-sync-get-dataset-items`) or the [ApifyClient](https://docs.apify.com/api/client/js) for JavaScript and Python.

### Use with AI agents (MCP)

Give an AI agent live access to Guru.com through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:

```bash
claude mcp add --transport http apify "https://mcp.apify.com/?tools=parseforge/guru-com-scraper"
```

Then prompt it in plain language to run the scraper and read back the results.

### Troubleshooting

**Why am I getting no results?**

Check your keyword. If it is too specific or misspelled, Guru.com may return nothing. Try a broader term like developer instead of senior react developer.

**Why did the run stop before reaching maxItems?**

The Actor stops when Guru.com has no more results for your query. Lower maxItems or use a broader keyword to get more rows.

**Why are some fields empty in my results?**

Not every freelancer or job fills in every field on Guru.com. Empty fields mean the data was not present on the page.

**Why did the run fail with a timeout?**

Guru.com may be slow or blocking requests. Try again later, or reduce maxItems to shorten the run.

**Can I get more data than what is shown in the sample?**

The Actor returns the fields available on the public search pages. For more detail, you would need to scrape individual profile or job pages, which this Actor does not do.

### FAQ

| Question | Answer |
|---|---|
| Do I need a Guru.com account or API key? | No. The Actor reads the public search pages on Guru.com, so you can run it without logging in or registering an app. |
| What data does the Actor return? | Each result is a flat row with the fields shown in the sample output, which typically include the freelancer's name, skills, rate, and active projects, or the job's title, budget, and description. |
| Can I scrape all freelancers on Guru.com? | Yes. Leave the keyword empty and set maxItems to a high number to browse all freelancers, though the run will take longer. |
| How do I filter by a specific skill? | Enter the skill in the query field, like web developer or graphic designer. The Actor will return only freelancers and jobs that match that keyword. |
| What is the maximum number of results I can get? | You can set maxItems up to 1,000,000. The actual number returned depends on how many matches exist on Guru.com for your query. |
| Can I schedule this Actor to run automatically? | Yes. On Apify you can set a schedule, like daily or weekly, and the Actor will run with the same input each time. |
| What export formats are supported? | You can download your results as CSV, JSON, Excel, or XML from the Apify dataset. |
| Is this Actor legal to use? | You should only scrape public data and comply with Guru.com's terms of service and applicable laws. Apify provides tools, but you are responsible for how you use them. |
| Can I get both freelancer profiles and job listings in one run? | Yes. The Actor returns both types of results for the same keyword, so you can see supply and demand side by side. |
| How fast is the Actor? | Speed depends on the number of results and Guru.com's response time. A small run of 10 results takes seconds, while a million results will take longer. |

### Related actors

Browse the full [ParseForge collection](https://apify.com/parseforge?fpr=vmoqkp) for more scrapers.

🆘 **Need help?** Email parseforge@protonmail.com with your run ID, your input, and what you expected.

⚠️ **Disclaimer.** This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by Guru.com. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.

# Actor input Schema

## `query` (type: `string`):

Search keyword to find freelancers (e.g. 'web developer', 'graphic designer', 'python'). Leave empty to browse all freelancers.

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

How many freelance jobs and profiles to collect per run.

## Actor input object example

```json
{
  "query": "web developer",
  "maxItems": 10
}
```

# Actor output Schema

## `results` (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 = {
    "query": "web developer",
    "maxItems": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("parseforge/guru-com-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 = {
    "query": "web developer",
    "maxItems": 10,
}

# Run the Actor and wait for it to finish
run = client.actor("parseforge/guru-com-scraper").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "query": "web developer",
  "maxItems": 10
}' |
apify call parseforge/guru-com-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,parseforge/guru-com-scraper"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/b24IrqQh3JjIS4How/builds/xDvQlcz2wHrQSuREQ/openapi.json
