ashby-api-guide

This skill should be used when the user asks about "Ashby API", "how to use Ashby tools", "Ashby authentication", "Ashby MCP tools", "what can I do with Ashby", or needs help understanding available Ashby operations. Provides complete API documentation and tool usage guidance.

16 stars

Best use case

ashby-api-guide is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

This skill should be used when the user asks about "Ashby API", "how to use Ashby tools", "Ashby authentication", "Ashby MCP tools", "what can I do with Ashby", or needs help understanding available Ashby operations. Provides complete API documentation and tool usage guidance.

Teams using ashby-api-guide should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/ashby-api-guide/SKILL.md --create-dirs "https://raw.githubusercontent.com/diegosouzapw/awesome-omni-skill/main/skills/backend/ashby-api-guide/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/ashby-api-guide/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How ashby-api-guide Compares

Feature / Agentashby-api-guideStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

This skill should be used when the user asks about "Ashby API", "how to use Ashby tools", "Ashby authentication", "Ashby MCP tools", "what can I do with Ashby", or needs help understanding available Ashby operations. Provides complete API documentation and tool usage guidance.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# Ashby API Guide

Reference guide for working with the Ashby ATS integration. This skill covers authentication, available tools, and common usage patterns.

## Overview

The Ashby plugin provides ~30 MCP tools for interacting with Ashby's Applicant Tracking System (ATS). All operations use Ashby's RPC-style API where every endpoint accepts POST requests.

## Authentication

Ashby uses Basic Authentication with an API key:

1. Generate an API key in Ashby: Settings → API Keys
2. Set the environment variable: `ASHBY_API_KEY=your-api-key`
3. The MCP server handles authentication automatically

API keys have permission scopes. Common permissions needed:
- `candidatesRead` / `candidatesWrite` - Candidate operations
- `jobsRead` / `jobsWrite` - Job operations
- `interviewsWrite` - Interview scheduling

## Available Tools

### Candidate Management

| Tool | Purpose | Required Params |
|------|---------|-----------------|
| `candidate_create` | Create new candidate | name, email |
| `candidate_search` | Find by email/name | email or name |
| `candidate_list` | List all candidates | (optional) cursor, limit |
| `candidate_info` | Get candidate details | candidateId |
| `candidate_update` | Update candidate | candidateId |
| `candidate_add_note` | Add note to profile | candidateId, note |
| `candidate_add_tag` | Tag a candidate | candidateId, tagId |
| `candidate_list_notes` | View all notes | candidateId |

### Job Management

| Tool | Purpose | Required Params |
|------|---------|-----------------|
| `job_create` | Create new job | title |
| `job_search` | Find jobs | (optional) title, status |
| `job_list` | List all jobs | (optional) cursor, limit |
| `job_info` | Get job details | jobId |
| `job_set_status` | Update status | jobId, status |

Job statuses: `Open`, `Closed`, `Draft`, `Archived`

### Application Management

| Tool | Purpose | Required Params |
|------|---------|-----------------|
| `application_create` | Consider candidate for job | candidateId, jobId |
| `application_list` | List applications | (optional) jobId, candidateId, status |
| `application_info` | Get application details | applicationId |
| `application_change_stage` | Move in pipeline | applicationId, interviewStageId |
| `application_change_source` | Update attribution | applicationId, sourceId |
| `application_update` | Update properties | applicationId |

Application statuses: `Active`, `Hired`, `Archived`

### Interview Scheduling

| Tool | Purpose | Required Params |
|------|---------|-----------------|
| `interview_list` | List interviews | (optional) applicationId |
| `interview_schedule_create` | Schedule interview | applicationId, interviewerUserIds, startTime, endTime |
| `interview_schedule_list` | List schedules | (optional) startTimeAfter, startTimeBefore |
| `interview_schedule_update` | Modify schedule | interviewScheduleId |
| `interview_schedule_cancel` | Cancel interview | interviewScheduleId |

### Organization

| Tool | Purpose | Required Params |
|------|---------|-----------------|
| `user_list` | List team members | (optional) includeDeactivated |
| `user_search` | Find user | email or name |
| `department_list` | List departments | (optional) includeArchived |
| `location_list` | List locations | (optional) includeArchived |

### Offers

| Tool | Purpose | Required Params |
|------|---------|-----------------|
| `offer_create` | Create offer | applicationId |
| `offer_list` | List offers | (optional) applicationId |

### Utilities

| Tool | Purpose | Required Params |
|------|---------|-----------------|
| `interview_stage_list` | Get pipeline stages | (optional) jobId |
| `source_list` | Get candidate sources | (optional) cursor |
| `candidate_tag_list` | Get available tags | (optional) cursor |
| `archive_reason_list` | Get rejection reasons | none |

## Common Operations

### Find a Candidate

```
# By email (exact match)
candidate_search(email="jane@example.com")

# By name (partial match)
candidate_search(name="Jane")
```

### Create and Apply Candidate

```
# Step 1: Create candidate
candidate = candidate_create(
    name="Jane Smith",
    email="jane@example.com"
)

# Step 2: Apply to job
application_create(
    candidateId=candidate["id"],
    jobId="target-job-id"
)
```

### Move Candidate Through Pipeline

```
# Get current stage and next stage
stages = interview_stage_list(jobId="...")
next_stage_id = stages["results"][1]["id"]

# Move application
application_change_stage(
    applicationId="app-id",
    interviewStageId=next_stage_id
)
```

### Schedule an Interview

```
interview_schedule_create(
    applicationId="app-id",
    interviewerUserIds=["user-1", "user-2"],
    startTime="2024-01-15T14:00:00Z",
    endTime="2024-01-15T15:00:00Z"
)
```

### Reject a Candidate

```
# Get archive reasons
reasons = archive_reason_list()
reason_id = reasons["results"][0]["id"]  # e.g., "Not qualified"

# Get archived stage
stages = interview_stage_list(jobId="...")
archived_stage = next(s for s in stages["results"] if s["type"] == "Archived")

# Archive
application_change_stage(
    applicationId="app-id",
    interviewStageId=archived_stage["id"],
    archiveReasonId=reason_id
)
```

## Response Format

All tools return JSON. Successful responses have this structure:

```json
{
  "success": true,
  "results": { ... }  // or array for list operations
}
```

List operations include pagination:

```json
{
  "success": true,
  "results": [...],
  "moreDataAvailable": true,
  "nextCursor": "cursor-string"
}
```

Error responses:

```json
{
  "success": false,
  "errors": ["error_code"]
}
```

## Pagination

List operations use cursor-based pagination:

```
# First page
results = candidate_list(limit=50)

# Next page (if moreDataAvailable is true)
results = candidate_list(limit=50, cursor=results["nextCursor"])
```

## Date/Time Format

All timestamps use ISO 8601 format:
- `2024-01-15T14:00:00Z` (UTC)
- `2024-01-15T14:00:00-08:00` (with offset)

## Error Codes

Common error codes and meanings:

| Code | Meaning |
|------|---------|
| `invalid_input` | Missing or malformed parameter |
| `not_found` | Resource doesn't exist |
| `unauthorized` | Permission denied |
| `rate_limited` | Too many requests |
| `already_exists` | Duplicate entry |

## Tips

### Finding IDs

Most operations require resource IDs. Use search/list tools first:

```
# Get candidate ID
candidate = candidate_search(email="...")["results"][0]
candidate_id = candidate["id"]

# Get job ID
job = job_search(title="...")["results"][0]
job_id = job["id"]
```

### Filtering Applications

Filter by multiple criteria:

```
# All active apps for a specific job
application_list(jobId="...", status="Active")

# All apps for a specific candidate
application_list(candidateId="...")
```

### Source Attribution

Always track where candidates come from:

```
# Get available sources
sources = source_list()

# Apply with source
application_create(
    candidateId="...",
    jobId="...",
    sourceId="linkedin-source-id"
)
```

## Additional Resources

### Reference Files

For complete API patterns:
- **`references/tool-reference.md`** - Full parameter details for all tools

### Related Skills

- **ashby-workflows** - Pipeline management and recruiting workflows

Related Skills

dotfiles-guide

16
from diegosouzapw/awesome-omni-skill

Use when adding new configurations, packages, or modules to this dotfiles repository. Covers file placement, package lists, and module creation.

Ashby Automation

16
from diegosouzapw/awesome-omni-skill

Automate recruiting and hiring workflows in Ashby -- manage candidates, jobs, applications, interviews, and notes through natural language commands.

cs-guide-writer

16
from diegosouzapw/awesome-omni-skill

CS 학습 문서를 작성합니다. "오늘의 CS", "CS 정리", "{주제} 정리해줘", "최근 이슈 CS" 요청 시 사용하세요.

backend-dev-guidelines

16
from diegosouzapw/awesome-omni-skill

Opinionated backend development standards for Node.js + Express + TypeScript microservices. Covers layered architecture, BaseController pattern, dependency injection, Prisma repositories, Zod valid...

api-style-guide

16
from diegosouzapw/awesome-omni-skill

Style and formatting rules for API/SDK documentation, samples, and tutorials.

aiwf:backend-dev-guidelines

16
from diegosouzapw/awesome-omni-skill

Comprehensive backend development guide for Node.js/Express/TypeScript microservices. Use when creating routes, controllers, services, repositories, middleware, or working with Express APIs, Prisma database access, Sentry error tracking, Zod validation, unifiedConfig, dependency injection, or async patterns. Covers layered architecture (routes → controllers → services → repositories), BaseController pattern, error handling, performance monitoring, testing strategies, and migration from legacy patterns.

migration-guides

16
from diegosouzapw/awesome-omni-skill

Migration guides - from other AI tools, version upgrades, config migration. Use when switching from Cursor, Copilot, or Cody, upgrading Claude Code versions, or migrating configurations and customizations.

Claude Code Guide

16
from diegosouzapw/awesome-omni-skill

Master guide for using Claude Code effectively. Includes configuration templates, prompting strategies "Thinking" keywords, debugging techniques, and best practices for interacting with the agent.

ai-llm-skills-guide

16
from diegosouzapw/awesome-omni-skill

Guide for AI Agents and LLM development skills including RAG, multi-agent systems, prompt engineering, memory systems, and context engineering.

ai-dev-guidelines

16
from diegosouzapw/awesome-omni-skill

Comprehensive AI/ML development guide for LangChain, LangGraph, and ML model integration in FastAPI. Use when building LLM applications, agents, RAG systems, sentiment analysis, aspect-based analysis, chain orchestration, prompt engineering, vector stores, embeddings, or integrating ML models with FastAPI endpoints. Covers LangChain patterns, LangGraph state machines, model deployment, API integration, streaming, error handling, and best practices.

agents-md-guide

16
from diegosouzapw/awesome-omni-skill

Guide for using and supporting the AGENTS.md standard in VS Code. Use this when asked about AGENTS.md, custom instructions, or repo-level AI agent configuration.

agentic-workflow-guide

16
from diegosouzapw/awesome-omni-skill

Design, review, and improve agent workflows & agent using SSOT, SRP, Fail Fast principles. Supports Prompt Chaining, Parallelization, Orchestrator-Workers patterns.