Skip to content

ATS

SmartRecruiters
API integration

Ship ATS features without building the integration. Full SmartRecruiters API access via Proxy, normalized data through Unified APIs, and 40+ MCP-ready tools for AI agents — all extensible to your exact use case.

Talk to us
SmartRecruiters

Use Cases

Why integrate with SmartRecruiters

Common scenarios for SaaS companies building SmartRecruiters integrations for their customers.

01

Automate candidate sourcing into SmartRecruiters

AI sourcing tools can pull open Jobs from a customer's SmartRecruiters account and push matched passive candidates back as new Candidates with Applications, preserving source attribution for recruiter visibility.

02

Trigger assessments when candidates reach a hiring stage

Skills testing and assessment platforms can monitor Application status changes in SmartRecruiters to automatically send evaluations, then write results and report Attachments back to the candidate's application record.

03

Pre-fill onboarding and payroll from hired candidates

EOR, payroll, and onboarding platforms can detect when an Application moves to 'Hired' status and extract Candidate profiles, Job compensation data, and resume Attachments to eliminate manual data re-entry.

04

Sync interviewer panels for scheduling automation

Interview scheduling tools can ingest SmartRecruiters Users, Roles, and Groups to map interviewers to calendars and build multi-panel schedules tied to specific Applications and Jobs.

05

Power recruitment analytics across multi-ATS customers

Analytics and BI platforms can normalize SmartRecruiters data alongside other ATS sources using Truto's Unified ATS API to give talent leaders a single view of pipeline velocity, source effectiveness, and hiring metrics.

What You Can Build

Ship these features with Truto + SmartRecruiters

Concrete product features your team can ship faster by leveraging Truto’s SmartRecruiters integration instead of building from scratch.

01

Real-time application stage sync

Listen for Application status updates in SmartRecruiters and trigger downstream workflows in your product the moment a candidate moves through hiring stages.

02

Bi-directional candidate profile sync

Pull Candidate data from SmartRecruiters into your app and push enriched or updated profile information back, keeping both systems in lockstep.

03

Automated assessment report upload

Upload PDF reports, scorecards, or compliance documents as Attachments directly onto a candidate's Application record so hiring managers review results without leaving SmartRecruiters.

04

Job requisition ingestion engine

Continuously sync open Jobs—including department, location, and compensation bands—into your product to power job matching, distribution, or workforce planning features.

05

Interviewer and hiring team directory sync

Import SmartRecruiters Users, Roles, and Groups via the Unified User Directory API to map hiring panels, enforce permissions, or route approvals inside your app.

06

One-click candidate import with source tracking

Let your users push sourced or screened candidates into SmartRecruiters as new Candidates with Applications, automatically tagging your product as the originating source.

SuperAI

SmartRecruiters AI agent tools

Comprehensive AI agent toolset with fine-grained control. Integrates with MCP clients like Cursor and Claude, or frameworks like LangChain.

list_all_smart_recruiters_jobs

Search SmartRecruiters jobs by title keyword, city, department, status, posting status, hiring team member, or update time. Returns: id, title, refNumber, createdOn, updatedOn, lastActivityOn, department, location, status, postingStatus, language, actions, type, category, name, label, records. Max 100 per page.

get_single_smart_recruiters_job_by_id

Get a single SmartRecruiters job by id. Returns: id, title, refNumber, createdOn, updatedOn, lastActivityOn, department, location, status, postingStatus, targetHiringDate, hiringProcessId, industry, function, typeOfEmployment, experienceLevel, eeoCategory, template, creator, compensation, jobAd, properties, actions, totalFound, content. Required: id.

smart_recruiters_jobs_approval

Get the latest approval request for a SmartRecruiters job. Returns: positions. Required: job_id. The job must have an existing approval request.

smart_recruiters_jobs_hiring_team

Get the hiring team of a SmartRecruiters job. Returns member records including id, type, category, name, label, and nested records of field values. Required: job_id.

smart_recruiters_jobs_job_ads

List the job ads of a SmartRecruiters job. Returns: id, title, language, location, compensation, jobAd, createdOn, updatedOn, applyUrl, postingStatus, actions, creator, visibility, totalFound, content. Required: job_id.

smart_recruiters_jobs_job_ad_postings

List publications for a job ad in SmartRecruiters. Returns each publication record with its id, type, category, name, label, and records. Required: job_id, job_ad_id.

smart_recruiters_jobs_positions

List positions for a job in SmartRecruiters. Returns each position record with its id, type, category, name, label, and records. Required: job_id.

smart_recruiters_jobs_status_history

Get the status change history for a job in SmartRecruiters. Returns each history record with its id, type, category, name, label, and records. Required: job_id.

list_all_smart_recruiters_candidates

List SmartRecruiters candidates that have at least one job application, searchable by keyword and filterable by job, location, status, tags, and screening questions. Returns candidate records with id, firstName, lastName, email, and updatedOn. Max 100 per page.

get_single_smart_recruiters_candidate_by_id

Get the full details of a SmartRecruiters candidate by id. Returns the candidate record including id, firstName, lastName, email, and updatedOn. Required: id.

smart_recruiters_candidates_list_attachments

List a SmartRecruiters candidate's attachments in the context of a specific job. Returns attachment records with id and attachmentType. Required: candidate_id and job_id.

smart_recruiters_candidates_download_attachment

Download a SmartRecruiters candidate's attachment file by id. Returns the raw attachment file content (binary), not a JSON object. Required: attachment_id.

smart_recruiters_candidates_get_application

Get details of a SmartRecruiters candidate's application to a specific job. Returns the application with id, status, and subStatus. Required: candidate_id and job_id.

smart_recruiters_candidates_update_status

Update a candidate's status for a specific job assignment in SmartRecruiters. Sends a status update payload and returns an empty 204 response on success. Requires candidate_id and job_id; moving a candidate to REJECTED or WITHDRAWN can require a valid reason, and a required sub-status cannot be skipped (NO_REASON_SUPPORT_FOR_STATUS, REASON_NOT_FOUND, REQUIRED_SUB_STATUS_OMITTED validation).

smart_recruiters_candidates_consent

Get a candidate's latest consent status in SmartRecruiters. Returns the latest consent status object in data; the discovered docs reference the CandidateConsentStatus schema without expanding its fields. Required: candidate_id.

smart_recruiters_candidates_consents

Get a candidate's consent decisions in SmartRecruiters. Returns the consent decisions object in data — one decision for 'single consent' accounts or per-data-scope decisions (such as SmartRecruit and SmartCRM) for 'separated consent' accounts; the discovered docs reference the CandidateConsentDecisions schema without expanding its fields. Required: candidate_id.

smart_recruiters_candidates_job_status_history

Get a candidate's status history for a specific job in SmartRecruiters. Returns the status-history list payload in data; the discovered docs reference the CandidateStatusHistoryList schema without expanding its fields. Required: candidate_id and job_id.

smart_recruiters_candidates_job_properties

Get a candidate's property values for a specific job in SmartRecruiters. Returns the property-values object in data, which is empty ({}) when no value is set for a property; the discovered docs reference the CandidateProperties schema without expanding its fields. Required: candidate_id and job_id.

smart_recruiters_candidates_screening_answers

Get the screening question answers a candidate submitted for a specific job in SmartRecruiters. Returns each answer with its id, type, category, name, label, and records of answered field values; returns an empty array when there are no screening answers for the candidate's job. Required: candidate_id, job_id.

smart_recruiters_candidates_job_offers

Get the offers extended to a candidate for a specific job in SmartRecruiters. Returns a paginated collection with limit, nextPageId, totalFound, and content holding the candidate's offer records. Required: job_id.

list_all_smart_recruiters_company

Get company information. Returns: identifier, name, location, website, industry, logo, spamStatus.

list_all_smart_recruiters_departments

List SmartRecruiters departments. Returns the department list with each department's id and label.

list_all_smart_recruiters_interviews

List interviews for a SmartRecruiters application. Returns the collection of interviews; each interview includes its id. Required: applicationId.

list_all_smart_recruiters_job_publications

List publications for a job in SmartRecruiters. Returns publication records including id. Only active publications are returned by default; pass activeOnly=false to include inactive ones. Required: job_id.

list_all_smart_recruiters_messages

List messages for a candidate in smartrecruiters. Returns the fetched messages view including message content. Required: candidateId. Accessible only to users with the ADMINISTRATOR role.

list_all_smart_recruiters_offers

Search SmartRecruiters offers. Returns the matching offer collection (content) plus the total number of results (totalFound). All filters are optional; if age is supplied, createdAfter and createdBefore are ignored.

list_all_smart_recruiters_reviews

List all SmartRecruiters reviews for a specified candidate and job pairing. Returns the matching review records for that application, each identified by its id. Required: candidateId, jobId. The candidate and job must correspond to an existing application.

list_all_smart_recruiters_users

List users of your SmartRecruiters company. Returns user records with id, firstName, lastName, email, active, systemRole, updatedOn, language, and ssoLoginMode. Max 100 per page.

smart_recruiters_users_access_groups

List access groups configured in your SmartRecruiters company. Returns access-group records with: id, name.

smart_recruiters_users_system_roles

List system roles available in your SmartRecruiters company. Returns system-role records with: id.

get_single_smart_recruiters_user_by_id

Get a single SmartRecruiters user by id. Returns the full user object including id, firstName, lastName, email, active, systemRole, updatedOn, language, and ssoLoginMode. Required: id.

create_a_smart_recruiters_user

Create a new user in SmartRecruiters. Returns the created user object including id, firstName, lastName, email, active, systemRole, updatedOn, language, and ssoLoginMode. Required: firstName, lastName, systemRole.

list_all_smart_recruiters_candidate_properties

List all candidate properties and their configuration for a SmartRecruiters company. Returns each property's id, type, category, name, label, and records with selectable field values. MULTI_SELECT properties are available only to a limited set of customers under early access. No required parameters.

list_all_smart_recruiters_candidate_property_values

List all available values for a candidate property in SmartRecruiters. Returns value records with id, label, category, name, and records. Required: candidate_property.id. Only selection-type properties (SINGLE_SELECT, MULTI_SELECT) are supported.

list_all_smart_recruiters_hiring_processes

List the hiring processes configured in SmartRecruiters. Returns the collection of hiring process records, each including its id.

list_all_smart_recruiters_job_properties

List the job properties configured in smartrecruiters. Returns job property definition records with id, name, label, type, category, and the records of available values with their fields.

list_all_smart_recruiters_job_property_dependents

List the job properties configured as dependents of a given job property in SmartRecruiters. Returns each dependent job property's id, name, label, category, and type. Required: job_property.id (the job property's id or key).

list_all_smart_recruiters_job_property_values

List the available values configured for a SmartRecruiters job property. Returns each value's id, label, type, name, and category. Required: job_property_id (the job property's id or key).

list_all_smart_recruiters_job_property_dependent_values

List the dependent job property values configured for a specific value of a job property in SmartRecruiters. Returns: id, label, externalCode, category, name, records. Required: job_property_id, value, dependent_id — the job property and dependent parameters accept an id or key.

list_all_smart_recruiters_offer_properties

List the available offer properties configured in SmartRecruiters. Returns the offer property definitions grouped into categories, with each record exposing its id and property-definition attributes.

list_all_smart_recruiters_reject_reasons

List the rejection reasons configured in SmartRecruiters for the company. Returns the collection of rejection reason definitions as the payload; the vendor documents the record shape with a generic schema, so individual reason fields are not enumerated. Takes no required parameters.

list_all_smart_recruiters_sources

List all available candidate source types with their subtypes in SmartRecruiters. Returns each source type record with its id and type-specific attributes covering the source type and its subtypes.

list_all_smart_recruiters_candidate_sources

List SmartRecruiters candidate source values for a given source type. Returns source records identified by id. Required: source_type. Max 100 per page.

list_all_smart_recruiters_withdrawal_reasons

List the withdrawal reasons configured in the SmartRecruiters account. Returns each reason's id plus vendor-defined attributes; the attribute shape follows SmartRecruiters' Properties schema and is not enumerated in the public docs.

list_all_smart_recruiters_interview_types

List the interview types configured in smartrecruiters. Returns the interview types collection (types), with each type identified by its name; the account can hold up to 2000 types. Takes no parameters.

get_single_smart_recruiters_job_application_by_id

Get a single job application in SmartRecruiters by id. Returns the JobApplication record: its id plus job-application-specific fields under attributes. Required: id.

list_all_smart_recruiters_job_postings

List active SmartRecruiters job postings published by a given company. Returns posting records with id, applyUrl, and location (country, region, city). Required: company_id. Max 100 per page.

get_single_smart_recruiters_job_posting_by_id

Get a single SmartRecruiters job posting by posting id or uuid for a given company. Returns: id, uuid, name, jobId, jobAdId, defaultJobAd, applyUrl, postingUrl, referralUrl, refNumber, company, releasedDate, location, industry, department, function, typeOfEmployment, experienceLevel, customField, ref, creator, jobAd, active, visibility, compensation, totalFound, content. Required: company_id, id.

list_all_smart_recruiters_me

Get details of the authenticated SmartRecruiters user (my user). Returns the user entity: id, firstName, lastName, email, active, systemRole, language, ssoLoginMode, updatedOn. Takes no additional parameters — the returned user is determined by the API credential used.

Why Truto

Why use Truto’s MCP server for SmartRecruiters

Other MCP servers give you a static tool list for one app. Truto gives you a managed, multi-tenant MCP infrastructure across 850+ integrations.

01

Auto-generated, always up to date

Tools are dynamically generated from curated documentation — not hand-coded. As integrations evolve, tools stay current without manual maintenance.

02

Fine-grained access control

Scope each MCP server to read-only, write-only, specific methods, or tagged tool groups. Expose only what your AI agent needs — nothing more.

03

Multi-tenant by design

Each MCP server is scoped to a single connected account with its own credentials. The URL itself is the auth token — no shared secrets, no credential leaking across tenants.

04

Works with every MCP client

Standard JSON-RPC 2.0 protocol. Paste the URL into Claude, ChatGPT, Cursor, or any MCP-compatible agent framework — tools are discovered automatically.

05

Built-in auth, rate limits, and error handling

Tool calls execute through Truto’s proxy layer with automatic OAuth refresh, rate-limit handling, and normalized error responses. No raw API plumbing in your agent.

06

Expiring and auditable servers

Create time-limited MCP servers for contractors or automated workflows. Optional dual-auth requires both the URL and a Truto API token for high-security environments.

Unified APIs

Unified APIs for SmartRecruiters

Skip writing code for every integration. Use Truto’s category-specific Unified APIs out of the box or customize the mappings with AI.

Unified User Directory API

Groups

Groups are a collection of users in the source application. In some applications, they might also be called Teams.

View Docs

Roles

The Role object represents a role of a User.

View Docs

Users

The User object represents a User.

View Docs

Unified ATS API

Applications

The applications represent an application for a job.

View Docs

Attachments

The attachments represent an attachment for a candidate.

View Docs

Candidates

The candidates represent a candidate.

View Docs

Jobs

The jobs represent a job.

View Docs

Users

The users represent a user.

View Docs

How It Works

From zero to integrated

Go live with SmartRecruiters in under an hour. No boilerplate, no maintenance burden.

01

Link your customer’s SmartRecruiters account

Use Truto’s frontend SDK to connect your customer’s SmartRecruiters account. We handle all OAuth and API key flows — you don’t need to create the OAuth app.

02

We handle authentication

Don’t spend time refreshing access tokens or figuring out secure storage. We handle it and inject credentials into every API request.

03

Call our API, we call SmartRecruiters

Truto’s Proxy API is a 1-to-1 mapping of the SmartRecruiters API. You call us, we call SmartRecruiters, and pass the response back in the same cycle.

04

Unified response format

Every response follows a single format across all integrations. We translate SmartRecruiters’s pagination into unified cursor-based pagination. Data is always in the result attribute.

FAQs

Common questions about SmartRecruiters on Truto

Authentication, rate limits, data freshness, and everything else you need to know before you integrate.

What authentication method does SmartRecruiters use?

SmartRecruiters uses OAuth 2.0 for API authentication. Truto handles the full OAuth flow, token refresh, and credential storage so your end users can connect their accounts without your team managing auth infrastructure.

Which Unified APIs does Truto support for SmartRecruiters?

Truto maps SmartRecruiters to the Unified ATS API (Applications, Attachments, Candidates, Jobs) and the Unified User Directory API (Groups, Roles, Users). Additional tools or custom resources can be built on request.

Does SmartRecruiters support webhooks for real-time data sync?

Yes. SmartRecruiters provides extensive webhook subscriptions for events like candidate.created and application.status.updated, enabling real-time triggers without aggressive polling.

Can I read and write custom fields on SmartRecruiters objects?

SmartRecruiters supports custom fields on Candidates, Jobs, and Applications through its API. Truto can surface these via its integration layer. Contact the Truto team to discuss specific custom field mapping requirements.

Are there rate limits on the SmartRecruiters API?

Yes, SmartRecruiters enforces API rate limits that vary by endpoint and customer plan. Truto handles rate limit detection, backoff, and retry logic automatically so your integration stays resilient without manual throttling.

What if I need an endpoint or data model that isn't covered by the current Unified APIs?

Truto builds additional tools and custom resources on request. If you need access to SmartRecruiters data beyond the current Unified ATS and User Directory models—such as offer details, interview feedback, or GDPR consent fields—reach out and the team can scope it.

SmartRecruiters

Get SmartRecruiters integrated into your app

Our team understands what it takes to make a SmartRecruiters integration successful. A short, crisp 30 minute call with folks who understand the problem.