All integrations

CleanJobData + Zapier

Use Zapier to connect CleanJobData with 5000+ apps without coding.

Get Free API Key

Benefits

Setup Guide

1Create a new Zap

Add a Webhook trigger for CleanJobData.

2Configure the webhook

Set up a scheduled trigger to fetch listings.

URL: https://api.cleanjobdata.com/jobs
Headers: { X-API-Key: {{apiKey}} }

3Add actions

Connect to Gmail, Slack, Google Sheets, or your CRM.

Advanced Recipes

Real-world patterns beyond the basic setup.

Full Zap: new remote listings → email digest

A complete three-step Zap, configured exactly as listed.

1. Trigger: Schedule by Zapier
   Frequency: Every day at 8:00 AM

2. Action: Webhooks by Zapier — GET
   URL: https://api.cleanjobdata.com/jobs
   Headers: X-API-Key: {your CleanJobData key}
   Query params: remote=true; created_max_age=24h; limit=25

3. Action: Formatter by Zapier — Utilities: Line Itemizer
   Input: {{2.data}} (loops each job for step 4)

4. Action: Email by Zapier — Send Outbound Email
   Subject: {{3.title}} at {{3.company__name}}
   Body: {{3.application_url}}

Frequently Asked Questions

Is there a Zapier app for CleanJobData?

There's no published app — use the built-in Webhooks by Zapier action instead. Set it to GET `https://api.cleanjobdata.com/jobs`, add `X-API-Key` as a header, and pass filters like `title`, `location`, or `remote=true` as query params. The response's `data` array is standard JSON, so downstream Zap steps read fields like `title`, `company.name`, and `application_url` directly.

Can I filter jobs?

Yes, at two levels. Filter server-side with query params on the webhook request — `title`, `location`/`city_id`, `remote=true`, `salary=min,max`, `experience_level` — so you only pull relevant jobs in the first place. Then use Zapier's Filter step for conditions the API doesn't express directly, like matching a keyword in the title. Filtering server-side is cheaper: you're not paying to parse and discard jobs you didn't want.

How do I keep my API key out of a shared Zap?

Store it in a Zapier Storage record or a connected Google Sheet cell that only you can edit, then reference it in the Webhooks header instead of pasting the raw key into the Zap step. If you're sharing the Zap template with a team, this keeps the key out of the exported JSON — anyone who imports the template has to supply their own.

What happens on a CleanJobData rate limit or timeout?

Webhooks by Zapier surfaces the HTTP status directly — a 429 or 5xx fails that step, and depending on your plan Zapier will auto-retry a failed task a limited number of times before marking it as an error. For a daily digest Zap this is rarely an issue in practice; for a high-frequency trigger, widen the schedule interval before adding custom retry logic.