---
title: "Niceboard backfill: fill a job board with live postings"
description: "Niceboard backfill: the partner feeds Niceboard offers, its private API and Zapier routes, and how to keep a Niceboard job board full of fresh postings."
canonical: https://jobspipe.dev/blog/niceboard-backfill
date_published: 2026-10-29
date_modified: 2026-10-29
author: Dvir Atias
---

# How to backfill a Niceboard job board with live postings

Niceboard ships with a backfill switch that pulls from a few partner feeds, a private API on its top plan, a Zapier app and an embed widget. What each route gives you, where the built-in backfill runs out for a niche board, and the JobsPipe loop that keeps a Niceboard board full of fresh, filtered postings and takes closed roles down again.

Niceboard is hosted job board software: you pick a domain, set posting prices, and employers pay to list. Like every board platform it ships empty, and Niceboard answers that with a backfill switch, a private API on its top plan, a Zapier app and an embeddable job feed. This post goes through what each of those routes actually gives you, where the built-in backfill stops being enough for a niche board, and the API loop that keeps a Niceboard board full of postings you chose and takes closed roles down again. The general mechanics of backfill feeds are in [job board backfill](https://jobspipe.dev/blog/job-board-backfill); this is the Niceboard-specific version.

## What Niceboard’s built-in backfill does

In the admin, under Manage board, Jobs and then Backfill, you choose a partner provider and a keyword, category or location combination, and Niceboard fills the board from that provider’s feed. The partners are Appcast, Talroo, Adzuna and Jobcase, and backfilled jobs appear as soon as you save. If nothing shows up, widen the filter or switch provider.

That is the right first move for a general board: it is zero code and the inventory arrives instantly. The limits show up when the board is narrow. The filter is a single keyword, category or location, so “senior Rust engineer, remote, EU” is not expressible. The rows are the provider’s copy of a copy, so salary and remote flags are only as good as the aggregator’s parsing. And the feed decides when a listing disappears, not the employer closing the role, so a dead posting can sit on your board for weeks. The partners’ revenue terms are set by each provider, so check them before relying on per-click payouts.

Try it without a key

```
curl -d '{"limit":3}' https://api.jobspipe.dev/v1/sandbox/jobs/search
```

Only `/v1/sandbox/*` needs no key.

## The other ways jobs get into a Niceboard board

-   **Private API.** Subscribers on Niceboard’s top tier get a private API to add and remove jobs, employers, categories and locations programmatically. The key and the route list live in the dashboard under Manage board, Automation and then Private API, and each route carries its own documentation there, so the exact field names are visible only once you have the plan. Confirm the tier with Niceboard before you build on it.
-   **Zapier.** The Niceboard app in Zapier exposes a Create Job action alongside Create Company, Create Category and Create Jobtype, and triggers for New Job, New Application and New Employer. It is the no-code way to push a row from any source into the board, available from the mid tier up.
-   **Embed widget.** A copy-and-paste snippet that shows the board’s newest jobs on another site. It pulls jobs out of Niceboard, not in, so it is for distribution rather than backfill.
-   **Scraping partner.** Niceboard links to a third-party scraping service for pulling jobs off arbitrary websites. That is a separate vendor with its own terms, not a Niceboard feature.

## How to backfill a Niceboard job board from the JobsPipe API

The pattern is a scheduled job on your side: query JobsPipe for exactly the slice your board covers, then create each posting in Niceboard through the private API or the Zapier Create Job action. Start with the pull, filtered to the niche and capped on posting age so the first load is fresh:

```
curl https://api.jobspipe.dev/v1/jobs/search \
  -H "Authorization: Bearer $JOBSPIPE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "job_title_or": ["product designer", "ux designer"],
    "job_country_code_or": ["GB", "IE"],
    "posted_at_max_age_days": 14,
    "source_not": ["linkedin", "indeed"],
    "max_ghost_score": 49,
    "limit": 100
  }'
```

Each row carries `id`, `job_title`, `company`, `cities`, `date_posted`, the salary fields when the posting states a range, the description, and the apply `url`. Map them onto the fields Niceboard’s Create Job route or Zapier action asks for (title, company, location, description, apply link, category), and store the JobsPipe `id` against the Niceboard job you created so a re-run never posts the same role twice. Keep `source_not` if you want only employer-direct postings, which state a salary far more often than the LinkedIn and Indeed copies, and `max_ghost_score` to keep likely ghost jobs off the board. Page with `metadata.next_cursor` until it comes back null, then on later runs drop the age cap to a day or two.

The second half is the one partner feeds skip: taking roles down. Once a day, send the ids you hold back with `status: "any"`:

```
curl https://api.jobspipe.dev/v1/jobs/search \
  -H "Authorization: Bearer $JOBSPIPE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "job_ids": ["8a7e4f24-3c1d-4b9e-a2f6-1d5c7e9b0a34", "f2c9a1d0-5b7e-4c3a-9e8d-2a6b4c1f7e55"],
    "status": "any",
    "limit": 100
  }'
```

Send the ids exactly as you stored them, whichever board each came from; no source filter is needed, since an id already names one posting. Rows that return with `status` closed are the ones to take down, and the rest show a “last confirmed open” date from `last_seen_at`. Webhooks start at the Builder package: register one for the `job.closed` event instead of polling.

The take-down itself depends on your Niceboard tier. The private API removes jobs, so on the top tier a short daily script can close the loop. The Zapier app only creates records, so on a Zapier-only plan you either remove closed roles by hand from the list the script gives you or set a short listing duration and let them expire.

## When to use which route

-   **General board, just launched:** switch on the built-in backfill and move on. Inventory today beats a perfect schema.
-   **Niche board where the filter matters:** JobsPipe pull into Zapier Create Job. You get title phrases, countries, remote, salary floor and ghost-score filters that the one-field backfill cannot express.
-   **Board that is the product:** private API both ways, with the removal loop, so the board never shows a role the employer already filled. Pair it with the sourcing approach in [how to build a niche job board](https://jobspipe.dev/blog/how-to-build-a-niche-job-board).

If Niceboard turns out not to fit, the same loop works against any platform with an import route; the comparison in [best job board software](https://jobspipe.dev/blog/best-job-board-software) covers the alternatives, and [WordPress job board plugins](https://jobspipe.dev/blog/wordpress-job-board-plugins) has the PHP version for self-hosted boards.

## Sources

-   [Niceboard help center: backfill jobs](https://help.niceboard.co/article/23)
-   [Niceboard help center: private API](https://help.niceboard.co/article/51)
-   [Niceboard pricing](https://niceboard.co/pricing)
-   [Niceboard on Zapier](https://zapier.com/apps/niceboard)

## Frequently Asked Questions

### Does Niceboard have backfill?

Yes. Under Manage board, Jobs and then Backfill, an admin picks a partner provider and a keyword, category or location filter, and Niceboard fills the board from that provider's feed. The partners are Appcast, Talroo, Adzuna and Jobcase, and the jobs appear as soon as you save.

### Does Niceboard have an API?

Yes, for subscribers on its top tier: a private API that adds and removes jobs, employers, categories and locations. The key and the documented routes sit in the dashboard under Manage board, Automation and Private API. Confirm the tier with Niceboard before building on it.

### Can Niceboard import jobs from an XML or JSON feed?

No, not from an arbitrary feed URL. The import routes are the partner backfill providers, the private API, and the Zapier Create Job action. To load jobs from your own source, call the API or trigger the Zapier action from a script that reads your feed.

### Does Niceboard work with Zapier?

Yes. The Niceboard Zapier app has Create Job, Create Company, Create Category, Create Jobtype and Create Job Alert actions, and New Job, New Application, New Employer, New Job Seeker and New Sale triggers. Zapier is available from the mid tier up. There is no delete action, so removing a closed job is a manual step or an expiry setting on Zapier-only plans.

### How do you backfill a Niceboard job board with the JobsPipe API?

Query POST /v1/jobs/search with job\_title\_or, job\_country\_code\_or and posted\_at\_max\_age\_days for your niche, then create each row in Niceboard through the private API or the Zapier Create Job action, storing the JobsPipe id so re-runs never duplicate. Once a day, send the stored ids back with status any and remove the rows that return closed.

### Why not just use Niceboard's built-in backfill?

For a general board it is the fastest start. For a niche board the one-field filter cannot express the slice, the rows are an aggregator's copy with weaker salary and remote data, and listings leave when the feed drops them rather than when the employer closes the role. A filtered API pull with a removal loop fixes all three.

Related

## Keep reading

-   [Reference · Sep 9, 2026Job board backfill: what backfill means in hiring, and how backfill feeds work](https://jobspipe.dev/blog/job-board-backfill)
-   [Comparison · Jul 15, 2026Best job board software in 2026: 9 platforms compared (build vs buy)](https://jobspipe.dev/blog/best-job-board-software)
-   [Guide · Jul 19, 2026How to build a niche job board in 2026: pick the niche, source the jobs, launch](https://jobspipe.dev/blog/how-to-build-a-niche-job-board)
-   [Comparison · Sep 9, 2026WordPress job board plugins in 2026: compared, and how to fill one with live postings](https://jobspipe.dev/blog/wordpress-job-board-plugins)
-   [Guide · Sep 9, 2026Sales trigger events, ranked by how early job postings surface them](https://jobspipe.dev/blog/sales-trigger-events)


---
Try it with no key: `curl -d '{"limit":3}' https://api.jobspipe.dev/v1/sandbox/jobs/search`. AI agents: the full machine-readable index of this site is https://jobspipe.dev/llms.txt?src=md-twin - API quickstart, MCP server, pricing. Free key (1,000 jobs to start): https://jobspipe.dev/signup