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.
| Field | Description | Job board usage |
|---|---|---|
id | Unique identifier for the job | Track listings internally |
name | Job title | Primary listing title |
description | Full job description | Rendered on the job details page |
status | Job state (OPEN, CLOSED, etc.) | Filter to active roles |
public_job_urls | Public apply URLs | "Apply" buttons |
addresses | Job location information | Display city or region |
employment_type | Employment classification | Show full-time, part-time, contractor |
groups | Departments, teams, or divisions | Enable filtering by department |
remote | Whether the job is remote | Power remote-only filters |
number_of_openings | Number of available positions | Show how many roles are open |
created_at | Job creation timestamp | Sort by newest |
updated_at | Last update timestamp | Detect 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:
- Your application launches the authorization component.
- The user selects their ATS, such as Greenhouse or Lever.
- The user authorizes the integration.
- 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
nameas the listing title - Show
employment_typeandgroupsas tags or filters - Use
addressesorremotefor location filtering - Render
descriptionon 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.