Ellipse Gradient for Header

Ashby Integration Guide

Connect Ashby recruiting data and selected webhook events with HR, CRM, collaboration, analytics, and operational systems through Martini workflows and APIs.

Ashby integration options at a glance

Ashby provides documented REST APIs for recruiting objects such as Candidates, Applications, Jobs, Interviews, Offers, and Job postings. Ashby also supports webhook-style notifications for selected recruiting events, although event coverage and verification requirements should be confirmed for each tenant. Martini can consume Ashby APIs, receive webhook notifications, retrieve authoritative objects, and transform Ashby JSON for downstream systems. Scheduled workflows support paginated synchronization, checkpoints, rate-limit-aware retries, and reconciliation. Ashby API keys are sent as bearer credentials and can be stored securely in Martini Secrets Management. No official Ashby GraphQL, SOAP, general-purpose bulk export, database, or common attachment API was confirmed.

Integration pointSupported by Ashby?Common use casesHow Martini supports it
REST APIsYesRetrieve and, where supported by an endpoint, create or update Candidates, Applications, Jobs, Job postings, Interviews, Offers, and related recruiting data.Martini consumes Ashby REST endpoints from workflows, maps JSON payloads, applies business rules, and can expose a controlled API façade over Ashby access.
Webhooks / outbound callbacksLimitedReceive webhook-style notifications for selected recruiting events such as application, interview, offer, or stage activity where enabled and available.Martini can receive HTTP notifications, validate the request, deduplicate event identifiers, retrieve the authoritative Ashby object, and continue processing asynchronously.
Bulk / asynchronous / batch APIsLimitedAshby collection endpoints support pagination for larger reads, but a general-purpose bulk or asynchronous export API was not confirmed.Martini implements scheduled pagination, checkpoints, bounded retries, rate-limit-aware processing, and dead-letter handling for larger synchronizations.
AuthenticationYesAshby API requests use API-key authentication with the key sent as a bearer credential.Martini stores the key in Secrets Management, uses environment-specific configuration, and keeps credentials out of workflow definitions and logs.
GraphQL APIsNot confirmedNo official Ashby GraphQL API was confirmed in the reviewed documentation; REST APIs are the recommended documented approach.Martini can consume GraphQL generally, but an Ashby GraphQL integration should not be assumed without tenant-specific confirmation.
SOAP APIsNoNo official Ashby SOAP API was confirmed, and SOAP is not a recommended Ashby integration approach.Martini can consume SOAP services generally, but this mechanism is not applicable to the documented Ashby integration.
File / attachment APIsNot confirmedNo general-purpose Ashby file or attachment API was confirmed. Candidate files may be represented through object data or external URLs depending on configuration.Martini can process files when a supported source is available, but the workflow must verify the specific Ashby object and endpoint before downloading attachments.
Database / analytics accessNot confirmedNo direct customer database or SQL interface was confirmed. Analytics synchronization should use documented APIs or supported reporting/export features.Martini can write transformed Ashby data to databases or warehouses through supported integration paths without requiring direct Ashby database access.

How Ashby exposes data and business events

Ashby REST APIs

Ashby’s primary documented integration mechanism is its REST API, which provides access to recruiting objects including Candidates, Applications, Jobs, Job postings, Interviews, Offers, and related resources. Responses should be treated as paginated collections where applicable, and endpoint write capabilities should be verified for the specific operation.

Martini implementation pattern

Martini implementation pattern: a workflow authenticates with an Ashby API key stored in Secrets Management, calls the required endpoint, follows pagination, validates the JSON response, maps fields to a canonical or target schema, and records Ashby identifiers and synchronization checkpoints.

Implementation sequence

Load the environment-specific Ashby API key from Secrets Management
Request the required Ashby collection or object
Follow pagination and persist the synchronization checkpoint
Validate the Ashby JSON response and required fields
Map Ashby fields to the canonical and target schemas
Apply business rules and idempotency checks before writing downstream data

Ashby Webhooks

Ashby supports webhook-style notifications for selected recruiting events. Coverage is not universal, so available events, payloads, authentication or signing options, retry behavior, and tenant configuration must be verified against current Ashby documentation.

Martini implementation pattern

Martini implementation pattern: a webhook-triggered workflow accepts the Ashby notification, validates the request and event payload, stores the event identifier for duplicate detection, retrieves the current Candidate, Application, Job, Interview, or Offer through the REST API, and then performs downstream processing.

Implementation sequence

Receive the Ashby webhook notification
Validate the request and event payload
Record the event identifier and reject duplicates
Retrieve the authoritative Ashby object through the REST API
Apply mapping and downstream business rules
Acknowledge or complete the event workflow and route failures for retry or review

Scheduled Ashby synchronization

Ashby collection endpoints and pagination support scheduled synchronization, while a general-purpose bulk or asynchronous export API was not confirmed. Scheduled workflows are appropriate for reconciliation, analytics extraction, and integrations where webhook coverage is incomplete.

Martini implementation pattern

Martini implementation pattern: a scheduler starts a workflow that reads the last successful checkpoint, retrieves Ashby collections page by page, applies incremental filters where supported, transforms results, writes them to downstream systems, and persists progress for safe resumption.

Implementation sequence

Start the workflow on a defined schedule
Load the last successful checkpoint
Retrieve Ashby collections page by page
Apply rate-limit-aware retries for transient failures
Transform and write each page to the target system
Persist progress and report failed items for reconciliation

Common Ashby integration patterns

Pattern 1: Sync accepted hires to an HR system

When to use this pattern

Use this pattern when Ashby is the recruiting system of record and Workday or BambooHR must receive information after an Offer reaches an accepted or hired state. The workflow should validate required identity, job, department, location, and start-date fields before creating or updating a downstream pre-hire or employee record.

Integration direction
Ashby
Martini
Workday
Example Mapping
Ashby FieldCanonical FieldTarget Field
Candidate.idcandidateExternalIdWorkday.Person.External_ID
Candidate.emailpersonalEmailWorkday.Person.Email
Job.titlepositionTitleWorkday.Position.Title
Offer.startDatestartDateWorkday.Worker.Hire_Date
Martini implementation pattern

A scheduled Martini workflow retrieves relevant Offers with associated Candidates, Applications, and Jobs, filters for approved hiring states, validates required fields, maps the data into the HR system schema, and checks the stored Ashby ID before creating a new record. Transient failures are retried with backoff, while validation and duplicate conflicts are routed for review.

Martini capabilities used
  • scheduled workflows
  • API consumption
  • data mapping
  • field validation
  • business rules
  • idempotency checks
  • error handling

Pattern 2: Synchronize candidates and applications with Salesforce

When to use this pattern

Use this pattern when selected recruiting, referral, or talent-community information must be visible in Salesforce. Define ownership for status, contact details, consent, and source fields before enabling bidirectional writes; Ashby write support must be confirmed for any CRM-to-Ashby flow.

Integration direction
Ashby
Martini
Salesforce
Example Mapping
Ashby FieldCanonical FieldTarget Field
Candidate.idcandidateExternalIdSalesforce.Contact.Ashby_External_ID
Candidate.emailemailSalesforce.Contact.Email
Application.statusapplicationStatusSalesforce.Contact.Recruiting_Status
Application.sourcesourceSalesforce.Contact.LeadSource
Martini implementation pattern

Martini retrieves Ashby Candidates and Applications, applies consent and field-minimization rules, transforms tenant-specific custom fields into Salesforce properties, and performs an external-ID lookup before upsert. A reconciliation workflow compares selected status and ownership fields, while permanent mapping errors are isolated without stopping unrelated records.

Martini capabilities used
  • workflow orchestration
  • REST API consumption
  • data mapping
  • custom-field handling
  • business rules
  • upsert coordination
  • reconciliation

Pattern 3: Trigger recruiting notifications from Ashby events

When to use this pattern

Use this pattern when recruiting teams need timely notifications for supported application, interview, offer, or recruiting-stage events. Because Ashby webhook coverage is event-specific, verify the exact event and configure a scheduled reconciliation workflow for missed or unsupported notifications.

Integration direction
Ashby
Martini
Slack
Example Mapping
Ashby FieldCanonical FieldTarget Field
event.ideventIdSlack.Message.Metadata
event.typeeventTypeSlack.Message.Title
Application.idapplicationExternalIdSlack.Message.Fields.Application
Candidate.namecandidateNameSlack.Message.Body
Martini implementation pattern

A Martini webhook workflow validates the Ashby notification, records the event identifier, retrieves the current source object, and applies routing rules based on event type, job, department, or offer status. It then formats and sends a Slack or Teams notification, with retries for transient delivery failures and a review path for malformed or duplicate events.

Martini capabilities used
  • webhook-triggered workflows
  • API retrieval
  • event deduplication
  • data transformation
  • conditional routing
  • retry handling
  • monitoring

Pattern 4: Load recruiting data into Snowflake

When to use this pattern

Use this pattern for workforce planning, recruiting analytics, historical reporting, or cross-system analysis. Extract Jobs, Candidates, Applications, Interviews, and Offers on a schedule, preserve stable Ashby IDs, and maintain separate dimensions and facts where the source data supports that model.

Integration direction
Ashby
Martini
Snowflake
Example Mapping
Ashby FieldCanonical FieldTarget Field
Job.idjobKeydim_job.job_id
Candidate.idcandidateKeydim_candidate.candidate_id
Application.idapplicationKeyfact_application.application_id
Offer.statusofferStatusfact_offer.status
Martini implementation pattern

A scheduled Martini workflow reads checkpoints, paginates through Ashby REST collections, normalizes JSON, applies privacy and retention rules, and loads dimensions and facts into Snowflake or another supported database path. Checkpoints are advanced only after successful writes, and schema validation plus dead-letter handling protects the load from tenant-specific changes.

Martini capabilities used
  • scheduled workflows
  • pagination
  • checkpointing
  • JSON transformation
  • data mapping
  • database or warehouse writes
  • schema validation
  • error handling

Applications commonly integrated with Ashby

Ashby can be integrated with adjacent HR, collaboration, CRM, task-management, and analytics products through API-based workflows. The appropriate direction, fields, and event coverage depend on the customer’s Ashby tenant and downstream configuration.

Application Scenario Direction Martini Pattern
Workday Transfer hired-candidate or offer information into HR and employee lifecycle processes. Ashby → Martini → Workday A scheduled Martini workflow retrieves relevant Candidates, Applications, and Offers, validates hiring fields, maps them to Workday’s pre-hire or employee schema, and uses Ashby IDs for correlation and duplicate prevention.
BambooHR Prepare or create employee records after a candidate reaches a configured hiring milestone. Ashby → Martini → BambooHR Martini retrieves qualifying Ashby Applications and Offers, applies business rules for accepted or hired status, transforms the payload, and writes the result to BambooHR with retry and reconciliation handling.
Salesforce Make approved recruiting, referral, or talent-community information available to sales and account teams. Ashby → Martini → Salesforce Martini synchronizes selected Candidates and Applications, applies consent and ownership rules, maps Ashby identifiers to Salesforce external IDs, and routes supported updates in either direction where Ashby write operations permit them.
HubSpot Synchronize approved recruiting contacts, talent-community members, or campaign attribution information. Ashby → Martini → HubSpot A Martini workflow filters transferable Ashby data, removes restricted fields, maps contacts and source information to HubSpot properties, and records correlation keys for safe updates.
Slack Notify recruiting teams about applications, interviews, offers, and integration exceptions. Ashby → Martini → Slack Martini receives a supported Ashby webhook, retrieves the current object, applies notification rules, formats a concise message, and sends it to the appropriate Slack channel while retaining an event-processing record.
Microsoft Teams Deliver recruiting notifications and operational alerts to hiring teams. Ashby → Martini → Microsoft Teams A webhook-triggered Martini workflow validates the Ashby event, enriches it with the authoritative REST response, applies routing rules, and posts a Teams notification with failure handling.
Jira Create recruiting operations, onboarding, or implementation tasks associated with a candidate or hire. Ashby → Martini → Jira Martini converts qualifying Ashby events into Jira task payloads, maps ownership and due-date fields, prevents duplicate issue creation using Ashby IDs, and sends permanent failures to a review process.
Snowflake Load recruiting and hiring data for analytics, workforce planning, and reporting. Ashby → Martini → Snowflake Scheduled Martini workflows paginate through Ashby objects, normalize JSON into dimensions and facts, preserve stable Ashby IDs, and load incremental results into Snowflake with checkpoints and schema validation.

How to build a Ashby integration in Martini

Objective

Establish Ashby access using an API key configured as a bearer credential and stored outside workflow definitions.

Instructions in Martini

  • Create or obtain the required Ashby API key and permissions
  • Store the key in Martini Secrets Management
  • Use separate environment-specific credentials where appropriate
  • Configure downstream credentials and endpoint settings securely

Objective

Select an event-driven or scheduled entry point based on Ashby webhook coverage and synchronization requirements.

Instructions in Martini

  • Use a webhook-triggered workflow for supported Ashby events
  • Use a scheduler for reconciliation, analytics, or broader synchronization
  • Define the event and object ownership model before enabling writes

Objective

Obtain the authoritative Ashby data while accounting for pagination and event-specific payloads.

Instructions in Martini

  • Validate incoming webhook requests and event payloads
  • Retrieve the current Ashby object after a notification
  • Follow paginated REST collections
  • Persist cursors, timestamps, or checkpoints

Objective

Coordinate source retrieval, enrichment, validation, downstream calls, and recovery within a maintainable Martini workflow.

Instructions in Martini

  • Separate retrieval, transformation, business rules, and delivery stages
  • Use conditional routing for object and status-specific behavior
  • Record correlation identifiers and processing outcomes
  • Keep webhook acknowledgement handling separate from longer downstream work where appropriate

Objective

Convert Ashby JSON and tenant-specific fields into canonical and target application schemas.

Instructions in Martini

  • Map Candidates, Applications, Jobs, Interviews, Offers, and Job postings explicitly
  • Handle optional and custom fields conservatively
  • Normalize dates, identifiers, status values, and organizational attributes
  • Minimize sensitive recruiting data transferred to downstream systems

Objective

Control which recruiting data is transferred and enforce duplicate, consent, status, and ownership policies.

Instructions in Martini

  • Filter by approved application, offer, or recruiting status
  • Validate required target fields before writing
  • Use Ashby object IDs as external correlation keys
  • Apply consent, privacy, and field-minimization rules

Common Ashby data objects used in integrations

ObjectTypical UseCommon target systemsMartini handling
CandidatesSynchronize candidate identity, contact, recruiting, and consent-related information.Workday, BambooHR, Salesforce, HubSpot, SnowflakeMartini retrieves Candidates through REST workflows, validates and minimizes fields, maps tenant-specific custom fields, and preserves Ashby IDs for correlation.
ApplicationsTrack a Candidate’s application to a Job, including recruiting status and source information.Workday, Salesforce, HubSpot, Snowflake, SlackMartini retrieves paginated Applications or refreshes them after supported webhook events, applies status and ownership rules, and prevents duplicate downstream writes.
JobsRepresent open or planned requisitions and their recruiting attributes.Snowflake, Workday, Salesforce, internal recruiting systemsScheduled workflows extract Jobs, normalize organizational and location fields, and load them into operational or analytical schemas.
Job postingsRepresent published versions of Jobs associated with external career sites or recruiting channels.Career sites, Snowflake, reporting systemsMartini maps posting status, identifiers, and publication attributes, while treating tenant-specific fields as configurable rather than fixed.
InterviewsRepresent scheduled or completed interview activities associated with Applications.Slack, Microsoft Teams, Jira, SnowflakeEvent-driven or scheduled workflows retrieve current Interview data, apply notification or analytics rules, and handle duplicate event delivery through stored identifiers.
OffersRepresent employment offers associated with Candidates and Applications.Workday, BambooHR, Snowflake, SlackMartini filters offer status, validates required hiring fields, maps accepted offers to downstream pre-hire processes, and records processing outcomes.

Authentication and security considerations

API-key authentication

Ashby API requests use API-key authentication with the key sent as a bearer credential. Martini can load the key from Secrets Management rather than embedding it in workflows or source-controlled mappings.

Credential protection

  • Use separate Ashby credentials for development, testing, and production where appropriate.
  • Grant only the permissions required by the integration.
  • Keep API keys out of client applications, logs, payloads, and workflow definitions.
  • Configure webhook verification according to the Ashby tenant and event documentation.

Recruiting data privacy

Candidate and application data may contain personally identifiable and employment-related information. Minimize transferred fields, restrict access, protect data in transit and at rest, and avoid writing resumes, personal information, or interview notes to operational logs.

Operational considerations for Ashby integrations

Pagination and checkpoints

Treat Ashby list responses as paginated where applicable. Persist cursors, page positions, or timestamps and advance checkpoints only after successful downstream processing.

Rate limits and retries

Confirm current Ashby request and rate-limit behavior for the relevant tenant and API version. Use bounded backoff for transient failures and throttling, and avoid repeating non-idempotent writes without a correlation strategy.

Idempotency and duplicates

Store Ashby event identifiers, object identifiers, event types, and processing status. Use stable Ashby IDs and deterministic downstream lookups to prevent duplicate records.

Schema changes and custom fields

Ashby schemas can vary by tenant and include custom fields. Maintain explicit mappings for required and optional data, validate before delivery, and test changes without breaking the core integration.

Reconciliation and testing

Combine webhook processing with scheduled reconciliation to identify missed events and incomplete writes. Test authentication, pagination, retries, duplicate delivery, malformed payloads, privacy controls, and tenant-specific fields before production deployment.

Why use Martini instead of scripts or point-to-point integrations?

Orchestrate more than individual API calls

Scripts and point-to-point integrations often combine authentication, pagination, transformation, business rules, and error handling in code that is difficult to govern. Martini provides reusable workflows and APIs for coordinating the complete Ashby integration lifecycle.

Separate source and target models

Martini can map Ashby Candidates, Applications, Jobs, Interviews, Offers, and Job postings into canonical or downstream schemas without tightly coupling every consumer to Ashby’s payload structure.

Support event and scheduled patterns

Webhook-triggered workflows can support timely processing for selected Ashby events, while scheduled workflows provide checkpointed synchronization and reconciliation when event coverage is incomplete.

Improve operational control

  • Store credentials securely and configure environments independently.
  • Apply validation, routing, retry, and duplicate-handling rules consistently.
  • Preserve correlation identifiers and processing outcomes.
  • Monitor failures and maintain a controlled path for reconciliation and manual review.

Frequently asked questions

How can Ashby be integrated with enterprise systems?

Ashby can be integrated through its documented REST APIs and webhook-style notifications for selected recruiting events. Enterprise workflows can retrieve Candidates, Applications, Jobs, Job postings, Interviews, and Offers, then transform and synchronize them with HR, CRM, collaboration, task-management, or analytics systems.

Can Martini integrate with Ashby?

Yes. Martini can consume Ashby REST APIs, receive supported Ashby webhook events, retrieve authoritative objects after notifications, transform Ashby JSON, schedule reconciliation workflows, and expose a controlled API boundary for internal consumers.

Do I need a connector to integrate Ashby with Martini?

No. A dedicated Ashby connector is not required. Martini can integrate with Ashby using its documented REST APIs, selected webhook events, API-key authentication, and standard workflow, mapping, validation, and error-handling capabilities.

Is there any extra Lonti cost to integrate Ashby with Martini?

Lonti does not charge an additional per-connector or per-vendor fee to integrate Ashby. The integration is subject to the provisioned capacity of the Martini environment. Separate costs may apply from Ashby, cloud infrastructure, or other third-party systems based on subscription, usage, and deployment model.

Which Ashby integration methods should be used?

Use Ashby’s documented REST APIs as the primary integration method. Use webhook-style notifications for selected events when the required event is available and configured, and use scheduled, paginated workflows for reconciliation, analytics extraction, or areas without webhook coverage. No official Ashby GraphQL or SOAP API was confirmed.

Are Ashby events or webhooks available?

Ashby supports webhook-style notifications for selected recruiting events, but coverage is not universal. The exact events, payloads, authentication or signing options, retry behavior, and tenant configuration should be verified before implementation. Martini can receive the notification and retrieve the current Ashby object through the REST API.

How does synchronization and duplicate handling work?

Martini can synchronize Ashby data through scheduled pagination, checkpoints, incremental filters where supported, and event-triggered retrieval. Ashby object IDs should be retained as stable external identifiers, while webhook event IDs and downstream lookups help prevent duplicate processing and creation.

How does Martini handle Ashby mapping, errors, and retries?

Martini maps Ashby JSON into canonical and downstream schemas, validates required fields, applies business rules, and handles tenant-specific custom fields explicitly. Workflows can distinguish authentication, validation, throttling, transient, and permanent failures, use bounded backoff retries, and route unresolved items to reconciliation or dead-letter handling.