---
title: Indeed SCIM API Integration on Truto
slug: indeedscim
category: HRIS
canonical: "https://truto.one/integrations/detail/indeedscim/"
---

# Indeed SCIM API Integration on Truto



**Category:** HRIS  
**Status:** Beta

## Unified APIs

### Unified User Directory API

- **Users** — The User object represents a User.

## MCP-ready AI tools

Truto exposes 5 tools for Indeed SCIM that AI agents can call directly.

- **list_all_indeed_scim_users** — List Indeed SCIM users filtered by externalId or email. Returns a maximum of one user; an error is returned if multiple users match the filter. Returns: schemas, id, externalId, userName, name, displayName, emails, active, meta, urn:ietf:params:scim:schemas:extension:indeed:2.0:EmployerOrg. Required: filter.
- **get_single_indeed_scim_user_by_id** — Get a single Indeed SCIM user by encrypted account ID, including all associated employer organization data. Returns: schemas, id, externalId, userName, name, displayName, emails, active, meta, urn:ietf:params:scim:schemas:extension:indeed:2.0:EmployerOrg. Required: id.
- **create_a_indeed_scim_user** — Create an Indeed SCIM user with optional employer organization membership. Returns: schemas, id, externalId, userName, name, displayName, emails, active, meta, urn:ietf:params:scim:schemas:extension:indeed:2.0:EmployerOrg. Required: schemas, externalId, userName, userType, emails (one primary), name (givenName, familyName).
- **update_a_indeed_scim_user_by_id** — Update an Indeed SCIM user by encrypted account ID. This is a full overwrite — every value on the account is replaced even when an attribute is empty or omitted, so include complete user data in the request body. Returns: schemas, id, externalId, userName, name, displayName, emails, active, meta, urn:ietf:params:scim:schemas:extension:indeed:2.0:EmployerOrg. Required: id.
- **delete_a_indeed_scim_user_by_id** — Delete an Indeed SCIM user by encrypted account ID. The user is automatically removed from any employer organizations and the deletion process can take up to 30 minutes to complete. Returns an empty 204 response on success. Required: id.

## How it works

1. **Link your customer's Indeed SCIM account.** Use Truto's frontend SDK; we handle every OAuth and API key flow so you don't need to create the OAuth app.
2. **Authentication is automatic.** Truto refreshes tokens, stores credentials securely, and injects them into every API request.
3. **Call Truto's API to reach Indeed SCIM.** The Proxy API is a 1-to-1 mapping of the Indeed SCIM API.
4. **Get a unified response format.** Every response uses a single shape, with cursor-based pagination and data in the `result` field.

## Use cases

- **Automate Recruiter Provisioning for ATS Platforms** — Applicant Tracking Systems can auto-provision Indeed accounts for hiring managers and recruiters the moment they're added to the ATS, eliminating manual account setup and letting users sponsor jobs from day one.
- **Enable Multi-Client Access Management for Staffing CRMs** — Staffing agency platforms can programmatically assign recruiters to specific client EmployerOrgs on Indeed, so a single CRM action grants access to the right sub-account without back-and-forth with Indeed support.
- **Enforce Immediate Offboarding for IAM & Governance Tools** — Identity governance platforms can trigger Indeed account deletion the instant an employee is terminated in the source HRIS, closing security gaps around candidate PII and recruiting budgets.
- **Power Orphaned Account Audits for Compliance SaaS** — Compliance and access-review products can list and reconcile Indeed users against a source-of-truth directory, flagging accounts that no longer map to active employees for automated cleanup.
- **Sync Recruiter Directory Changes from HRIS Platforms** — HRIS and workforce platforms can propagate name changes, email updates, and department moves into Indeed automatically, keeping recruiter identity data consistent across the hiring stack.

## What you can build

- **Joiner-Mover-Leaver Automation for Indeed** — Trigger create, update, and delete flows on Indeed SCIM users based on lifecycle events in your platform, mapped by externalId.
- **EmployerOrg-Aware Account Provisioning** — Provision users with the correct EmployerOrg extension on creation so recruiters land in the right subsidiary, client, or branch account immediately.
- **Bulk Recruiter Onboarding Wizard** — Let admins import a list of recruiters from your platform and provision them into Indeed in a single guided flow, with per-user EmployerOrg assignment.
- **Access Reconciliation Dashboard** — Pull the full Indeed user list on a schedule and compare against your internal directory to surface orphaned accounts, mismatched externalIds, or inactive users still holding access.
- **Client Reassignment Workflows for Staffing** — When a recruiter is moved to a new client in your CRM, push a full profile overwrite to update their EmployerOrg memberships on Indeed in one action.
- **Audit-Logged Offboarding with Async Tracking** — Fire deletion requests to Indeed SCIM and record the initiation timestamp so compliance teams can track the up-to-30-minute deprovisioning window.

## FAQs

### What operations does Truto support for Indeed SCIM today?

Truto exposes list users, get a single user by ID, create user, update user by ID, and delete user by ID. These cover the full SCIM 2.0 user lifecycle needed for provisioning and deprovisioning.

### How do I link an Indeed user to my platform's internal user record?

Set the SCIM `externalId` attribute to your platform's internal user ID when creating the user. You can then filter list_all_indeed_scim_users by externalId to look up the mapping later without storing Indeed's encrypted account ID separately.

### Can I assign users to specific Indeed employer sub-accounts on creation?

Yes. Pass the `urn:ietf:params:scim:schemas:extension:indeed:2.0:EmployerOrg` extension in the create payload to place the user into the correct company, subsidiary, or client EmployerOrg at provisioning time.

### How do updates work — can I patch a single attribute?

Indeed SCIM requires a full body overwrite on update. Your integration must maintain the complete user state (emails, name, active status, EmployerOrg array) and send the entire payload via update_a_indeed_scim_user_by_id even when changing a single field.

### How fast does deletion take effect on Indeed's side?

The delete request is accepted immediately and removes the user from all EmployerOrgs, but the full deletion on Indeed's backend is asynchronous and can take up to 30 minutes to complete. Design offboarding workflows to log the initiation time for audit purposes.

### Does Truto handle authentication with Indeed SCIM?

Yes. Truto manages the SCIM bearer token exchange and credential storage so your end users complete a standard connect flow, and your app makes calls through Truto without handling Indeed tokens directly.

### Is there a Unified HRIS API I can use instead of the Indeed-specific tools?

Not yet for Indeed SCIM — today you interact with the passthrough tools listed above. If you need a unified schema across HRIS providers, reach out and Truto can prioritize it based on your use case.
