# Behance Jobs Scraper (`acquistion-automation/behance-jobs-scraper`) Actor

Scrapes Behance job listings filtered by employment type and remote preference. Returns each job as a flat row with title, company, description, and application link.

- **URL**: https://apify.com/acquistion-automation/behance-jobs-scraper.md
- **Developed by:** [Acquisition Automation Co.](https://apify.com/acquistion-automation) (community)
- **Categories:** Jobs, Automation
- **Stats:** 2 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?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

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

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

![Acquisition Automation Co. Search less. Close more.](https://api.apify.com/v2/key-value-stores/AOdPHdOpeDpzEPS5f/records/banner.jpg)

## 🎨 Behance Jobs Scraper

> **Export the Behance job board as rows, with the posted budget attached.** Filter by employment type and remote status, and the Actor returns each opening with its title, company, job type, remote flag, budget range, currency and a link to the posting. No login, no API key.

Behance is Adobe's portfolio network, and its job list is where creative work gets posted: freelance briefs, contract roles and full time design jobs. The board loads a few cards at a time, filters live in the URL, and nothing can be exported. Anyone tracking design demand, rates, or which companies are staffing up ends up scrolling and copying. This Actor walks the board with your filters and writes every opening into a dataset.

| Who uses it | What they use the board for |
|---|---|
| 🏢 Owners and buyers of creative agencies | Watching how much work is going direct to freelancers, and at what budgets |
| 🧭 Recruiters and staffing firms | Sourcing live creative openings and the companies behind them |
| 💼 Freelance designers | Seeing posted budget ranges before deciding what to quote |
| 📈 Market researchers | Measuring demand for design roles by type and remote share over time |

### 📋 What it does

> 💡 **Why it matters:** a posted budget is the rarest thing on a job board. Most boards hide pay. Behance briefs carry a range, and this Actor keeps it as two numeric columns.

- 🎚 **Filters at the source.** Pick an employment type, `FULL_TIME`, `CONTRACT`, `FREELANCE`, `INTERNSHIP` or `TEMPORARY`, or take everything with `ANY`.
- 🏠 **Remote only, when you want it.** One switch limits the run to openings flagged remote.
- 💵 **Keeps the budget range.** `budgetMin` and `budgetMax` come through with the currency code beside them.
- 🏢 **Names the company** posting each opening, and gives the direct link to the posting.
- 🆔 **Carries the Behance job id**, so repeat runs deduplicate cleanly.
- 📦 **One row per opening**, the same 15 fields every run, exportable as CSV, Excel, JSON or XML.

### 📊 Output

Every opening is one flat row. Behance does not fill in every field on every posting, so `null` is common on optional ones.

| Field | Type | Description |
|---|---|---|
| 🖼 `imageUrl` | string | Company or posting image, `null` when the posting carries none |
| 📝 `title` | string | Job title as posted |
| 🔗 `url` | string | Direct link to the posting on Behance |
| 🆔 `id` | string | Behance's own job id, stable across runs |
| 🏢 `companyName` | string | Company or individual that posted the job |
| 🗂 `jobType` | string | Employment type, for example `FREELANCE` |
| 🏠 `isRemote` | boolean | `true` when the posting is flagged remote |
| 📍 `location` | string | Single location string, `null` on remote and unplaced postings |
| 🗺 `locations` | array | List of locations attached to the posting, empty when there are none |
| 💱 `salaryCurrency` | string | Currency code for the budget fields, for example `USD` |
| ⏱ `salaryTimeframe` | string | Period the pay is quoted over, when Behance states one |
| 📉 `budgetMin` | number | Lower bound of the posted budget, passed through from Behance unconverted |
| 📈 `budgetMax` | number | Upper bound of the posted budget, passed through from Behance unconverted |
| 🕒 `scrapedAt` | string | ISO timestamp of collection |
| ⚠️ `error` | string | `null` on a normal row |

#### Example rows

```json
{
  "imageUrl": null,
  "title": "Full UI/UX Redesign and Development for Website",
  "url": "https://www.behance.net/joblist/freelance/532999/Full-UIUX-Redesign-and-Development-for-Website",
  "id": "532999",
  "companyName": "YCCYF",
  "jobType": "FREELANCE",
  "isRemote": true,
  "location": null,
  "locations": [],
  "salaryCurrency": "USD",
  "salaryTimeframe": null,
  "budgetMin": 100000,
  "budgetMax": 250000,
  "scrapedAt": "2026-09-14T16:33:16.358Z",
  "error": null
}
```

```json
{
  "imageUrl": null,
  "title": "Art or Creative Director for Luxury Jewelry Brand",
  "url": "https://www.behance.net/joblist/freelance/534125/Art-or-Creative-Director-for-Luxury-Jewelry-Brand",
  "id": "534125",
  "companyName": "Luxury Jewelry Brand Owner",
  "jobType": "FREELANCE",
  "isRemote": true,
  "location": null,
  "locations": [],
  "salaryCurrency": "USD",
  "salaryTimeframe": null,
  "budgetMin": 250000,
  "budgetMax": 500000,
  "scrapedAt": "2026-09-14T16:33:16.434Z",
  "error": null
}
```

### ✨ Why choose this Actor

| | What you get |
|---|---|
| **Budget as numbers** | `budgetMin` and `budgetMax` are numeric columns, not text buried in a description. |
| **Filters before the run** | Employment type and remote status are applied at the source, so you pay for rows you wanted. |
| **No credentials** | The job list is public. No Adobe account, no API key. |
| **A stable id per job** | `id` lets a daily run tell new postings from ones you already have. |
| **You pay per row** | No subscription. A filter that matches nothing costs nothing. |

### 🚀 How to use it

1. [Create a free Apify account](https://console.apify.com/sign-up). New accounts start with $5 of credit.
2. Open the Actor and select **Try for free**.
3. Choose a `jobType`, or leave it on `ANY`.
4. Set `remoteOnly` if you only want remote postings, and set `maxItems` to cap the run.
5. Select **Start**, then export from the **Dataset** tab as CSV, Excel, JSON or XML.

A first run:

```json
{
  "jobType": "ANY",
  "remoteOnly": false,
  "maxItems": 10
}
```

Remote freelance briefs only:

```json
{
  "jobType": "FREELANCE",
  "remoteOnly": true,
  "maxItems": 200
}
```

### ⚙️ Input

| Field | Required | Description |
|---|---|---|
| `jobType` | No | Employment type filter: `ANY`, `FULL_TIME`, `CONTRACT`, `FREELANCE`, `INTERNSHIP` or `TEMPORARY`. Defaults to `ANY` |
| `remoteOnly` | No | `true` returns only postings flagged as remote. Defaults to `false` |
| `maxItems` | No | Maximum job listings to collect in a run |

### 💰 Pricing

Pay per result. No subscription, and no Apify platform usage on top.

| Apify plan | Free | Bronze | Silver | Gold | Platinum | Diamond |
|---|---|---|---|---|---|---|
| Per job row | $0.021 | $0.0203 | $0.0197 | $0.019 | $0.019 | $0.019 |

| Rows collected | Cost on the Free plan |
|---|---|
| 100 | $2.10 |
| 1,000 | $21.00 |
| 10,000 | $210.00 |

**Free plan runs** return up to 10 rows as a preview. Any paid Apify plan lifts that to 1,000,000 per run.

### 🔌 Integrate with any app

The dataset is available through the Apify API as soon as the run finishes. Use `run-sync-get-dataset-items` for a one-shot call, webhooks to trigger what happens next, or the Make, Zapier, Airbyte and LangChain integrations listed on the Actor page.

### 🤖 Use with an AI agent

Give an agent live access to the Behance job board over the Model Context Protocol:

```bash
claude mcp add --transport http apify "https://mcp.apify.com?tools=acquistion-automation/behance-jobs-scraper"
```

Then ask it in plain language for today's remote freelance briefs and read the rows back.

### ❓ Frequently asked questions

**Does it return the job description?**
No. The output carries the title, company, type, remote flag, location fields, budget range and the link. Read the posting itself at `url` for the full brief.

**How should I read `budgetMin` and `budgetMax`?**
They are passed through exactly as Behance publishes them, as whole numbers with no decimal point. Compare one row against its posting at `url` before treating the figure as whole currency units, then apply the same factor to the column.

**Why are `location` and `locations` empty?**
Remote and unplaced postings carry no location on Behance. Check `isRemote` for those rows.

**Why is `imageUrl` null?**
Many postings have no image attached. The Actor returns `null` rather than guessing one.

**Can I get only full time roles?**
Yes. Set `jobType` to `FULL_TIME`. The filter is applied before rows are collected, so you are not billed for the rest.

**What can I export?**
CSV, Excel, JSON and XML from the run page, or JSON straight from the API.

### 🔗 More from Acquisition Automation Co.

- [Clutch Agencies Scraper](https://apify.com/acquistion-automation/clutch-agencies-scraper)
- [SAM.gov Contract Opportunities Scraper](https://apify.com/acquistion-automation/sam-gov-contracts-scraper)
- [BizBuySell Scraper](https://apify.com/acquistion-automation/bizbuysell-scraper)
- [AIA Architect Finder Scraper](https://apify.com/acquistion-automation/aia-architect-finder-scraper)
- [IRS Exempt Organizations Scraper](https://apify.com/acquistion-automation/irs-eo-master-file-scraper)

### About Acquisition Automation Co.

We build automation for people buying businesses. The repetitive part of an acquisition search, checking listings, pulling public records, tracking owners and assets, is work a machine should do, so the buyer's time goes into judging deals instead of collecting them.

We add new Actors regularly. If there is a source you need and do not see here, tell us.

### 🆘 Support

Open an issue in the **Issues** tab of this Actor with your run ID, the input you used, and what you expected to get back.

### ⚠️ Disclaimer

This Actor is independent and is not affiliated with, endorsed by, or sponsored by Behance or Adobe Inc. It collects only publicly available data. You are responsible for using that data in compliance with the source's terms of service and applicable law.

# Actor input Schema

## `jobType` (type: `string`):

Filter by employment type.

## `remoteOnly` (type: `boolean`):

Return only jobs flagged as remote.

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

How many job listings to collect per run.

## Actor input object example

```json
{
  "jobType": "ANY",
  "remoteOnly": false,
  "maxItems": 10
}
```

# Actor output Schema

## `results` (type: `string`):

Scraped records.

# 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 = {
    "maxItems": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("acquistion-automation/behance-jobs-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 = { "maxItems": 10 }

# Run the Actor and wait for it to finish
run = client.actor("acquistion-automation/behance-jobs-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 '{
  "maxItems": 10
}' |
apify call acquistion-automation/behance-jobs-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,acquistion-automation/behance-jobs-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/4elUYdEFaL0HESr4W/builds/FTwu0H6z8OeGZVaxa/openapi.json
