to select ↑↓ to navigate
SmoothHiring

SmoothHiring

Zapier Integration & API Keys

Zapier Integration & API Keys

SmoothHiring offers a Zapier integration and API key system that allows you to connect your hiring workflows with thousands of other applications. Whether you want to automatically post new applicants to Slack, sync hired candidates to your HRIS, or trigger custom workflows when jobs are published, the Zapier integration makes it possible.

This guide covers generating API keys, setting up webhooks, understanding available events, and building automation workflows with Zapier.


Overview

SmoothHiring's Zapier integration is built on a webhook-based architecture that sends real-time notifications to external services whenever key events occur in your hiring process. The integration consists of:

  • API Keys — Secure authentication credentials that identify your SmoothHiring account.
  • Webhook Subscriptions — Event listeners that send data to a target URL when specific events occur.
  • Event Types — Six predefined hiring events that can trigger webhooks.
  • Webhook Logs — A delivery log that tracks the status of each webhook notification.

Getting Started

Step 1: Generate an API Key

Before setting up any integrations, you need to generate an API key:

  1. Navigate to Settings from the main sidebar.
  2. Go to Integrations or Connected Apps.
  3. Find the API Keys section.
  4. Click Generate API Key.
  5. Your new API key will be displayed. Copy it immediately — for security reasons, the full key may not be shown again.

Important API Key Details:

Property Description
API Key A unique, secure string that authenticates your account
Created Date When the key was generated
Last Used The most recent time the key was used for authentication
Expiration When the key expires (if applicable)
Status Active or deactivated

Step 2: Store Your API Key Securely

  • Save your API key in a secure location (password manager, secrets vault, etc.).
  • Never share your API key in plain text via email or messaging.
  • Treat your API key like a password — anyone with it can access your SmoothHiring data.

Managing API Keys

Viewing Your API Key

To view your current API key information:

  1. Go to Settings → Integrations.
  2. The API Keys section shows:
    • Your API key (may be partially masked).
    • When it was created.
    • When it was last used.
    • Whether it's currently active.

Deactivating an API Key

If you suspect your API key has been compromised, or you no longer need it:

  1. Go to Settings → Integrations.
  2. Find your active API key.
  3. Click Deactivate.
  4. The key is immediately invalidated — all webhooks using this key will stop working.
  5. Generate a new key if you still need API access.

Note: Deactivating an API key is irreversible. Any Zapier zaps or integrations using the old key will need to be updated with the new key.


Webhook Events

SmoothHiring supports six webhook event types that cover the key moments in the hiring lifecycle:

1. Job Published (job.published)

Triggered when: A job posting is published and goes live.

Sample payload:

{
  "id": 123,
  "title": "Software Engineer",
  "description": "We are looking for a talented software engineer...",
  "location": "San Francisco, CA",
  "salary_min": 80000,
  "salary_max": 120000,
  "job_url": "https://app.smoothhiring.com/jobs/ABC-123",
  "company_name": "Acme Corp",
  "posted_at": "2026-01-31T10:00:00Z"
}

Common automations:

  • Post new jobs to Slack channels.
  • Add job listings to a Google Sheet for tracking.
  • Notify recruiting agencies of new openings.
  • Update your company career page or job board.

2. Job Closed (job.closed)

Triggered when: A job posting is closed, expired, or filled.

Sample payload:

{
  "id": 123,
  "title": "Software Engineer",
  "reason": "filled",
  "total_applicants": 25,
  "closed_at": "2026-01-31T15:00:00Z"
}

Closure reasons: filled, expired, cancelled

Common automations:

  • Remove job listings from external boards.
  • Generate a hiring summary report.
  • Notify the team that a position has been filled.
  • Archive job-related documents.

3. New Applicant (applicant.new)

Triggered when: Someone submits an application for a job.

Sample payload:

{
  "applicant_id": 456,
  "job_id": 123,
  "job_title": "Software Engineer",
  "candidate_name": "John Doe",
  "candidate_email": "john@example.com",
  "resume_url": "https://app.smoothhiring.com/resumes/456.pdf",
  "application_date": "2026-01-31T12:00:00Z",
  "source": "LinkedIn"
}

Common automations:

  • Send new applicants to a Slack channel for immediate review.
  • Add applicants to a Google Sheet or Airtable for tracking.
  • Trigger an automated acknowledgment email via another service.
  • Create a task in Asana or Trello for the hiring manager to review.

4. Applicant Status Changed (applicant.status_changed)

Triggered when: An applicant's pipeline stage is updated.

Sample payload:

{
  "applicant_id": 456,
  "job_id": 123,
  "job_title": "Software Engineer",
  "candidate_name": "John Doe",
  "old_status": "applied",
  "new_status": "interview_scheduled",
  "changed_at": "2026-01-31T14:00:00Z"
}

Common automations:

  • Notify hiring managers when candidates move to interview stage.
  • Update candidate status in your HRIS.
  • Trigger background check initiation when a candidate reaches a specific stage.
  • Send candidate-specific emails based on stage transitions.

5. Interview Scheduled (interview.scheduled)

Triggered when: An interview is scheduled with a candidate.

Sample payload:

{
  "interview_id": 789,
  "candidate_name": "John Doe",
  "job_title": "Software Engineer",
  "interview_date": "2026-02-01",
  "interview_time": "14:00",
  "interview_type": "Video",
  "interviewer_email": "hiring.manager@company.com"
}

Common automations:

  • Add interviews to Google Calendar or Outlook.
  • Send interview prep materials to the candidate.
  • Notify the interview panel via Slack or email.
  • Create a meeting room booking in your office management system.

6. Candidate Hired (candidate.hired)

Triggered when: A candidate is marked as hired in SmoothHiring.

Sample payload:

{
  "candidate_id": 456,
  "candidate_name": "John Doe",
  "job_id": 123,
  "job_title": "Software Engineer",
  "hired_date": "2026-02-15T09:00:00Z",
  "start_date": "2026-03-01T09:00:00Z"
}

Common automations:

  • Create a new employee record in your HRIS (BambooHR, Workday, etc.).
  • Trigger onboarding workflows.
  • Notify the payroll department.
  • Send a welcome email to the new hire.
  • Update headcount tracking spreadsheets.

Setting Up Webhooks

Subscribing to Events

To subscribe to a webhook event:

  1. Ensure you have an active API key.
  2. Use the API or Zapier interface to subscribe:
    • Event type — Select one of the six supported events.
    • Target URL — The HTTPS endpoint where SmoothHiring will send event data.

Requirements for target URLs:

  • Must be a valid URL format.
  • Must use HTTPS protocol (HTTP is not accepted for security).
  • Must be publicly accessible (SmoothHiring's servers need to reach it).

Managing Subscriptions

You can view all active webhook subscriptions, which display:

  • Webhook ID — A unique identifier for the subscription.
  • Event type — Which event triggers this webhook.
  • Target URL — Where the data is sent.
  • Status — Whether the subscription is active.
  • Created date — When the subscription was set up.

Unsubscribing from Events

To stop receiving notifications for a specific event:

  1. Find the webhook subscription you want to remove.
  2. Click Unsubscribe or use the API to delete the subscription.
  3. SmoothHiring will stop sending events to that target URL.

Webhook Delivery and Logs

Delivery Process

When a tracked event occurs in SmoothHiring:

  1. The system identifies all active webhook subscriptions matching the event type.
  2. A POST request is sent to each subscribed target URL with the event data as JSON.
  3. The delivery status is recorded in the webhook logs.

Viewing Webhook Logs

Webhook delivery logs help you troubleshoot failed deliveries:

Field Description
Status Whether delivery succeeded or failed
Response code The HTTP status code returned by the target URL
Error message Details about any delivery failure
Event data The payload that was sent
Timestamp When the delivery was attempted

Handling Failed Deliveries

If a webhook delivery fails:

  • 4xx errors (400, 401, 403, 404) — The target URL rejected the request. Check the URL, authentication, and endpoint configuration.
  • 5xx errors (500, 502, 503) — The target server had an error. This is usually temporary; the delivery may succeed on retry.
  • Timeout — The target server took too long to respond. Ensure your endpoint processes webhook data quickly.

Zapier Integration Setup

Connecting SmoothHiring to Zapier

  1. Log in to your Zapier account.
  2. Click Create Zap (or + Create).
  3. Search for SmoothHiring in the app directory.
  4. Select SmoothHiring as the Trigger app.
  5. Choose a trigger event (e.g., "New Applicant", "Job Published").
  6. When prompted, enter your SmoothHiring API key to authenticate.
  7. Test the connection to ensure it works.

Building a Zap

A typical Zap consists of:

  1. Trigger — A SmoothHiring event (e.g., "New Applicant").
  2. Action — What happens in another app (e.g., "Send Slack Message", "Create Google Sheets Row").

Example Zap: New Applicant → Slack Notification

  1. Trigger: SmoothHiring → New Applicant
  2. Action: Slack → Send Channel Message
  3. Configure: Map the candidate name, job title, and application date to the Slack message template.
  4. Test & Enable: Send a test notification and turn on the Zap.
Integration Use Case
Slack Notify team of new applicants, stage changes, and hires
Google Sheets Track applicants, jobs, and hiring metrics in spreadsheets
Gmail / Outlook Send automated emails based on hiring events
Asana / Trello Create tasks for hiring team follow-ups
BambooHR / Workday Sync hired candidates to HRIS
Calendly Coordinate interview scheduling
Airtable Build custom applicant tracking databases
Microsoft Teams Post hiring updates to Teams channels

Accessing Job Data via API

In addition to webhooks, the Zapier integration provides read access to your job data:

  • List jobs — Retrieve all jobs for your employer account with pagination support.
  • Job details — Each job includes ID, title, code, description, location, salary range, status, company name, and job URL.

This data can be used in Zapier to build dynamic filters, lookups, and multi-step automations.


Security Best Practices

  1. Protect your API key — Store it in a secure location and never expose it in client-side code.
  2. Use HTTPS only — All webhook target URLs must use HTTPS encryption.
  3. Rotate keys periodically — Deactivate old keys and generate new ones on a regular schedule.
  4. Monitor webhook logs — Regularly review delivery logs for failed attempts that could indicate misconfiguration or security issues.
  5. Limit access — Only share API keys with team members who need integration access.
  6. Deactivate unused keys — If an integration is no longer needed, deactivate the API key to prevent unauthorized access.

Troubleshooting

"No API key found"

You haven't generated an API key yet. Go to Settings → Integrations and click Generate API Key.

Webhooks not firing

  • Verify your API key is active.
  • Check that you have an active subscription for the event type.
  • Ensure your target URL is accessible and returns a 200 status code.
  • Review webhook logs for error details.

"Invalid event type" error

Ensure you're using one of the six supported event types exactly as listed: job.published, job.closed, applicant.new, applicant.status_changed, interview.scheduled, candidate.hired.

"HTTPS required" error

Your target URL must start with https://. HTTP URLs are not accepted for security reasons.


Frequently Asked Questions

Q: How many webhooks can I subscribe to? A: There is no hard limit on the number of webhook subscriptions. You can subscribe to multiple events and send each to different target URLs.

Q: Can I subscribe to the same event multiple times? A: Yes. You can send the same event to multiple target URLs (e.g., send new applicant data to both Slack and a Google Sheet).

Q: Is there a rate limit on webhook deliveries? A: SmoothHiring delivers webhooks in real time as events occur. For high-volume hiring, webhooks are processed sequentially to ensure reliable delivery.

Q: Can I use the API without Zapier? A: Yes. The webhook system is standards-based and works with any service that can receive HTTPS POST requests — not just Zapier. You can integrate with custom applications, Make (Integromat), n8n, or any webhook-compatible platform.

Q: What happens if my target URL is down? A: If the target URL is unreachable or returns an error, the delivery is logged as failed. Review webhook logs to identify and fix failed deliveries.

Q: Can I filter which events trigger webhooks? A: Webhook subscriptions are per event type. If you need to filter within an event type (e.g., only certain jobs), add filtering logic in your Zapier zap or receiving application.

Last updated 3 days ago
Was this helpful?
Thanks!