Skip to main content
The crustdata CLI puts the full API in your terminal: every endpoint is a typed command with real flags. It renders markdown tables when you’re looking and raw JSON when you’re piping, so the same commands serve you, your scripts, and your agents.

Quick start

1

Install

On Windows:
The installer verifies checksums, puts the binary in ~/.crustdata/bin, and adds that directory to your PATH (set CRUSTDATA_NO_MODIFY_PATH=1 to skip). Open a new terminal, then upgrade later with crustdata upgrade.
2

Authenticate

Opens your browser: sign in, pick your team, and the CLI stores the resulting API key. No browser on the machine? --no-browser prints the sign-in URL and asks you to paste the redirect back. For CI and scripts, pipe a key in with crustdata auth login --with-token < key.txt, or set CRUSTDATA_API_KEY.
3

Run a command

Commands

Add --live to search or enrich to query the professional network in real time instead of the indexed dataset.

Filters

Search commands take repeatable --filter 'field op value' expressions that AND together:
Operators come straight from the API: = != < > =< => in not_in (.) [.]. For or logic and nested groups, pass a full JSON body with --input query.json (or --input - for stdin). Flags override matching body fields.
Every request command supports --dry-run (print the composed body without sending it, at no cost) and --example (print real request examples from the API spec). Tab completion knows the filter fields: run crustdata completion zsh to set it up.

Output

  • On a terminal: markdown tables. Piped: raw response JSON. Force either with --format json|md.
  • Filter JSON inline with the built-in --jq (no jq install needed): crustdata account credits --jq .account.credits
  • stdout carries data only; progress and hints go to stderr. Exit codes: 0 success, 1 API error, 2 usage error, 4 auth error.
  • Nothing auto-paginates, because pages cost credits. Follow next_cursor explicitly.

Examples

Every example below runs as written (tested against v0.1.3).

Companies

People

Jobs, posts, and the web

Account and housekeeping

Dry runs, spec examples, and completion

Nothing in this group spends credits or needs auth, except live value completion.
Tab completion, one-time setup per shell:
Named examples need the = form (--example=name); bare --example lists what’s available. Value completion makes a free autocomplete API call; offline or logged out it completes nothing, without an error.

Bulk jobs

Submits the job, polls until it completes, and downloads the results as decompressed JSONL. Or fire-and-forget and come back later with crustdata batch status <id> and crustdata batch download <id>.

Search the docs

The CLI reads these docs over their public MCP server, so answers arrive where you’re already working. No authentication needed:

Set up the Crustdata MCP

crustdata mcp install wires the hosted Crustdata MCP server into your agent clients:
Supported targets: claude-code (plugin by default, --mcp-only for the bare server), cursor, vscode, windsurf, claude-desktop (via the mcp-remote bridge), and claude-web (printed manual steps, since connectors are account-level). Config edits are merge-preserving — only the crustdata entry is ever touched, and --dry-run prints the exact change without writing anything. Auth defaults to OAuth on first connect inside each client. For headless setups, --with-key bakes your stored API key into the client config (plaintext, with a loud warning), and --with-key=env writes a ${env:CRUSTDATA_API_KEY} reference instead.

For scripts and agents

Piped output is always raw JSON, with no TTY-detection surprises. --jq runs everywhere without dependencies, and --help on any command includes runnable examples. Agents can explore safely: --dry-run composes any request without spending credits.

Non-interactive authentication

The browser flow only triggers on a real terminal — when stdin is a pipe, the CLI never opens a browser, and the paste prompt only appears when you give it nothing else, so agents never hang on a hidden prompt. Pick one of three paths:
auth login validates the key against the API before saving and exits with code 4 on a bad key, so a broken credential fails at setup instead of mid-task. Check state anytime with crustdata auth status.