# Agency Directory with Client Lists & Reviews — DesignRush (`jungle_synthesizer/designrush-agency-directory-scraper`) Actor

Extract agency listings from all 38 DesignRush categories, including digital marketing, IT services, and web development. Each record includes named client lists, reviewer names and job titles, hourly rate and minimum project size, ratings, and verified/sponsored status.

- **URL**: https://apify.com/jungle\_synthesizer/designrush-agency-directory-scraper.md
- **Developed by:** [BowTiedRaccoon](https://apify.com/jungle_synthesizer) (community)
- **Categories:** Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.40 / 1,000 record scrapeds

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

## DesignRush Agency Directory Scraper — Client Lists & Reviews

Scrape agency listings from [DesignRush](https://www.designrush.com), a marketing and IT agency directory covering all 38 site categories. Returns firmographics, hourly rates, minimum project size, named client rosters, and full reviewer detail (name, job title, employer, rating) for every listed agency.

***

### DesignRush Agency Directory Scraper Features

- Crawls all 38 DesignRush categories — digital marketing, IT services, cloud consulting, cybersecurity, web development, and more
- Returns a **named client list per agency** — the field most directory scrapes skip, sitting right below the fold on the source page
- Captures full review detail: reviewer name, job title, employer, star rating, and review text — not just an aggregate score
- Parses hourly rate and minimum project size into numeric fields alongside the raw label, so results sort and filter directly
- Flags verified and sponsored/promoted listings separately, so you can tell paid placement from organic ranking
- Filter by category, or leave it empty and get the full directory in one run

***

### Who Uses DesignRush Agency Directory Data?

- **Agencies** — Benchmark competitors' rates, client rosters, and review volume against your own listing.
- **PE and M\&A associates** — Read an agency's named client list as customer-concentration evidence before a deal.
- **Lead-gen and sales teams** — Every review carries a named decision-maker with a job title and employer — a qualified contact tied to a documented purchase.
- **Marketing buyers** — Compare hourly rate, minimum project size, and rating across categories before shortlisting a vendor.
- **Market researchers** — Track category coverage and sponsored-vs-organic placement across the directory over time.

***

### How DesignRush Agency Directory Scraper Works

1. Pick one or more categories, or leave the field empty to crawl all 38.
2. The scraper works through each category's listing pages, pulling every agency card — name, firmographics, services, clients, and reviews all come off the same page.
3. Records are deduplicated by agency and written to the dataset as the run proceeds — check partial results without waiting for the full run to finish.

***

### Input

```json
{
  "categories": ["it-services", "digital-marketing"],
  "maxItems": 100
}
```

| Field        | Type    | Default | Description                                                                 |
|--------------|---------|---------|-------------------------------------------------------------------------------|
| `categories` | array   | `[]`    | DesignRush categories to crawl (e.g. `it-services`, `digital-marketing`). Leave empty for all 38. |
| `maxItems`   | integer | `10`    | Maximum number of agency records to return.                                   |
| `resumeCursor` | string | —     | Cursor from a previous run's Output. Leave empty for a fresh crawl.           |

Leave `categories` empty for the full directory in one run:

```json
{
  "maxItems": 5000
}
```

### Resuming a large crawl

Every run emits a `resumeCursor` in its Output. If a large crawl stops before it finishes — because it hit `maxItems`, your spend cap (`maxTotalChargeUsd`), or was aborted — start a new run with **the same input** plus that `resumeCursor` to continue from where it left off. The crawl resumes from the queued work the previous run didn't reach.

- You are **not re-charged** for records the earlier run already delivered.
- Resume within your account's run-retention window — on the free tier, roughly your 10 most recent runs. Once the source run is pruned, its `resumeCursor` is no longer valid.
- `resumeCursor` is opaque — supply it unmodified.

***

### DesignRush Agency Directory Scraper Output Fields

```json
{
  "agency_name": "SmartSites",
  "profile_url": "https://www.designrush.com/agency/profile/smartsites",
  "website": "https://www.smartsites.com/",
  "tagline": "Think Web. Think Smart. Partner With the #1 Rated Digital Marketing Agency.",
  "description": "A results-driven digital marketing company, SmartSites provides expertise in PPC, SEO, email marketing...",
  "is_verified": true,
  "is_sponsored": true,
  "location_city": "Paramus",
  "location_state": "New Jersey",
  "location_country": "United States",
  "employee_count_band": "100 - 249",
  "avg_hourly_rate": "$100/hr",
  "avg_hourly_rate_usd_min": 100,
  "min_project_size": "$1,000 - $10,000",
  "min_project_size_usd": 1000,
  "portfolios_count": 4,
  "top_services": ["Digital Marketing", "SEO", "PPC", "Social Media Marketing", "Email Marketing"],
  "services_full": ["Digital Marketing", "SEO", "PPC", "Social Media Marketing", "Email Marketing", "Web Design", "Web Development"],
  "clients": ["A&A Thermal Spray", "AGA Truck Parts", "Agape Health and Wellness"],
  "rating": 5.0,
  "reviews_count": 270,
  "reviews": [
    "Paloma Anguiano (Content Manager at JP Pierre, LLC.) 5.0/5 — Digital Services Review from Paloma Anguiano: Overall I feel very confident working with..."
  ],
  "listing_category": "digital-marketing",
  "listing_category_id": 36,
  "listing_page": 1,
  "listing_position": 1,
  "source": "designrush.com",
  "scraped_at": "2026-08-21T13:22:37.588Z"
}
```

| Field                      | Type    | Description                                                     |
|-----------------------------|---------|-------------------------------------------------------------------|
| `agency_name`                | string  | Agency name                                                       |
| `profile_url`                 | string  | DesignRush profile URL                                            |
| `website`                     | string  | Agency's own website                                              |
| `tagline`                     | string  | Headline slogan                                                   |
| `description`                 | string  | Agency description                                                |
| `logo_url`                    | string  | Logo image URL                                                    |
| `is_verified`                | boolean | DesignRush-verified badge                                         |
| `is_sponsored`               | boolean | Promoted/sponsored placement in the category listing              |
| `location_city`              | string  | City                                                               |
| `location_state`             | string  | US state (null for non-US agencies)                                |
| `location_country`           | string  | Country                                                            |
| `employee_count_band`        | string  | Employee count range, e.g. `"100 - 249"`                          |
| `avg_hourly_rate`            | string  | Raw hourly rate label, or `"Undisclosed"`                          |
| `avg_hourly_rate_usd_min`    | integer | Parsed hourly rate floor in USD                                    |
| `min_project_size`           | string  | Raw minimum-project-size label                                     |
| `min_project_size_usd`       | integer | Parsed minimum project size floor in USD                          |
| `portfolios_count`           | integer | Number of portfolio projects listed                                |
| `top_services`               | array   | Services shown on the collapsed card                                |
| `services_full`              | array   | Full expanded services list                                        |
| `clients`                    | array   | Named client list published on the agency's profile                |
| `rating`                      | number  | Aggregate rating out of 5                                          |
| `reviews_count`               | integer | Total review count backing the rating                             |
| `reviews`                     | array   | Individual reviews formatted as `"Name (title at company) rating/5 — headline: body"` |
| `featured_review_quote`       | string  | Featured review pull-quote, if the card has one                   |
| `listing_category`            | string  | Category slug this record came from                                |
| `listing_category_id`         | integer | DesignRush's internal category ID                                  |
| `listing_page`                | integer | Page number within the category                                    |
| `listing_position`            | integer | Rank within the category, per DesignRush's own ordering             |
| `source`                       | string  | Always `"designrush.com"`                                          |
| `scraped_at`                   | string  | ISO timestamp of extraction                                         |

***

### FAQ

#### How do I scrape DesignRush agency listings?

DesignRush Agency Directory Scraper needs no login or API key. Pick one or more categories — or leave the field empty for all 38 — set a `maxItems` cap, and run.

#### What data can I get from DesignRush?

Every field visible on an agency's listing card: firmographics, hourly rate, minimum project size, verification and sponsorship status, the full services list, the named client roster, and every individual review with reviewer name, job title, employer, and rating.

#### Can I filter by category?

Yes. Pass one or more category slugs (`digital-marketing`, `it-services`, `cybersecurity`, and 35 others) in the `categories` field. Leave it empty to crawl the entire directory in a single run.

#### Do I need an account or API key for DesignRush?

No. DesignRush Agency Directory Scraper runs without any DesignRush credentials.

#### How much does DesignRush Agency Directory Scraper cost to run?

Pricing is pay-per-result — you're charged per agency record returned. Check the Pricing tab on this Actor's page for the current rate.

***

### Need More Features?

Need custom fields, filters, or a different target site? [File an issue](https://console.apify.com/actors/issues) or get in touch.

### Why Use DesignRush Agency Directory Scraper?

- **Client lists included** — DesignRush is the only major agency directory that publishes a named client roster at listing level, and this scraper captures it on every record.
- **Full reviewer detail, not just stars** — Each review carries a name, job title, and employer, which turns a star rating into a set of qualified, named contacts tied to a documented purchase.
- **Numeric fields alongside raw labels** — Hourly rate and minimum project size ship as parsed integers as well as the source text, so results sort and filter without a cleanup pass.

# Actor input Schema

## `sp_intended_usage` (type: `string`):

What will this data feed? E.g. lead lists, KYB checks, price tracking.

## `sp_improvement_suggestions` (type: `string`):

Provide any feedback or suggestions for improvements.

## `sp_contact` (type: `string`):

We'll personally help with your use case. No spam.

## `resumeCursor` (type: `string`):

Leave empty for a fresh crawl. To CONTINUE a previous run where it stopped — without paying again for records you already received — paste the `resumeCursor` value from that run's Output (the run's OUTPUT key). Resume promptly: the previous run's data expires with your account's retention window (free tier: your ~10 most recent runs).

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

Maximum number of records to scrape

## `categories` (type: `array`):

DesignRush agency categories to crawl. Leave empty to crawl all 38 categories.

## Actor input object example

```json
{
  "sp_intended_usage": "Describe your intended use...",
  "sp_improvement_suggestions": "Share your suggestions here...",
  "sp_contact": "Share your email here...",
  "maxItems": 10,
  "categories": []
}
```

# 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 = {
    "sp_intended_usage": "Describe your intended use...",
    "sp_improvement_suggestions": "Share your suggestions here...",
    "sp_contact": "Share your email here...",
    "maxItems": 10,
    "categories": []
};

// Run the Actor and wait for it to finish
const run = await client.actor("jungle_synthesizer/designrush-agency-directory-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 = {
    "sp_intended_usage": "Describe your intended use...",
    "sp_improvement_suggestions": "Share your suggestions here...",
    "sp_contact": "Share your email here...",
    "maxItems": 10,
    "categories": [],
}

# Run the Actor and wait for it to finish
run = client.actor("jungle_synthesizer/designrush-agency-directory-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 '{
  "sp_intended_usage": "Describe your intended use...",
  "sp_improvement_suggestions": "Share your suggestions here...",
  "sp_contact": "Share your email here...",
  "maxItems": 10,
  "categories": []
}' |
apify call jungle_synthesizer/designrush-agency-directory-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,jungle_synthesizer/designrush-agency-directory-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/BXt52GWdB0D7hqNZf/builds/oauvxvpA2VbxNWP3i/openapi.json
