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

[All posts](/blog)

Guide·Jul 15, 2026·7 min read

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

The SuccessFactors API you find first - OData - is gated to the employer and built for HRIS integration, not for reading public jobs. Why the JobRequisition entity is a dead end for outside data, where the postings really live, and how to pull them across every SuccessFactors career site.

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

Dvir Atias

Founder, JobsPipe

SAP SuccessFactors is one of the largest enterprise HCM suites, and its Recruiting module powers hiring for thousands of big employers. It is also the most confusing ATS to build on, because the **SuccessFactors API** you find first - OData - is not the one that gives you job postings.

## The SuccessFactors API surfaces

-   **The OData API (Recruiting / Employee Central)** - the real “SuccessFactors API,” secured with OAuth 2.0 or SAML and issued only to the employer and its integration partners. It is built for HRIS integration - Employee Central, Compound Employee, the `JobRequisition` entity - not for outside parties reading public jobs. Most `successfactors odata` searches land here and hit a wall.
-   **The Career Site (Career Site Builder)** - the public careers pages SuccessFactors renders for each employer, usually on a branded domain. This is where the public job data actually lives, as HTML.
-   **Career-site job feeds** - many SF career sites expose an RSS or XML feed for syndication. Useful when present, inconsistent across employers.

## OData is not your job feed

The single most common SuccessFactors mistake is expecting the OData `JobRequisition` API to return an employer’s open roles to you. It will not - it is gated to that employer’s own systems. For public postings you are back to the career site, and every employer runs a separate branded one.

## The extraction problem

Which means the same standing work as any enterprise ATS: enumerate every SuccessFactors career site, parse each one, and normalize the output. The API that would have made this trivial is exactly the one you are locked out of. See our [ATS integration guide](/blog/ats-api-integration) for why this pattern repeats.

## Query every SuccessFactors career site at once

JobsPipe indexes public SuccessFactors career sites and serves the postings through one normalized endpoint, next to 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": ["successfactors"], "job_title_or": ["data analyst"], "posted_at_max_age_days": 14 }'
```

No OData credentials, no per-employer onboarding. Scope to one company with `company_name_partial_match_or`, or search every ATS at once. Details on our [SuccessFactors source page](/sources/successfactors).

Skip the OData wall - SuccessFactors postings normalized across 30+ sources, free tier included.

[

← Previous

SmartRecruiters API: pulling published job postings at scale

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

Next →

How to build a job board in 2026: stack, data, and go-live

](/blog/how-to-build-a-job-board)

---
Canonical URL: https://jobspipe.dev/blog/successfactors-api-jobs
Title: SAP SuccessFactors API: OData vs the job postings you actually want
Description: The SuccessFactors API you find first - OData - is gated to the employer and built for HRIS integration, not for reading public jobs. Why the JobRequisition entity is a dead end for outside data, where the postings really live, and how to pull them across every SuccessFactors career site.