All integrations

CleanJobData + Make.com

Connect CleanJobData to Make.com to automate job data workflows without writing code.

Get Free API Key

Benefits

Setup Guide

1Create a new scenario

Add CleanJobData as an HTTP module in Make.com.

2Configure the request

Configure the HTTP module to fetch job listings.

URL: https://api.cleanjobdata.com/jobs
Method: GET
Headers: { Authorization: Bearer {{apiKey}} }

3Add actions

Connect to apps like Slack, Google Sheets, or Airtable.

Advanced Recipes

Real-world patterns beyond the basic setup.

Full scenario: new listings → Slack alert

A complete four-module scenario, module by module — set this up exactly as listed and it runs unattended.

1. Schedule trigger — every hour

2. HTTP > Make a request
   URL: https://api.cleanjobdata.com/jobs
   Method: GET
   Headers: Authorization: Bearer {{your CleanJobData key}}
   Query string: title=engineer; remote=true; created_max_age=1h
   (Starter: new jobs appear 24h after indexing, so use created_max_age=25h
    and the Data Store dedupe step below)

3. Iterator
   Array: {{2.data}}

4. Slack > Create a Message
   Channel: #new-jobs
   Text: New listing: {{3.title}} at {{3.company.name}} — {{3.application_url}}

Frequently Asked Questions

Can I schedule automatic fetches?

Yes — set the scenario's schedule (hourly up to daily) and add `created_max_age` to the HTTP request so each run only pulls jobs ingested since the last one, e.g. `created_max_age=1h` on an hourly scenario. It takes hours, days or weeks (`1h`, `1d`, `1w`), not minutes. It filters on CleanJobData's ingestion time rather than the employer's posted date, so it won't miss listings that arrived late from a slow-crawling source. On Starter, jobs become visible 24 hours after indexing, so use a window of at least `25h` and dedupe by `id`.

What apps can I connect to?

2000+ apps. Once the HTTP module pulls jobs from CleanJobData, use the Iterator module to loop over the `data` array and route each listing wherever you need it — Google Sheets or Airtable for a spreadsheet feed, Slack for new-listing alerts, Notion for a curated board, or a webhook into your own database.

How do I avoid sending the same job to Slack twice?

Add a Data Store module before the Slack step: check whether the job's `id` already exists in a Make Data Store, skip if it does, and add it if it doesn't (a Router with a filter on the lookup result does this in two branches). This matters more than it looks — without it, an hourly scenario with an overlapping `created_max_age` window will re-post the same jobs it already alerted on.

What happens if the HTTP module hits a rate limit?

Make's HTTP module surfaces the CleanJobData response as-is, including the 429 status. Per-second limits reset every second and there's no `Retry-After` header, so add an Error Handler on the HTTP module with a short fixed Sleep (1–2 seconds) and a Break directive set to retry — this keeps a scheduled scenario from silently failing a whole run over a transient rate limit.