SmartRecruiters Jobs API.
SmartRecruiters' Postings API works one customer at a time and is tier-dependent. JobsPipe covers every public SmartRecruiters customer in one call, in the same JSON shape as 30+ other ATSs.
Why people are confused about the SmartRecruiters API
SmartRecruiters ships a documented public Postings API at api.smartrecruiters.com/v1/companies/<companyId>/postings. For customers who enable it, the endpoint returns published postings as JSON with no authentication. The catch is tier-dependent: customers on lower SmartRecruiters plans do not have the public Postings feed turned on. There is no list endpoint that enumerates which SmartRecruiters customers have it, and the companyId must be known per-customer.
The full SmartRecruiters API (jobs, candidates, applications, hiring teams, the Marketplace API for partners) requires X-SmartToken headers minted inside the customer's admin or partner OAuth credentials. Either way it is customer-scoped and not built for cross-customer aggregation. The closest aggregator-friendly surface is the jobs.smartrecruiters.com/<CompanyName> public career site - which is the same data exposed under the careers UI most candidates see.
JobsPipe indexes every public SmartRecruiters careers site - jobs.smartrecruiters.com subdomains plus the customer-owned domains running SmartRecruiters embeds - normalizes the data into the same JSON schema we use for Workday, Greenhouse, and 30+ other ATSs, and serves it through one endpoint. Free tier covers 5,000 requests/month with no credit card.
Works when the customer has the public feed enabled (tier-dependent). You must know the companyId, write per-customer fetches, and handle the silent case where the feed isn't enabled. No customer-discovery surface.
Get partner credentials from each SmartRecruiters customer individually. Workable for one or two named accounts. Not feasible across hundreds of customers.
Every public SmartRecruiters customer, one endpoint, one key. Same normalized JSON shape as Workday, Greenhouse, Lever, Indeed, and 30+ other sources. Free tier of 5,000 requests/month with no credit card.
SmartRecruiters API documentation
SmartRecruiters' developer documentation lives at dev.smartrecruiters.com. The major surfaces: the Postings API at api.smartrecruiters.com/v1/companies/<companyId>/postings (public, read-only, tier-dependent on customer), the Recruiting API for jobs, candidates, applications, and hiring teams (X-SmartToken authenticated per-customer), the Marketplace API for partner integrations (OAuth), and the SmartCRM API for sourcing workflows. None expose cross-customer reads. JobsPipe's documentation at /docs covers the unified JSON schema we return for every public SmartRecruiters customer alongside 30+ other ATSs.
SmartRecruiters API key and authentication
The Recruiting API uses an X-SmartToken header. Tokens are minted inside the customer's SmartRecruiters admin under Trust > API & Integrations and are scoped per-customer with no cross-tenant scope. Marketplace partners use OAuth2 client credentials. The public Postings API needs no auth at all - when enabled by the customer. JobsPipe doesn't request SmartRecruiters credentials. We read only public careers pages and authenticate every API call with one JobsPipe Bearer token.
SmartRecruiters Postings API
The SmartRecruiters Postings API is the surface most developers reach for when they want SmartRecruiters jobs from outside the customer's admin. It returns a flat JSON list of postings with title, location, department, custom fields, and apply URL. Two important caveats: it is tier-dependent (not every customer has it enabled in their plan), and one call returns one customer's postings. For cross-customer coverage, you either maintain your own list of companyIds and poll each, or use an aggregator that already maintains the customer list and freshness.
SmartRecruiters API integration
For a single SmartRecruiters customer integration - sync candidates from your CRM, post jobs from your HRIS, sync hiring decisions to your data warehouse - you mint an X-SmartToken inside that customer's admin and call api.smartrecruiters.com/v1 directly. For cross-customer aggregation - reading jobs across many SmartRecruiters customers - the practical path is JobsPipe: every public SmartRecruiters customer indexed every 24 hours, served in the same JSON schema as Workday, Greenhouse, Lever, Indeed, and 30+ other sources, through one endpoint.
SmartRecruiters API alternatives
Alternatives for cross-customer SmartRecruiters job data: (1) Build per-customer Postings API polling and maintain your own companyId list - works for one or two named accounts and breaks down past ten. (2) Apply for SmartRecruiters Marketplace partner status - selective approval, OAuth required, and credentials are still customer-scoped. (3) Use JobsPipe, which already maintains the customer list, handles tier-dependent fallbacks, and serves SmartRecruiters data alongside 30+ other sources. Free tier: 5,000 requests/month, no credit card.
Companies using SmartRecruiters
SmartRecruiters serves a globally-distributed mix of enterprise customers - automotive (Bosch, BMW parts), payments (Visa, Square), QSR (McDonald's), telecom (Vodafone), tech (Atlassian, Lyft), and a long tail of mid-market and growth-stage companies. JobsPipe's SmartRecruiters coverage spans every public SmartRecruiters careers site, so the unique tenant values in our /v1/jobs?source=smartrecruiters response are the live customer list.
Sample request
curl "https://api.jobspipe.dev/v1/jobs?source=smartrecruiters" \
-H "Authorization: Bearer $JOBSPIPE_KEY" \
-H "Accept: application/json"Sample response
{
"id": "sr_NzMzYjcxNDgtMmNiNw",
"source": "smartrecruiters",
"tenant": "bosch",
"title": "Embedded Software Engineer",
"company": "Bosch",
"location": {
"city": "Stuttgart",
"region": "BW",
"country": "DE",
"remote": false
},
"salary": null,
"employment_type": "full_time",
"posted_at": "2026-05-12T08:00:00Z",
"expires_at": null,
"apply_url": "https://jobs.smartrecruiters.com/Bosch/...",
"description": "Bosch is hiring an Embedded Software Engineer for our connected mobility group in Stuttgart. You'll work across the embedded Linux stack, automotive bus protocols ..."
}Every SmartRecruiters job record is returned in the same JSON shape as every other JobsPipe source. The full schema is documented in the docs.
Fields in every SmartRecruiters job record
FAQ
Is the SmartRecruiters API free?+
The public Postings API at api.smartrecruiters.com/v1/companies/<companyId>/postings is free for customers who enable it - but it is tier-dependent on the customer's SmartRecruiters plan. The full SmartRecruiters API requires per-customer tokens and is not free in any aggregator sense. JobsPipe's free tier (5,000 requests/month, no card) covers every public SmartRecruiters customer through one endpoint regardless of which tier they're on.
How do I get a SmartRecruiters API key?+
Inside the customer's SmartRecruiters admin, go to Trust > API & Integrations and mint an X-SmartToken. Each token is scoped to that customer. The public Postings API for that customer's jobs does not require a token if the customer has enabled the public feed. JobsPipe does not require SmartRecruiters credentials at all - we read public-facing data only.
Does the SmartRecruiters Postings API require authentication?+
No, for customers who enable the public Postings feed. api.smartrecruiters.com/v1/companies/<companyId>/postings returns JSON with no auth header. The catch: not every customer has it on, and there is no list of which customers do.
How do I find a SmartRecruiters companyId?+
The companyId is set when the customer signs up and is visible inside their SmartRecruiters admin. From the outside it is sometimes inferable from the jobs.smartrecruiters.com/<CompanyName> URL, but not always. JobsPipe sidesteps this entirely - you query by company name (or by ?tenant=bosch slug) and we resolve the rest.
What's SmartRecruiters' rate limit?+
The public Postings API is rate-limited per IP, with specific thresholds documented at dev.smartrecruiters.com per endpoint. The authenticated API has higher per-customer quotas tied to the customer's plan. JobsPipe's tier-based limits start at 5,000 requests/month free - we handle the underlying SmartRecruiters polling on our side and you only see one rate-limit surface (ours).
Can I filter SmartRecruiters jobs by location or department?+
Yes. Use ?country=DE for Germany-only postings (or any ISO country code), ?region=BW for state/province, ?department=engineering, and ?employment_type=full_time. Full filter list is in our docs.
Does JobsPipe support SmartRecruiters webhooks?+
JobsPipe emits its own webhook events on posting changes (new, updated, closed) for every public SmartRecruiters customer we cover. The underlying SmartRecruiters webhook surface is partner-scoped and not relayed - JobsPipe events have the same JSON shape as our REST responses.
Which SmartRecruiters customers does JobsPipe cover?+
Every public SmartRecruiters careers site. That includes Bosch, Visa, McDonald's, Square, Atlassian, Lyft, Equinox, Vodafone, and roughly 1,500 other public SmartRecruiters customers as of 2026.
Try SmartRecruiters data free - 5,000 requests/month, no credit card.
Get a free API key