How to Build a Job Board from APIs with Ingestics

July 7, 2026 · Use Cases · Team AutoAPIWP

How to Build a Job Board from APIs with Ingestics

Aggregate listings from multiple job APIs into one searchable WordPress directory, without duplicates.

Niche job boards succeed by aggregating listings a generalist site would never bother curating — remote-only roles, a specific industry, a specific region. The hard part isn’t finding job APIs; it’s merging several of them into one clean, duplicate-free, expiring listing directory. This guide walks through building exactly that with Ingestics.

Choose Your Job Data Sources

Several job aggregation APIs offer free-tier access with an API key, typically returning job title, company, location, salary range, description, and an application URL as JSON. Sign up for the API(s) most relevant to your niche and region, and note the query parameters they support for filtering by keyword, location, and category — you’ll use these to scope each provider to your job board’s focus.

Create a Job Listing Custom Post Type

Before adding providers, set up (or have your theme/a companion plugin set up) a job_listing custom post type with fields for company, location, salary, and application link. This gives your imported listings a proper structure distinct from blog posts, and lets your theme render them as a searchable directory rather than a chronological feed.

Add Each Job API as a Provider

In Ingestics, add each job API as a separate API provider — e.g. “Jobs — Adzuna Remote Tech.” Use the Generic API-Key or Generic Bearer provider preset (Lite+) to pre-fill common authentication scaffolding, then complete the endpoint URL and any required parameters (keyword, location, category) specific to your niche.

Map Listings to Your Job Post Type

Use the JSON Path Selector to map job title to your post Title, company and location to custom fields, salary range to a custom field, the full description to your content, and the application URL to both your Source URL field and a custom “Apply” link field. Mapping the application URL as the Source URL is what makes duplicate detection and later expiry logic possible.

Prevent Duplicate Listings Across Sources

The same job is frequently syndicated across multiple job boards and, therefore, multiple APIs. Ingestics’ duplicate detection checks by title and/or source URL — since exact application URLs often differ between aggregators even for the same underlying job, title-based matching (with reasonably specific job titles) does more of the deduplication work here. Review your Activity Log’s duplicate counts after your first few fetches to see how much overlap your chosen sources actually have.

Filter by Location, Category, or Salary (Pro)

Pro’s Query Builder lets you set location, category, and keyword filters through a GUI rather than manually editing each provider’s query string — useful when you’re running several providers scoped to slightly different criteria (e.g. “Remote Engineering,” “Remote Design,” “Remote Marketing”) and want to adjust filters without digging into raw URLs each time.

Fetch the Full Result Set with Pagination

Job APIs frequently paginate results, returning 20–50 listings per page even when hundreds match your query. Lite’s page-based pagination automatically walks through all available pages in a single fetch run rather than only capturing the first page, ensuring your job board reflects the full result set your API query matched.

Build Listing Expiry Using Post Meta

Ingestics stamps each imported item with source metadata, including _aapi_source_url and the source/fetch date, as post meta. You (or a companion plugin/theme function) can use this metadata to build simple expiry logic — for example, a scheduled task that unpublishes or archives job listings older than 30 days, keeping your directory feeling current rather than cluttered with stale postings.

Schedule Regular Refreshes

Every 4–6 hours is a sensible refresh cadence for most job boards — frequent enough to catch new postings promptly, infrequent enough to respect API rate limits across multiple providers. Provider rotation (Lite+) staggers your fetches so multiple job API providers aren’t all firing simultaneously.

Display Your Job Directory

Use the [aapi_feed] shortcode or Gutenberg block filtered to your job_listing post type on a dedicated jobs page. For a true searchable/filterable directory experience (search by keyword, filter by location), you’ll likely want to pair Ingestics’ data ingestion with a directory/listing theme or plugin that provides the front-end search interface, using Ingestics purely as the automated data pipeline feeding it.

Free tier note: You can connect up to 3 job API providers on the Free plan with manual fetching to validate your field mapping and data quality. Scheduled refreshes, provider presets, and front-end display require Lite; full-result-set pagination and query filtering by location/category benefit from Pro.

Going Further: Affiliate/Referral Tracking

If you’re monetizing through job-application referral programs, Pro’s affiliate URL rewriting can automatically append your tracking parameters to application links across all imported listings, so you don’t need to touch each provider’s raw data manually.

Troubleshooting Tips

Same job appearing multiple times from different sources: Tighten your duplicate detection by ensuring the job title mapping captures enough specificity (including company name if titles are generic like “Software Engineer”).

Old listings never disappear: Build expiry logic using the source-date post meta Ingestics stamps on every import, since Ingestics itself focuses on preventing duplicates rather than automatically expiring content.

Salary field is inconsistent between sources: Different job APIs format salary differently (ranges, single figures, hourly vs. annual) — normalize this in your custom field display logic or theme template rather than expecting uniform formatting from the raw API data.

Frequently Asked Questions

Can I combine multiple job APIs into one board?
Yes — add each as a separate provider mapped to the same job_listing post type, and let duplicate detection minimize overlap between them.

Does Ingestics handle job listing search/filtering on the front end?
Ingestics handles data ingestion and basic feed display; for advanced search/filter UI, pair it with a dedicated directory or job-board theme/plugin that consumes the imported post type.

How do I stop showing expired listings?
Use the source-date metadata Ingestics stores on each post to build a simple scheduled cleanup routine, since Ingestics doesn’t automatically expire content on its own.

Real-World Example: A Remote-Only Niche Job Board

Consider a job board focused exclusively on remote design roles. Two job APIs are configured as providers, each with a query scoped to “design” category and “remote” location filters via the Query Builder (Pro). Both feed into the same job_listing post type with a shared “Design” category. After the first week of fetches, the Activity Log shows a meaningful percentage of duplicate listings between the two sources — expected, since popular remote roles are often syndicated across multiple aggregators — confirming that duplicate detection is doing real, necessary work rather than being a theoretical safeguard.

Common Mistakes to Avoid

  • Not scoping API queries tightly enough. A broad, unfiltered job API query returns far more volume than a niche board needs; use category, keyword, and location parameters to keep results relevant from the start.
  • Relying only on title-based duplicate detection for generic job titles. “Software Engineer” appears constantly across unrelated companies; where possible, include the company name in your mapped title to reduce false-duplicate suppression of genuinely different listings.
  • No listing expiry plan. A job board full of expired postings quickly loses visitor trust; build expiry logic using source-date metadata from day one, not as an afterthought.
  • Skipping pagination. Without page-based pagination (Lite+) enabled, you may only be capturing the first page of results per fetch, silently missing the majority of available listings for a popular query.

More Frequently Asked Questions

Can companies submit their own listings directly, alongside the API-sourced ones?
Yes — manually created WordPress posts in the same custom post type coexist normally alongside Ingestics-imported listings.

How do I handle salary data shown in different currencies?
Map the currency field (if provided) alongside the salary figure into separate custom fields, and handle currency-specific formatting/conversion in your theme template.

Recommended tier: Lite to start; Pro for query filtering and pagination across full result sets
Time to set up: A few hours to configure multiple job API providers and a listing template
Sources used: Job listing APIs (such as Adzuna or Reed) and/or partner company feeds

Aggregate listings without the manual copy-paste.

Connect multiple job APIs to WordPress with Ingestics and let your directory build itself.

✓ Free forever plan   |   ✓ Built-in duplicate protection   |   ✓ No credit card required

Get Ingestics Free →