# Web3 & Crypto Jobs Scraper (`logiover/web3-crypto-jobs-scraper`) Actor

Scrape crypto, blockchain and Web3 job listings from web3.career with full pagination — job title, company, tags and apply link. Schedule it to monitor crypto-industry hiring.

- **URL**: https://apify.com/logiover/web3-crypto-jobs-scraper.md
- **Developed by:** [Logiover](https://apify.com/logiover) (community)
- **Categories:** Jobs, Lead generation
- **Stats:** 29 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.50 / 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/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

## 🪙 Web3 & Crypto Jobs Scraper — Blockchain Job Listings to JSON/CSV/Excel

Scrape **crypto, blockchain and Web3 job listings from [web3.career](https://web3.career)** — one of the largest dedicated Web3 job boards. This **web3.career scraper** paginates the entire board and returns a clean, structured feed of crypto-industry jobs: title, company, skill tags and direct apply links, ready to export to JSON, CSV or Excel.

Crypto hiring moves fast and pays well. Built for **scheduled, recurring use** with **no API key and no login**, this Actor keeps you on top of the latest blockchain and Web3 openings — whether you are a recruiter, a job aggregator or a developer hunting for a Solidity role.

### ✨ What this Actor does / Key features

- **Scrapes web3.career** — pulls crypto, blockchain and Web3 job listings from a leading niche job board.
- **Full pagination** — crawls every page of the board, not just the homepage, so you get the complete jobs feed.
- **Rich data per job** — job title, hiring company, skill/tech tags and a direct apply URL.
- **Keyword filtering** — `searchKeyword` matches against title, company and tags to narrow results to a niche (e.g. `solidity`, `rust`, `defi`).
- **Adjustable run size** — set `maxJobs` to cap the run, or `0` to pull every available listing.
- **No API key, no blocking** — pure HTTP requests, fast and reliable.
- **Structured, export-ready output** — flat JSON records perfect for JSON, CSV, Excel, databases or BI tools.
- **Schedule-friendly** — designed to run daily for a continuously updated crypto-jobs dataset.

### 🔍 Input

| Field | Type | Description |
|-------|------|-------------|
| `searchKeyword` | string | Free-text keyword matched against job title, company and tags. Leave empty to scrape all crypto jobs. |
| `maxJobs` | integer | Maximum number of jobs to save. `0` = all available listings. Minimum `0`. |

### 🚀 Example input

```json
{
  "searchKeyword": "solidity",
  "maxJobs": 0
}
````

Scrape every job on the board (no keyword filter):

```json
{
  "searchKeyword": "",
  "maxJobs": 500
}
```

### 📦 Output

Each item in the dataset is one Web3 job listing. Output is flat, structured JSON — easy to export to CSV or Excel or push into a database.

| Field | Description |
|-------|-------------|
| `jobId` | Unique identifier for the job listing on web3.career. |
| `title` | Job title (e.g. "Senior Solidity Engineer"). |
| `company` | Name of the hiring company. |
| `url` | Direct link to the job posting / apply page. |
| `tags` | Array of skill and technology tags attached to the listing (e.g. `["Solidity", "Remote", "DeFi"]`). |
| `scrapedAt` | ISO timestamp of when the record was scraped. |

#### Example output record

```json
{
  "jobId": "123456",
  "title": "Senior Solidity Engineer",
  "company": "Acme Protocol",
  "url": "https://web3.career/senior-solidity-engineer-acme-protocol/123456",
  "tags": ["Solidity", "Remote", "DeFi", "Smart Contracts"],
  "scrapedAt": "2026-05-15T08:30:00.000Z"
}
```

### 💡 Use cases

- **Crypto & Web3 recruiters** — maintain a fresh feed of blockchain roles and spot which companies are hiring.
- **Job boards & aggregators** — automatically power a crypto-jobs section with up-to-date listings.
- **Market researchers** — track hiring trends, in-demand skills and which Web3 companies are growing.
- **Job seekers & developers** — monitor new openings by keyword (Solidity, Rust, DeFi, etc.) and get apply links instantly.
- **Talent-intelligence teams** — analyze the Web3 labor market by company, role and skill tag over time.

### ❓ Frequently Asked Questions

**Is it legal to scrape web3.career?**
The Actor collects publicly visible job listings — the same data any visitor sees on the site. You are responsible for complying with web3.career's terms of service and for how you use the data.

**Do I need an API key or login?**
No. The Actor uses plain HTTP requests and requires no API key, no account and no login.

**How many jobs can I get?**
The Actor paginates the entire board. Set `maxJobs` to `0` to pull every available listing, or set a smaller number for a faster, capped run.

**Can I filter by skill or role?**
Yes. Use `searchKeyword` to match against title, company and tags — for example `solidity`, `rust`, `defi` or a company name. Leave it empty to get all crypto jobs.

**How fast is it and how much does it cost?**
It runs as pure HTTP and finishes quickly even for a full board crawl. Cost depends only on the small amount of Apify compute used; there are no third-party fees.

**Can I schedule it to run automatically?**
Yes. Use the Apify Scheduler to run the Actor daily (or more often) for a continuously refreshed Web3 jobs feed.

**What output formats are supported?**
Results are stored in an Apify dataset and can be exported to JSON, CSV, Excel, XML or HTML, or pulled via the Apify API.

### ⏰ Scheduling & integration

Schedule this Actor on Apify to run daily for a continuously updated Web3 and crypto jobs feed. Export results to JSON, CSV or Excel, pull them via the Apify API, or connect the dataset to Google Sheets, webhooks or your own ATS / data pipeline.

# Actor input Schema

## `searchKeyword` (type: `string`):

Free-text keyword matched against title, company and tags. Leave empty for all crypto jobs.

## `maxJobs` (type: `integer`):

Maximum jobs to save. 0 = all.

## Actor input object example

```json
{
  "searchKeyword": ""
}
```

# Actor output Schema

## `title` (type: `string`):

title

## `company` (type: `string`):

company

## `tags` (type: `string`):

tags

## `url` (type: `string`):

url

# 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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("logiover/web3-crypto-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 = {}

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

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Web3 & Crypto Jobs Scraper",
        "description": "Scrape crypto, blockchain and Web3 job listings from web3.career with full pagination — job title, company, tags and apply link. Schedule it to monitor crypto-industry hiring.",
        "version": "1.0",
        "x-build-id": "o8DgrFZTdkbeLyxn4"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/logiover~web3-crypto-jobs-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-logiover-web3-crypto-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/logiover~web3-crypto-jobs-scraper/runs": {
            "post": {
                "operationId": "runs-sync-logiover-web3-crypto-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/logiover~web3-crypto-jobs-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-logiover-web3-crypto-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": {
                    "searchKeyword": {
                        "title": "Search Keyword",
                        "type": "string",
                        "description": "Free-text keyword matched against title, company and tags. Leave empty for all crypto jobs.",
                        "default": ""
                    },
                    "maxJobs": {
                        "title": "Max Jobs",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum jobs to save. 0 = all."
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
