---
title: "Gem API"
description: "Gem API: the customer API for syncing candidates, sequences and pipelines in one account, the public jobs.gem.com boards, and one call for the postings."
canonical: https://jobspipe.dev/sources/gem
date_published: 2026-08-25
date_modified: 2026-09-26
author: Dvir Atias
---

# Gem API

Gem's API is built for customers syncing candidates, sequences and pipelines inside one account, not for reading postings across every company that hires through Gem; Gem ATS customers host public job boards on jobs.gem.com and as embedded boards on their own sites. JobsPipe does not collect Gem; the same employers' openings reach one search endpoint through the boards JobsPipe does collect, in one record shape across 30+ sources.

> Gem has no public cross-employer jobs API, and JobsPipe does not collect Gem. This page explains what Gem exposes and how to reach the same employers through the boards JobsPipe does collect.

**Canonical URL:** https://jobspipe.dev/sources/gem

## Coverage

JobsPipe does not collect Gem. This page explains what Gem exposes publicly and how to reach the same postings where they are also published on a board JobsPipe does collect (Workday, Greenhouse, Lever, Ashby, LinkedIn, Indeed, SmartRecruiters, Workable, Personio, Recruitee, Teamtailor, EURES, Paylocity, Breezy HR, CV-Library, Y Combinator, Bayt, JobTech (Sweden), Resume-Library, Arbeitnow, Himalayas, Rise, Manatal, Pinpoint, JobScore, HireHive, The Muse, Remotive, Remote OK, Jobicy, Working Nomads, Landing.jobs).

## Why Gem jobs data is confusing

Gem began as a recruiting CRM and now ships an ATS. Its API is built for customers syncing candidates, sequences and pipelines inside one account, not for reading postings across every company that hires through Gem.

Gem ATS customers host public job boards on Gem-served career pages (jobs.gem.com) and as embedded boards on their own domains. There is no public cross-customer index. JobsPipe does not collect Gem. Employers that run Gem usually also post the same roles to LinkedIn and Indeed, and larger ones run Workday, Greenhouse, Workable, SmartRecruiters, Ashby, Lever or Paylocity alongside it. JobsPipe collects all of those boards, so filter POST /v1/jobs/search by company_name_partial_match_or to reach them.

## Workarounds

### Use Gem's customer API

Reads one account's recruiting data with that customer's credentials. Not a path across employers.

### Scrape Gem career pages one by one

Possible per employer you already know. Public HTML, no directory.

### What JobsPipe offers instead

JobsPipe does not collect Gem. Search the same employers by name across the boards JobsPipe does collect (LinkedIn, Indeed, Workday, Greenhouse, Workable, SmartRecruiters, Ashby, Lever and Paylocity); sources[0].provider on each record names the board it came from.

## Fields available on every record

- `id`
- `job_title`
- `company`
- `company_domain`
- `url`
- `date_posted`
- `discovered_at`
- `last_seen_at`
- `verified_at`
- `status`
- `closed_at`
- `closed_reason`
- `ghost_score`
- `seniority`
- `cities`
- `state_code`
- `min_annual_salary_usd`
- `max_annual_salary_usd`
- `technology_slugs`
- `keyword_slugs`
- `esco_skills`
- `sources`

## FAQ

### Is Gem an ATS or a recruiting CRM?

Both. Gem began as a recruiting CRM and now ships an ATS. Its API reflects the CRM side: it is built for customers syncing candidates, sequences and pipelines inside their own account. Gem ATS customers publish postings on public job boards, but the API is not a way to read them across companies.

### Where are Gem job boards hosted?

Gem ATS customers host public job boards on Gem-served career pages at jobs.gem.com and as embedded boards on their own domains. Each board covers one company, and there is no public cross-customer index or directory. Reading them yourself works per employer you already know, as public HTML.

### Can the Gem API read job postings from other companies?

No. Gem's API reads one account's recruiting data with that customer's credentials, so it only reaches the company that issued them. There is no cross-customer endpoint for postings. For a known employer you can read its public board on jobs.gem.com or its embedded careers page instead.

### How do I find a Gem employer's jobs on LinkedIn or Indeed?

Employers that run Gem usually post the same roles to LinkedIn and Indeed, and larger ones run Workday, Greenhouse or another collected ATS alongside it. JobsPipe collects those boards, so filter POST /v1/jobs/search by company_name_partial_match_or for the employer. sources[0].provider on each record names the board it came from.

## Does Gem have an API?

Gem began as a recruiting CRM and now ships an ATS. Its API is built for customers syncing candidates, sequences and pipelines inside one account, not for reading postings across every company that hires through Gem. Gem ATS customers host public job boards on Gem-served career pages (jobs.gem.com) and as embedded boards on their own domains. There is no public cross-customer index.

## What JobsPipe returns for Gem

Nothing under "source_or": ["gem"]: JobsPipe does not collect Gem. Employers that run Gem usually also post the same roles to LinkedIn and Indeed, and larger ones run Workday, Greenhouse, Workable, SmartRecruiters, Ashby, Lever or Paylocity alongside it. JobsPipe collects all of those boards, so filter POST /v1/jobs/search by company_name_partial_match_or to reach them. Each record comes back with sources[0].provider, status, ghost_score, discovered_at, last_seen_at, seniority, and min_annual_salary_usd and max_annual_salary_usd when the posting states a range.

## Related

- **Product:** https://jobspipe.dev/jobs-api
- **All sources:** https://jobspipe.dev/sources
- **Docs:** https://docs.jobspipe.dev
- **Sign up (free tier):** https://jobspipe.dev/signup

---
Generated from structured data. View the rendered page at https://jobspipe.dev/sources/gem.

---
Building this integration yourself? The steps above work. The alternative is one API over 30+ sources, already normalized and deduplicated. Try it right now - no key, no signup:

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

Sample data, exact live schema. For live data get a free key (1,000 jobs to start) at https://jobspipe.dev/signup, then swap /v1/sandbox/jobs/search for /v1/jobs/search with an Authorization: Bearer header. Full agent index: https://jobspipe.dev/llms.txt?src=md-twin