# API Filtering Guide

The API supports filtering by tag, country, and remote status. These filters can be combined to build highly targeted job searches. This guide covers every available filter value and strategies for getting the most out of them.

***

### Tag Filtering <a href="#tag-filtering" id="tag-filtering"></a>

The `tag` parameter is the most powerful filter. It accepts a **single** slug per request — you cannot combine multiple tags in one call.

#### How Tags Work <a href="#how-tags-work" id="how-tags-work"></a>

* Tags are exact-match slugs: `"solidity"` works, `"Solidity"` or `"solidity developer"` does not
* One tag per request — to search across multiple tags, make separate API calls
* Invalid tags return empty results with no error, so always validate against the known list
* Tags cover roles, technologies, languages, ecosystems, and Web3-specific concepts

#### Complete Tag Reference <a href="#complete-tag-reference" id="complete-tag-reference"></a>

**Roles & Seniority**

| Tag                   | What It Returns                                           |
| --------------------- | --------------------------------------------------------- |
| `analyst`             | Data analysts, business analysts, research analysts       |
| `community-manager`   | Community managers, community leads                       |
| `cto`                 | CTO and senior technical leadership positions             |
| `customer-support`    | Support engineers, customer success roles                 |
| `data-science`        | Data scientists, ML engineers in Web3                     |
| `design`              | UI/UX designers, product designers, graphic designers     |
| `developer-relations` | DevRel, developer advocates, ecosystem leads              |
| `devops`              | DevOps engineers, SRE, infrastructure roles               |
| `economy-designer`    | Tokenomics designers, game economy architects             |
| `entry-level`         | Junior roles, associate positions, no experience required |
| `intern`              | Internship positions                                      |
| `marketing`           | Marketing managers, growth leads, content marketers       |
| `moderator`           | Discord/community moderators                              |
| `non-tech`            | Non-technical roles across all categories                 |
| `product-manager`     | Product managers, product owners                          |
| `project-manager`     | Project managers, program managers                        |
| `research`            | Researchers — cryptography, protocol, market research     |
| `sales`               | Sales representatives, business development               |

**Engineering Disciplines**

| Tag              | What It Returns                                      |
| ---------------- | ---------------------------------------------------- |
| `backend`        | Backend engineers, API developers, server-side roles |
| `front-end`      | Frontend engineers, UI developers                    |
| `full-stack`     | Full-stack developers                                |
| `mobile`         | iOS, Android, React Native developers                |
| `smart-contract` | Smart contract developers, auditors                  |
| `cryptography`   | Cryptographers, zero-knowledge engineers             |
| `gaming`         | Game developers, metaverse engineers                 |
| `security`       | Security engineers, auditors, pen testers            |

**Languages & Frameworks**

| Tag          | What It Returns                                        |
| ------------ | ------------------------------------------------------ |
| `golang`     | Go/Golang developer positions                          |
| `java`       | Java developer positions                               |
| `javascript` | JavaScript developer positions                         |
| `node`       | Node.js backend positions                              |
| `python`     | Python developer positions                             |
| `react`      | React/React Native frontend positions                  |
| `ruby`       | Ruby developer positions                               |
| `rust`       | Rust developer positions (very common in Web3)         |
| `solidity`   | Solidity smart contract positions (Ethereum ecosystem) |
| `typescript` | TypeScript developer positions                         |
| `web3js`     | Positions requiring Web3.js library experience         |
| `web3-py`    | Positions requiring Web3.py (Python) experience        |

**Blockchain Ecosystems**

| Tag          | What It Returns                                         |
| ------------ | ------------------------------------------------------- |
| `bitcoin`    | Bitcoin-focused roles (Lightning, Ordinals, mining)     |
| `blockchain` | General blockchain roles (not ecosystem-specific)       |
| `ethereum`   | Ethereum ecosystem roles                                |
| `evm`        | EVM-compatible chain roles (broader than just Ethereum) |
| `solana`     | Solana ecosystem roles                                  |
| `polkadot`   | Polkadot/Substrate ecosystem roles                      |
| `layer-2`    | L2 scaling solutions (Arbitrum, Optimism, zkSync, etc.) |

**Web3-Specific Concepts**

| Tag              | What It Returns                                           |
| ---------------- | --------------------------------------------------------- |
| `ai`             | AI/ML roles within Web3 companies                         |
| `crypto`         | General cryptocurrency roles                              |
| `dao`            | DAO governance, operations, tooling roles                 |
| `defi`           | Decentralised finance roles (protocols, yield, lending)   |
| `discord`        | Discord-focused roles (bot dev, community)                |
| `erc`            | ERC standard-related development                          |
| `erc-20`         | ERC-20 token-specific roles                               |
| `ganache`        | Roles requiring Ganache (Truffle suite)                   |
| `hardhat`        | Roles requiring Hardhat development framework             |
| `nft`            | NFT-related roles (marketplaces, collections, tooling)    |
| `open-source`    | Open-source focused positions                             |
| `openzeppelin`   | Roles requiring OpenZeppelin library knowledge            |
| `pay-in-crypto`  | Positions that offer cryptocurrency compensation          |
| `refi`           | Regenerative finance roles                                |
| `truffle`        | Roles requiring Truffle development framework             |
| `zero-knowledge` | Zero-knowledge proof roles (zkSNARKs, zkSTARKs, circuits) |

***

### Country Filtering <a href="#country-filtering" id="country-filtering"></a>

The `country` parameter uses **lowercase, hyphenated slugs** — not country names, ISO codes, or abbreviations.

#### Format Rules <a href="#format-rules" id="format-rules"></a>

| Input            | Valid? | Notes                                    |
| ---------------- | ------ | ---------------------------------------- |
| `united-states`  | Yes    | Correct slug format                      |
| `United States`  | **No** | Must be lowercase and hyphenated         |
| `USA`            | **No** | ISO codes not supported                  |
| `us`             | **No** | Two-letter codes not supported           |
| `germany`        | Yes    | Single-word countries are just lowercase |
| `united-kingdom` | Yes    | Multi-word countries use hyphens         |

#### Common Country Slugs <a href="#common-country-slugs" id="common-country-slugs"></a>

```
united-states
united-kingdom
germany
france
singapore
canada
australia
switzerland
netherlands
portugal
spain
india
japan
brazil
dubai
hong-kong
south-korea
```

> **Tip:** If you're unsure of the exact slug for a country, try the lowercase, hyphenated version of the English country name. Invalid slugs return empty results — they won't cause errors.

***

### Remote Filtering <a href="#remote-filtering" id="remote-filtering"></a>

The `remote` parameter filters for remote-only positions.

```
# Remote jobs only
?remote=true

# All jobs (remote + on-site) — just omit the parameter
?token=YOUR_TOKEN&limit=20
```

There is no `remote=false` for on-site-only filtering. Omitting the parameter returns all positions.

***

### Combining Filters <a href="#combining-filters" id="combining-filters"></a>

All filters can be used together. Each additional filter narrows the results.

#### Combination Examples <a href="#combination-examples" id="combination-examples"></a>

```bash
# Remote Rust jobs (worldwide)
?tag=rust&remote=true

# Smart contract jobs in the United States
?tag=smart-contract&country=united-states

# Remote DeFi jobs, top 50
?tag=defi&remote=true&limit=50

# Entry-level remote positions, no descriptions (fast payload)
?tag=entry-level&remote=true&show_description=false

# Zero-knowledge roles in Switzerland
?tag=zero-knowledge&country=switzerland
```

#### Filter Interaction <a href="#filter-interaction" id="filter-interaction"></a>

* **tag + country**: Returns jobs matching the tag AND located in that country
* **tag + remote**: Returns jobs matching the tag AND flagged as remote
* **country + remote**: Returns remote jobs based in that country (some remote roles are geo-restricted)
* **All three**: Most specific — e.g., remote Solidity jobs based in the US

***

### Search Strategies <a href="#search-strategies" id="search-strategies"></a>

Since the API only supports one tag per request, here are practical strategies for common use cases.

#### "Find me a Solidity developer role" <a href="#find-me-a-solidity-developer-role" id="find-me-a-solidity-developer-role"></a>

Single call — the tag does the work:

```
?tag=solidity&limit=50
```

#### "Find me any engineering role" <a href="#find-me-any-engineering-role" id="find-me-any-engineering-role"></a>

Make parallel calls across engineering tags:

```
?tag=backend&limit=30
?tag=front-end&limit=30
?tag=full-stack&limit=30
?tag=smart-contract&limit=30
```

Deduplicate results by job `id` or `url` on the client side.

#### "What jobs pay in crypto?" <a href="#what-jobs-pay-in-crypto" id="what-jobs-pay-in-crypto"></a>

```
?tag=pay-in-crypto&limit=100
```

#### "Show me non-technical Web3 jobs" <a href="#show-me-non-technical-web3-jobs" id="show-me-non-technical-web3-jobs"></a>

```
?tag=non-tech&limit=50
```

Or search specific non-tech roles:

```
?tag=marketing&limit=30
?tag=sales&limit=30
?tag=community-manager&limit=30
?tag=product-manager&limit=30
```

#### "Find remote jobs in a specific ecosystem" <a href="#find-remote-jobs-in-a-specific-ecosystem" id="find-remote-jobs-in-a-specific-ecosystem"></a>

```
?tag=solana&remote=true&limit=50
?tag=ethereum&remote=true&limit=50
?tag=polkadot&remote=true&limit=50
```

#### "What AI roles exist in Web3?" <a href="#what-ai-roles-exist-in-web3" id="what-ai-roles-exist-in-web3"></a>

```
?tag=ai&limit=100
```

#### "Find me entry-level positions to break into Web3" <a href="#find-me-entry-level-positions-to-break-into-web3" id="find-me-entry-level-positions-to-break-into-web3"></a>

```
?tag=entry-level&limit=50
?tag=intern&limit=50
```

#### Reducing Response Size for Browsing <a href="#reducing-response-size-for-browsing" id="reducing-response-size-for-browsing"></a>

When building a listing/browse UI or doing an initial scan, disable descriptions:

```
?tag=defi&limit=100&show_description=false
```

Then fetch full details (with descriptions) only for jobs the user clicks on. This dramatically reduces payload size and response time.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.bondex.app/api-reference/web3-career-jobs-api/api-filtering-guide.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
