[NewSearch millions of jobs from your AI agent with MCP→](/blog/jobspipe-mcp-server)

[All posts](/blog)

Guide·Jul 15, 2026·6 min read

# SmartRecruiters API: pulling published job postings at scale

SmartRecruiters is one of the friendlier ATSs to build on - it has a genuinely public Posting API, no key required. Where the public endpoint shines, where one-company-per-call runs out, and how to query every SmartRecruiters employer through one normalized feed.

![Dvir Atias](/authors/dvir-atias.jpg)

Dvir Atias

Founder, JobsPipe

SmartRecruiters powers hiring for a large roster of mid-market and enterprise employers, and it is one of the friendlier ATSs to build on: the **SmartRecruiters API** includes a genuinely public Posting API, no key required. The limit is the usual one - it serves one company per call.

## The SmartRecruiters API surfaces

-   **The public Posting API** - `api.smartrecruiters.com/v1/companies/<company>/postings`. Unauthenticated, returns a company’s published postings as JSON, with a companion `/postings/<id>` for full detail. This is the surface most developers want.
-   **The authenticated (Marketplace) API** - the OAuth- secured REST surface for customers and partners: jobs, candidates, and hiring workflow. Scoped to one customer’s account.

## The public Posting API in practice

For a single known company, it is clean structured JSON with no auth:

```
curl "https://api.smartrecruiters.com/v1/companies/<company>/postings?limit=100"
```

Each posting carries title, location, department, employment type, a creation date, and a deep link to apply. Results page with `limit` and `offset`.

## Where single-company access runs out

The endpoint takes one company identifier per call, and that is the model. There is no cross-company search, no directory of every SmartRecruiters employer, no expired-posting history, and per-IP rate limits that make broad polling slow. To cover many employers you first need every company’s identifier and a way to keep that list fresh - the same discovery-and-maintenance work every per-company API forces on you.

## Query every SmartRecruiters company at once

JobsPipe indexes public SmartRecruiters postings and returns them through one endpoint, normalized with parsed salary and resolved locations, alongside 30+ other sources:

```
curl https://api.jobspipe.dev/v1/jobs/search \
  -H "Authorization: Bearer jp_live_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{ "source_or": ["smartrecruiters"], "job_title_or": ["account executive"], "remote": true }'
```

Narrow to one employer with `company_name_partial_match_or`, or drop `source_or` to search across every ATS at once. Field-level docs are on our [SmartRecruiters source page](/sources/smartrecruiters).

Every SmartRecruiters company, one API key - free tier included.

## Frequently asked questions

### Does SmartRecruiters have a public API?

Yes - SmartRecruiters has a public Posting API at api.smartrecruiters.com/v1/companies/<company>/postings that returns a company's published jobs as JSON with no key. The limit is that it serves one company per call.

### How do I query all SmartRecruiters companies at once?

The public Posting API has no cross-company directory. JobsPipe indexes public SmartRecruiters postings and returns them through one normalized jobs API alongside 30+ other sources.

[

← Previous

iCIMS API: how to pull job postings from iCIMS career sites

](/blog/icims-api-jobs)[

Next →

SAP SuccessFactors API: OData vs the job postings you actually want

](/blog/successfactors-api-jobs)

---
Canonical URL: https://jobspipe.dev/blog/smartrecruiters-api-jobs
Title: SmartRecruiters API: pulling published job postings at scale
Description: SmartRecruiters is one of the friendlier ATSs to build on - it has a genuinely public Posting API, no key required. Where the public endpoint shines, where one-company-per-call runs out, and how to query every SmartRecruiters employer through one normalized feed.