All integrations

CleanJobData + Bubble.io

Build a job board on Bubble.io without writing code using CleanJobData's REST API.

Get Free API Key

Benefits

Setup Guide

1Add API connector plugin

Install the API Connector plugin from the Bubble marketplace.

2Configure CleanJobData

Add CleanJobData as a new API in the connector.

API Name: CleanJobData
Base URL: https://api.cleanjobdata.com
Endpoints: GET /jobs → List jobs

3Build your UI

Create Bubble pages with repeating groups for job listings.

Advanced Recipes

Real-world patterns beyond the basic setup.

API Connector call configuration

The exact call setup for the list endpoint, with dynamic search parameters bound to page elements — copy these settings into a new call on the CleanJobData API in the connector.

Call name: Search Jobs
Method: GET
URL: https://api.cleanjobdata.com/jobs
Headers:
  X-API-Key   your-key
Params (mark each as "editable" so workflows can pass a value):
  title       Search_Input's value
  location    Location_Input's value
  remote      Remote_Checkbox's checked
  cursor      (leave blank on first call; bind to a custom state on later pages)
  limit       20

Response body type: JSON — click "Initialize call" against a live request
so Bubble auto-detects the "data" array and "pagination" object as
usable data types for your repeating group.

Frequently Asked Questions

Can I add search to my Bubble job board?

Yes — bind your search inputs to CleanJobData query params in the API Connector call: a keyword input to `title`, a location input to `location` or `city_id`, a remote toggle to `remote=true`. Bubble's API Connector supports dynamic parameters, so each field's value flows straight into the request with no backend workflow required.

Does Bubble support pagination?

Yes. CleanJobData's list endpoint returns a `next_page` cursor token in the response's `pagination` object rather than page numbers — store that token in a Bubble custom state and pass it back as the `cursor` param on the next API Connector call to move forward. When `next_page` comes back null, you've reached the end of the result set.

How do I keep the API key out of client-side calls?

Bubble's API Connector calls run from your app's server by default for GET requests configured as "Data" type calls — the key isn't exposed in the browser's network tab the way a raw client-side fetch would be. Double-check the call's privacy setting is not marked as exposable, and never bind the key itself to a page input or URL parameter.

Can I show job details on a separate page without a second API call?

Yes — pass the job's `id` (or the full data thing, if you're using Bubble's "Data" API Connector type) via the page's URL parameter when linking from the repeating group, then either reuse the already-fetched data or make a scoped detail call filtered to that one `id` on the destination page. Fetching one job by ID is cheaper than re-running the full search call just to show one detail view.