# Web3.Career Jobs Scraper - Crypto Hiring Data (`benthepythondev/web3career-jobs-scraper`) Actor

Scrape Web3.Career jobs: title, company, location, remote flag, category, tags, salary, posted date, job URL and description.

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

## Pricing

from $3.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.

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

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js/docs.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/integrations/mcp.md).

If your project is in a different language, use 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

## ₿ Web3.Career Jobs Scraper - Crypto Hiring Data

Scrape job listings from **Web3.Career** in one run. Get job titles, companies, locations, remote flags, categories, tags, salary metadata, posted dates, direct job URLs, company logos and cleaned descriptions from Web3.Career search pages. Export to JSON/CSV/Excel, run on a schedule, call via API, or connect to Make, Zapier or n8n.

### 🔎 What is the Web3.Career Jobs Scraper?

Web3.Career is a crypto, blockchain and Web3 job board covering engineering, trading, compliance, marketing, operations, community, product and finance roles. This actor turns public Web3.Career search/category pages into structured data for recruiting, market research, job aggregation and sales intelligence.

The actor uses plain HTTP and parses the job data already embedded on the page in schema.org `JobPosting` blocks plus the visible job table. It does not require a browser, login, proxy or API key.

#### What data does it extract?

- **Job title** - role name from Web3.Career.
- **Company** - hiring organization name and logo when available.
- **Location and remote flag** - location text plus telecommute signal.
- **Employment type and category** - job classification when exposed.
- **Tags** - visible Web3.Career tags such as remote or role category.
- **Salary** - salary range when exposed in structured data.
- **Posted and valid-through dates** - useful for freshness monitoring.
- **Direct job URL** - Web3.Career listing URL.
- **Description** - cleaned job description text, optional for smaller datasets.
- **Stable ID** - extracted from the listing row or URL.

### ⬇️ Input

| Field | Type | Description |
| --- | --- | --- |
| `searchUrls` | array | Web3.Career search/category URLs. Leave empty for remote Web3 jobs. |
| `keyword` | string | Optional keyword used to build a Web3.Career jobs URL. |
| `includeDescriptions` | boolean | Include cleaned descriptions in the output. |
| `maxResults` | integer | Maximum jobs to return. |

#### Example input

```json
{
  "searchUrls": ["https://web3.career/remote-jobs"],
  "includeDescriptions": true,
  "maxResults": 50
}
````

Keyword search:

```json
{
  "keyword": "solidity",
  "maxResults": 25
}
```

### ⬆️ Output

Each dataset item is one Web3.Career job listing.

```json
{
  "id": "151023",
  "title": "Concierge Agent",
  "company": "Tastylive",
  "location": "Remote",
  "is_remote": true,
  "employment_type": "FULL_TIME",
  "industry": "Blockchain",
  "category": "Customer Support",
  "tags": ["remote"],
  "salary": "USD 80000-120000 YEAR",
  "posted_date": "2026-07-02 19:06:12 +0100",
  "valid_through": "2026-08-01",
  "job_url": "https://web3.career/concierge-agent-tastylive/151023",
  "company_logo": "",
  "description": "Company Name: tastytrade Role: Concierge Agent...",
  "description_short": "Company Name: tastytrade Role: Concierge Agent...",
  "source": "web3career"
}
```

### 💡 Use cases

- **Crypto recruiting** - monitor Web3 companies hiring engineers, compliance teams, traders, marketers and operations staff.
- **Sales triggers** - hiring activity can signal growth, budget, expansion or operational pain.
- **Job aggregation** - add crypto/web3 roles to a broader job-board dataset.
- **Market research** - track hiring demand across Web3 categories, locations and remote roles.
- **Investor intelligence** - monitor portfolio or competitor hiring velocity.
- **Automation** - send new Web3 roles to Airtable, Google Sheets, HubSpot, Clay, Make, Zapier or n8n.

### 🧭 How to use the data

Use `id` or `job_url` as the deduplication key. For recurring monitoring, run the actor daily and compare new rows against previous datasets. For narrower coverage, paste Web3.Career category URLs or provide a keyword such as `solidity`, `defi`, `trading`, `marketing`, `compliance`, `security` or `remote`.

This actor is especially useful alongside general job-board actors. Pair it with Ashby, Recruitee, Workable, SmartRecruiters, StepStone and Working Nomads to capture both company career pages and specialized crypto job-board demand.

Descriptions can be long. Disable `includeDescriptions` when you only need lightweight lead records with title, company, URL, date, tags and salary.

### 📈 Common workflows

Recruiting teams can schedule the actor against role-specific URLs such as Solidity, protocol engineering, compliance, trading operations or product marketing, then send new matches into a CRM or applicant-sourcing spreadsheet. Sales teams can monitor companies that are hiring for infrastructure, finance, support or compliance roles and use those openings as expansion or buying-intent signals. Analysts can track hiring velocity by company, category or remote status to understand where Web3 teams are still investing.

For a simple daily workflow, run the actor once per morning with `maxResults` set to your expected volume, store the output in a dataset, and compare `id` values against yesterday's run. New rows can trigger Slack alerts, email digests, lead enrichment, or downstream automations in Clay, HubSpot, Airtable, Make, Zapier or n8n.

### ❓ FAQ

**Does this require a Web3.Career account?** No. It reads public job listing pages.

**Does it use a browser?** No. It fetches HTML directly and parses embedded structured job data.

**Can I scrape category URLs?** Yes. Paste Web3.Career search or category URLs in `searchUrls`.

**Can I search by keyword?** Yes. The `keyword` field builds a Web3.Career jobs URL for that keyword.

**Does it include salary?** When Web3.Career exposes salary in structured data, the actor returns a readable salary string.

**Does it include direct job URLs?** Yes. The actor combines structured data with the visible table rows to recover listing URLs.

**Is this good for lead generation?** Yes. Web3 hiring activity is a strong signal for recruiting, compliance, finance, security, infrastructure and B2B SaaS workflows.

**How often should I run it?** Daily is usually enough for monitoring new listings.

**Is it legal to scrape Web3.Career jobs?** The actor collects publicly available job postings. You are responsible for using the output lawfully and respecting privacy, employment, anti-spam and platform rules.

**How do I avoid duplicates?** Use `id` or `job_url` as your stable key.

### 🔗 You might also like

- [Working Nomads Jobs Scraper](https://apify.com/benthepythondev/workingnomads-jobs-scraper)
- [Ashby Jobs Scraper](https://apify.com/benthepythondev/ashby-jobs-scraper)
- [Recruitee Jobs Scraper](https://apify.com/benthepythondev/recruitee-jobs-scraper)
- [Workable Jobs Scraper](https://apify.com/benthepythondev/workable-jobs-scraper)
- [SmartRecruiters Jobs Scraper](https://apify.com/benthepythondev/smartrecruiters-jobs-scraper)
- [StepStone Scraper](https://apify.com/benthepythondev/stepstone-scraper)

**Keywords:** Web3.Career scraper, Web3 Career jobs scraper, crypto jobs scraper, blockchain jobs scraper, Web3 hiring data, scrape Web3.Career, remote crypto jobs, Solidity jobs scraper, DeFi jobs scraper, crypto recruiting leads, blockchain job board API, job postings scraper, hiring intelligence, recruiting automation, Apify jobs scraper.

### Support and feedback

If this Actor saves time in your workflow, please leave a short Apify Store review. Reviews help other users evaluate the tool and help prioritize maintenance. If a source changes or a field stops populating, open an Actor issue with the run ID, public input, and expected field. Never include passwords, private cookies, or confidential data.

# Actor input Schema

## `searchUrls` (type: `array`):

Web3.Career search/category URLs. Leave empty for remote Web3 jobs.

## `keyword` (type: `string`):

Optional keyword used to build a Web3.Career jobs URL, for example solidity, marketing, defi or remote.

## `includeDescriptions` (type: `boolean`):

Include cleaned job descriptions in the output.

## `maxResults` (type: `integer`):

Maximum jobs to return.

## Actor input object example

```json
{
  "searchUrls": [
    "https://web3.career/remote-jobs"
  ],
  "keyword": "remote",
  "includeDescriptions": true,
  "maxResults": 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 = {
    "searchUrls": [
        "https://web3.career/remote-jobs"
    ],
    "keyword": "remote",
    "maxResults": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("benthepythondev/web3career-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 = {
    "searchUrls": ["https://web3.career/remote-jobs"],
    "keyword": "remote",
    "maxResults": 10,
}

# Run the Actor and wait for it to finish
run = client.actor("benthepythondev/web3career-jobs-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 '{
  "searchUrls": [
    "https://web3.career/remote-jobs"
  ],
  "keyword": "remote",
  "maxResults": 10
}' |
apify call benthepythondev/web3career-jobs-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Web3.Career Jobs Scraper - Crypto Hiring Data",
        "description": "Scrape Web3.Career jobs: title, company, location, remote flag, category, tags, salary, posted date, job URL and description.",
        "version": "1.0",
        "x-build-id": "grVRKuaOj5v5w3Ljd"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/benthepythondev~web3career-jobs-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-benthepythondev-web3career-jobs-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/benthepythondev~web3career-jobs-scraper/runs": {
            "post": {
                "operationId": "runs-sync-benthepythondev-web3career-jobs-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/benthepythondev~web3career-jobs-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-benthepythondev-web3career-jobs-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "searchUrls": {
                        "title": "Search URLs",
                        "type": "array",
                        "description": "Web3.Career search/category URLs. Leave empty for remote Web3 jobs.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "keyword": {
                        "title": "Keyword",
                        "type": "string",
                        "description": "Optional keyword used to build a Web3.Career jobs URL, for example solidity, marketing, defi or remote."
                    },
                    "includeDescriptions": {
                        "title": "Include descriptions",
                        "type": "boolean",
                        "description": "Include cleaned job descriptions in the output.",
                        "default": true
                    },
                    "maxResults": {
                        "title": "Max results",
                        "minimum": 1,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "Maximum jobs to return.",
                        "default": 10
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
