# CryptoJobsList Scraper - Web3 Job Data (`benthepythondev/cryptojobslist-scraper`) Actor

Scrape CryptoJobsList jobs: title, company, location, remote flag, tags, salary, dates, recruiter name, discussion links and job URL.

- **URL**: https://apify.com/benthepythondev/cryptojobslist-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.md):

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

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.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/platform/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

## ₿ CryptoJobsList Scraper - Web3 Job Data

Scrape job listings from **CryptoJobsList** in one run. Get job titles, companies, locations, remote flags, tags, salary ranges, recruiter names, direct job URLs, company logos, discussion links and cleaned job descriptions from CryptoJobsList category or search pages. Export the results to JSON, CSV or Excel, run the actor on a schedule, call it through the Apify API, or connect the dataset to Make, Zapier, Airtable, Clay, Google Sheets, HubSpot or n8n.

### 🔎 What is the CryptoJobsList Scraper?

CryptoJobsList is a focused Web3 and crypto hiring board used by blockchain companies, exchanges, protocols, DeFi teams, infrastructure providers and crypto-adjacent fintech companies. It covers software engineering, Solidity, Rust, trading, compliance, product, finance, marketing, support, community and operations roles.

This actor turns public CryptoJobsList pages into clean structured job data. It reads the job records embedded in the page's Next.js data, so it does not need a browser, login, proxy or API key. That makes it fast, inexpensive to run and reliable for scheduled monitoring.

#### What data does it extract?

- **Job title** - role name from CryptoJobsList.
- **Company** - hiring company name, slug, verification flag and logo.
- **Company social signal** - company Twitter/X handle when exposed.
- **Location and remote flag** - listed location plus remote classification.
- **Tags and category** - visible CryptoJobsList tags such as full-time, developer, senior, remote, backend, DeFi or engineering.
- **Salary** - salary range when exposed in page data or schema.org metadata.
- **Published and valid-through dates** - useful for freshness and monitoring.
- **Recruiter name** - first/last name when CryptoJobsList exposes the poster.
- **Direct job URL** - stable listing URL for deduplication and follow-up.
- **Application signals** - direct application count and application-click count when exposed.
- **Discussion links** - Telegram and X discussion links when available.
- **Description** - cleaned description text from JobPosting metadata.

### ⬇️ Input

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

#### Example input

```json
{
  "searchUrls": ["https://cryptojobslist.com/blockchain-developer-jobs"],
  "includeDescriptions": true,
  "maxResults": 50
}
````

Keyword search:

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

### ⬆️ Output

Each dataset item is one CryptoJobsList job.

```json
{
  "id": "6a3aa33488df87d319c52890",
  "title": "Senior Backend Software Developer",
  "company": "BitPay",
  "company_slug": "bitpay",
  "company_verified": false,
  "company_twitter": "BitPay",
  "company_logo": "https://img.cryptojobslist.com/job/example.png",
  "location": "Remote",
  "country": null,
  "latitude": null,
  "longitude": null,
  "is_remote": true,
  "category": null,
  "tags": ["full-time", "remote", "developer", "senior", "backend"],
  "employment_type": ["FULL_TIME"],
  "salary": "USD 105000-230000 YEAR",
  "published_at": "2026-06-23T15:16:07.873Z",
  "valid_through": "2026-08-22T15:16:07.873Z",
  "is_featured": true,
  "filled": false,
  "direct_applications": 3,
  "application_clicks": 0,
  "recruiter_name": "Rebecca Hannold",
  "job_url": "https://cryptojobslist.com/jobs/senior-backend-software-developer-at-bitpay",
  "telegram_discussion": "https://t.me/cryptojobslist/11110",
  "twitter_discussion": "https://x.com/CryptoJobsList/status/2069440469465960690",
  "description_short": "Senior Backend Software Developer at BitPay...",
  "source": "cryptojobslist"
}
```

### 💡 Use cases

- **Crypto recruiting** - find active Web3 companies hiring engineers, compliance teams, finance staff, product managers and marketers.
- **Sales intelligence** - hiring for infrastructure, compliance, security or developer roles can signal budget and expansion.
- **Job aggregation** - add Web3 jobs to a broader job-board or talent-market dataset.
- **Market research** - track hiring demand by tag, company, location, category or remote status.
- **Investor monitoring** - monitor portfolio companies and competitors by hiring velocity.
- **Automation** - send new jobs to Airtable, Google Sheets, Slack, HubSpot, Clay, Make, Zapier or n8n.

### 🧭 How to use the data

Use `id` or `job_url` as the deduplication key. For recurring monitoring, schedule the actor daily and compare new IDs against previous runs. If you are building a lead list, enrich companies that repeatedly hire for engineering, security, compliance, trading, support or operations roles. If you are building a job aggregator, combine this dataset with Web3.Career, Ashby, Recruitee, Workable, SmartRecruiters, StepStone, BuiltIn and Working Nomads.

Descriptions can be long. Disable `includeDescriptions` when you only need lightweight lead records with title, company, URL, dates, salary and tags. Keep descriptions enabled when you want search, semantic matching, RAG indexing or role classification.

For tighter targeting, paste specific CryptoJobsList pages into `searchUrls`, such as blockchain developer jobs, Solidity jobs, remote crypto jobs, marketing jobs or compliance jobs. The `keyword` field is useful for quick API runs where you want the actor to build a keyword URL automatically.

### ❓ FAQ

**Does this require a CryptoJobsList account?** No. It reads public job pages.

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

**Can I scrape multiple category URLs?** Yes. Add multiple CryptoJobsList URLs to `searchUrls`.

**Can I search by keyword?** Yes. Use the `keyword` field for terms such as `solidity`, `rust`, `defi`, `compliance`, `security`, `marketing`, `trading` or `remote`.

**Does it include salary?** When CryptoJobsList exposes salary data, the actor returns a readable salary string.

**Does it include recruiter information?** When the poster name is exposed, the actor returns it as `recruiter_name`.

**Is this useful for lead generation?** Yes. Web3 hiring is a strong signal for growth, budget, product roadmap and operational needs.

**How often should I run it?** Daily is a practical cadence for monitoring new jobs without producing too much duplicate data.

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

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

### 🔗 You might also like

- [Web3.Career Jobs Scraper](https://apify.com/benthepythondev/web3career-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:** CryptoJobsList scraper, crypto jobs scraper, Web3 jobs scraper, blockchain jobs scraper, scrape CryptoJobsList, Solidity jobs scraper, DeFi jobs scraper, remote crypto jobs, Web3 hiring data, crypto recruiting leads, blockchain job board API, job postings scraper, hiring intelligence, recruiting automation, Apify jobs scraper.

# Actor input Schema

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

CryptoJobsList category or search URLs to scrape. Leave empty for blockchain developer jobs.

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

Optional keyword used to build a CryptoJobsList jobs URL, for example solidity, defi, rust or marketing.

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

Include cleaned job descriptions when available.

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

Maximum number of jobs to return.

## Actor input object example

```json
{
  "searchUrls": [
    "https://cryptojobslist.com/blockchain-developer-jobs"
  ],
  "keyword": "solidity",
  "includeDescriptions": true,
  "maxResults": 10
}
```

# 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://cryptojobslist.com/blockchain-developer-jobs"
    ],
    "keyword": "solidity",
    "includeDescriptions": true,
    "maxResults": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("benthepythondev/cryptojobslist-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://cryptojobslist.com/blockchain-developer-jobs"],
    "keyword": "solidity",
    "includeDescriptions": True,
    "maxResults": 10,
}

# Run the Actor and wait for it to finish
run = client.actor("benthepythondev/cryptojobslist-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://cryptojobslist.com/blockchain-developer-jobs"
  ],
  "keyword": "solidity",
  "includeDescriptions": true,
  "maxResults": 10
}' |
apify call benthepythondev/cryptojobslist-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "CryptoJobsList Scraper - Web3 Job Data",
        "description": "Scrape CryptoJobsList jobs: title, company, location, remote flag, tags, salary, dates, recruiter name, discussion links and job URL.",
        "version": "1.0",
        "x-build-id": "0B3UMlybhXlbeOMvR"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/benthepythondev~cryptojobslist-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-benthepythondev-cryptojobslist-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~cryptojobslist-scraper/runs": {
            "post": {
                "operationId": "runs-sync-benthepythondev-cryptojobslist-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~cryptojobslist-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-benthepythondev-cryptojobslist-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": "CryptoJobsList category or search URLs to scrape. Leave empty for blockchain developer jobs.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "keyword": {
                        "title": "Keyword",
                        "type": "string",
                        "description": "Optional keyword used to build a CryptoJobsList jobs URL, for example solidity, defi, rust or marketing."
                    },
                    "includeDescriptions": {
                        "title": "Include descriptions",
                        "type": "boolean",
                        "description": "Include cleaned job descriptions when available.",
                        "default": true
                    },
                    "maxResults": {
                        "title": "Max results",
                        "minimum": 1,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "Maximum number of jobs to return.",
                        "default": 50
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
