---
name: jobspipe-setup
description: Connect JobsPipe to this agent. Live job postings and hiring signals from 30+ ATS sources and job boards, plus company tech-stack scans. Gets a key, adds the MCP server, installs the skill and CLI, runs a first query.
user-invocable: true
allowed-tools: Bash, Read, Write
---

# Set up JobsPipe

JobsPipe is a jobs-data API: live, deduplicated job postings from Workday, Greenhouse, Lever, Ashby, LinkedIn, Indeed and 30+ other ATS platforms and job boards in one JSON schema, plus a scanner that reports the technologies a company domain runs. Use it when a task needs open roles, hiring signals, sourcing, salary and location data, or a company's tech stack. Overview for agents: https://jobspipe.dev/llms.txt. Human guide: https://jobspipe.dev/agent.

Follow the steps in order. Never print, guess or invent an API key. The user creates it and you read it from the environment.

## Step 1: Check for an API key

```bash
echo "${JOBSPIPE_API_KEY:-missing}"
```

If it prints `missing`, ask the user to:

1. Sign up at https://jobspipe.dev/signup (free tier, 1,000 jobs per month, 1 credit = 1 job returned).
2. Open Dashboard > Settings > API Keys and create a key. It starts with `jp_live_` and is shown once.
3. Export it in the shell that runs you: `export JOBSPIPE_API_KEY=jp_live_...`

Continue with Step 7 while you wait. It needs no key.

## Step 2: Connect the MCP server

For chat and IDE agents that speak MCP. The server is streamable HTTP at `https://mcp.jobspipe.dev/mcp`.

Claude Code:

```bash
claude mcp add --transport http jobspipe https://mcp.jobspipe.dev/mcp --header "Authorization: Bearer $JOBSPIPE_API_KEY"
```

Any other MCP client, added to its servers config. Without the header the client prompts for a JobsPipe sign-in:

```json
{"mcpServers":{"jobspipe":{"url":"https://mcp.jobspipe.dev/mcp"}}}
```

Tools exposed: `search_jobs`, `detect_company_tech_stack`, `list_pricing_plans`, `search_documentation`. Call `search_documentation` first when unsure about a filter name or an accepted value.

## Step 3: Install the skill and CLI

For agents with a shell. The skill teaches you the API; the CLI is one zero-dependency file.

```bash
npx skills add jobspipe/jobspipe-cli
npm i -g jobspipe-cli
```

Restart the agent if it does not hot-reload skills.

## Step 4: Verify

```bash
jobspipe jobs --limit 1
```

One posting as JSON means the key works. `401` is a wrong or missing key, `402` means the monthly quota is used up, `429` means slow down and retry after the `Retry-After` header.

## Step 5: Suggest a first run

Pick the one closest to what the user does and run it:

- Hiring signal for sales: `jobspipe jobs --title "Salesforce administrator" --country US --limit 5`
- Sourcing for recruiting: `jobspipe jobs --title "software engineer" --country US --remote --limit 5`
- Tech stack of an account: `jobspipe stack stripe.com`

Both commands print JSON to stdout. Run `jobspipe --help` for every flag. Pass a raw JSON filter object as the positional argument for the full query surface (reference: https://docs.jobspipe.dev/api-reference/filters).

## Step 6: REST fallback

Without the CLI, call the API directly:

```bash
curl https://api.jobspipe.dev/v1/jobs/search \
  -H "Authorization: Bearer $JOBSPIPE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"job_title_or":["software engineer"],"limit":5}'
```

## Step 7: No key yet

Every `/v1/sandbox` route answers without a key and without quota, with sample data in the live schema:

```bash
curl -X POST https://api.jobspipe.dev/v1/sandbox/jobs/search \
  -H "Content-Type: application/json" \
  -d '{"job_title_or":["software engineer"],"limit":3}'
```

## Notes

- Metering: 1 credit = 1 job returned. A search that matches nothing costs nothing.
- Public postings only. No candidate profiles, no contact data.
- Authentication reference: https://jobspipe.dev/auth.md. Plans: https://jobspipe.dev/pricing.md. Developer hub: https://jobspipe.dev/developers. Docs: https://docs.jobspipe.dev.
