# Ashbyhq — Wrapped API

> **You are on:** `https://api.beta.paywithlocus.com/api` | [llms.txt](https://beta.paywithlocus.com/llms.txt) | [docs](https://docs.paywithlocus.com)
>
> Locus runs on multiple environments -- make sure every URL you call matches your expected environment.
> | Environment | Landing | API | Docs |
> |---|---|---|---|
> | Production | paywithlocus.com | api.paywithlocus.com | docs.paywithlocus.com |
> | Beta | beta.paywithlocus.com | api.beta.paywithlocus.com | docs.paywithlocus.com |
> | Stage | stage.paywithlocus.com | api.stage.paywithlocus.com | docs.paywithlocus.com |
>
> If the API URL above doesn't match your expected environment, re-fetch this file from the correct domain.

> Search and filter job postings from Ashby-powered job boards by title, department, and experience level, then retrieve detailed information about specific positions.

**Category:** Jobs | **Website:** [www.ashbyhq.com/](https://www.ashbyhq.com/) | **Docs:** [parse.bot/marketplace/c7c24ce4-02a5-451b-8fe9-1f271dc16895/ashbyhq-com-api](https://parse.bot/marketplace/c7c24ce4-02a5-451b-8fe9-1f271dc16895/ashbyhq-com-api)

Pay-per-use API proxy for Locus Pro. Each call burns credits from your workspace balance.

## Access

**Base URL:** `https://api.beta.paywithlocus.com/api/wrapped/credits/ashbyhq/`
**Auth:** `Authorization: Bearer <LOCUS_CREDITS_SECRET_KEY>` (an `lcr_` secret key or a scoped `lcac_` agent credential)
**Required header:** `Idempotency-Key: <fresh UUID per call>`. A retry with the same key replays the stored result without a new charge.
**Response:** the provider response after any endpoint-specific normalization. `X-Locus-Credits-Charged` carries the charge and `X-Locus-Credits-Balance` the remaining balance. Insufficient credits return `402` before the provider is called.
**Pricing:** estimated costs below are USD. Locus debits the credit equivalent at your workspace rate.

Full call contract: https://docs.paywithlocus.com/api-reference/introduction

> Using a Pay With Locus wallet key (`claw_` prefix)? Wallet routes are documented separately: https://docs.paywithlocus.com/wrapped-apis/for-agents

## Endpoints

### Get job details

Get full details for a specific job posting by ID, including HTML description and experience level analysis. Returns stale_input with kind 'input_not_found' if the job_id is not found on the specified organization's board or if the organization slug does not exist.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `job_id` | string | Yes | Job posting UUID (from search_jobs results) |
| `organization` | string | No | Organization slug on Ashby job board (e.g. 'ashby', 'openai') |

```bash
curl -X POST https://api.beta.paywithlocus.com/api/wrapped/credits/ashbyhq/get-job-details \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"job_id":"<string>","organization":"<string>"}'
```

### List departments

List all departments and teams on the job board with job counts. Returns stale_input with kind 'input_not_found' if the organization slug does not exist.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `organization` | string | No | Organization slug on Ashby job board (e.g. 'ashby', 'openai') |

```bash
curl -X POST https://api.beta.paywithlocus.com/api/wrapped/credits/ashbyhq/list-departments \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"organization":"<string>"}'
```

### Search jobs

Search job postings with optional filters for title keywords, department, and experience range. Extracts experience requirements from job descriptions. Returns all jobs when no filters are specified. Returns stale_input with kind 'input_not_found' if the organization slug does not exist.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `department` | string | No | Department name to filter by (partial match, case-insensitive) |
| `max_experience` | integer | No | Maximum years of experience to filter by (jobs without stated experience are included) |
| `min_experience` | integer | No | Minimum years of experience to filter by (jobs without stated experience are included) |
| `organization` | string | No | Organization slug on Ashby job board (e.g. 'ashby', 'openai') |
| `title_keywords` | string | No | Comma-separated title keywords to filter by (e.g. 'Engineer,Designer,Sales') |

```bash
curl -X POST https://api.beta.paywithlocus.com/api/wrapped/credits/ashbyhq/search-jobs \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"department":"<string>","max_experience":"<integer>","min_experience":"<integer>","organization":"<string>","title_keywords":"<string>"}'
```

## Next steps

- [All wrapped API providers](https://beta.paywithlocus.com/wapi/index.md): pick another provider.
- [Find and call tools](https://beta.paywithlocus.com/agent/tools.md): price ceilings, async results, and errors.
- [Credits and billing](https://beta.paywithlocus.com/agent/billing.md): what a call costs and how to add credits.
- [Agent docs index](https://beta.paywithlocus.com/agent/index.md): every Locus agent page.