Unified.to
All articles

How to Build a Job Board Integrating Greenhouse, Lever, and 73+ ATS Platforms with an ATS API


March 10, 2026

Updated June 2026

Many SaaS products build job board features so their customers can display open roles directly from their applicant tracking systems (ATS). Recruiting marketplaces, talent platforms, and hiring analytics tools often need to aggregate jobs from systems like Greenhouse or Lever and render them in their own product.

The challenge is that every ATS exposes different APIs, schemas, and authentication models. Pulling job listings from Greenhouse, Workday, iCIMS, SmartRecruiters, or other systems typically means building and maintaining separate integrations.

Unified.to provides a normalized ATS API across dozens of hiring platforms. Instead of building per-provider connectors, you retrieve job postings from many ATS systems through one endpoint and schema, fetched live from the source. This lets SaaS products build job boards that display customer job listings and stay current with the underlying ATS.

Why SaaS products build job board integrations

Many B2B SaaS products build job board functionality for their customers — recruiting marketplaces, talent sourcing platforms, hiring analytics tools, employer branding platforms, and candidate matching products. These let customers connect their ATS so the platform can retrieve openings and display them to candidates.

Typical features include aggregated job listings across companies, custom career pages embedded in the product, talent marketplaces displaying open roles, and hiring dashboards that track job availability. Integrating with customer ATS systems keeps listings updated without manual uploads.

The Unified.to ATS category

Unified.to's ATS API normalizes job data across 85+ ATS integrations, including Greenhouse, Lever, Workday, iCIMS, SmartRecruiters, Ashby, Jobvite, BambooHR, Workable, and Zoho Recruit. A single implementation supports many hiring platforms.

The primary object for job boards is the job object, which represents a job posting or requisition in an ATS.

The Unified.to job object and key fields

Unified.to standardizes job records across ATS providers.

FieldDescriptionJob board usage
idUnique identifier for the jobTrack listings internally
nameJob titlePrimary listing title
descriptionFull job descriptionRendered on the job details page
statusJob state (OPEN, CLOSED, etc.)Filter to active roles
public_job_urlsPublic apply URLs"Apply" buttons
addressesJob location informationDisplay city or region
employment_typeEmployment classificationShow full-time, part-time, contractor
groupsDepartments, teams, or divisionsEnable filtering by department
remoteWhether the job is remotePower remote-only filters
number_of_openingsNumber of available positionsShow how many roles are open
created_atJob creation timestampSort by newest
updated_atLast update timestampDetect updates for incremental sync
The groups[] field carries a name and a type (such as DEPARTMENT, TEAM, DIVISION, or BUSINESS_UNIT), so you can label and filter listings by the organizational unit the role belongs to.

Additional fields may be available depending on the provider, including compensation ranges, recruiter or hiring-manager IDs, screening questions, metadata, and language-locale information.

Connecting customer ATS platforms

Customers authorize their ATS integrations through Unified.to's embedded authorization flow:

  1. Your application launches the authorization component.
  2. The user selects their ATS, such as Greenhouse or Lever.
  3. The user authorizes the integration.
  4. Unified.to returns a connection_id.

Store the mapping user_id → connection_id and reference it in all subsequent calls.

Retrieving job listings

Job listings come from the ATS job endpoint:

GET /ats/{connection_id}/job

This returns a normalized list of AtsJob objects across supported providers. Useful filters include limit and offset (pagination), updated_gte (jobs updated after a timestamp), query (search by keyword or title), user_id (jobs owned by a given recruiter or hiring manager), and sort/order. Together they let a job board implement pagination, keyword search, and incremental updates.

Rendering job listings

Once jobs are retrieved, render them in your job board:

  • Display the job name as the listing title
  • Show employment_type and groups as tags or filters
  • Use addresses or remote for location filtering
  • Render description on the detail page
  • Provide an Apply button using public_job_urls

A listing typically shows title, location, department, employment type, compensation (if available), and an apply link.

Keeping job listings updated

To stay synchronized with the underlying ATS, combine incremental queries with webhooks. Unified.to delivers created, updated, and deleted events for job records (ats_job_created, ats_job_updated, ats_job_deleted).

A job closure usually arrives as an ats_job_updated event where status changes to a closed state, rather than a separate event. So a job board typically creates a listing on a created event, updates it on an updated event, removes it on a deleted event, and hides it when status moves to closed. Combined with the updated_gte filter, this keeps listings current.

Supported ATS platforms

Unified.to supports 85+ ATS integrations, including Greenhouse, Lever, Ashby, SmartRecruiters, iCIMS, Workday, Jobvite, BambooHR, Workable, and Zoho Recruit. Because Unified.to normalizes job data across providers, you support many ATS environments with one integration.

Why product teams choose Unified.to

Building job board integrations directly with multiple ATS platforms means maintaining separate connectors and adapting to different APIs. Unified.to provides normalized job objects across 85+ ATS integrations, consistent endpoints for retrieving listings, unified authorization, and webhook events to keep listings synchronized — so product teams can focus on building job boards, candidate marketplaces, and hiring analytics instead of maintaining dozens of integrations.

Start building job boards that integrate with Greenhouse, Lever, and dozens of other ATS platforms today. Start a free 30-day trial or book a demo.

All articles