# SmartRecruiters MCP connector

The SmartRecruiters connector lets Claude, ChatGPT, Cursor, and the Elaichi Agent read jobs, candidates, interviews, offers, and screening answers from SmartRecruiters, and update candidate status, with every call running as the signed-in person and logged.

Source: https://elaichi.ai/connectors/smartrecruiters/

## Facts

| | |
| --- | --- |
| Application | SmartRecruiters |
| Category | ATS |
| AI tools | 49 |
| Authentication | Connects with an API key |
| Bring your own OAuth app | No |
| MCP endpoint | https://api.elaichi.ai/mcp |
| Works with | Claude, ChatGPT, Cursor, any MCP client, and the Elaichi Agent |
| Tools advertised by name | No. Connected tools are never listed one by one, however few there are. The endpoint advertises `search_tools` and `execute_tool` instead |

## What you can ask once SmartRecruiters is connected

- Which candidates for the Account Executive job are still in screening?
- Summarize screening answers for candidates in the Sales Engineer pipeline
- List this week's interviews and who sits on each hiring team

## Connect SmartRecruiters in Elaichi

This happens once for the organization, before any client is involved.

1. Open Connections, choose Add connection, and pick SmartRecruiters.
2. Optionally set Share with, then press Connect.
3. Paste a SmartRecruiters API key. One person generates a token in SmartRecruiters and pastes it once. Everyone else works through Share with, and never sees it.

Credentials are vaulted and nobody, including the AI, reads them back. The connection becomes a toolbox immediately, so you can curate which SmartRecruiters tools are exposed, rename them, or freeze arguments before anyone points a client at it.

## SmartRecruiters MCP connector for Claude

Endpoint: https://api.elaichi.ai/mcp

1. Open Customize, then Connectors.
2. Press Add.
3. Name it, paste the MCP server URL, then Continue.
4. Sign in and approve.

On Team and Enterprise, an Owner adds it once. Everyone else turns it on for themselves.

## SmartRecruiters MCP connector for ChatGPT

Endpoint: https://api.elaichi.ai/mcp

1. Open Plugins, then press the + button.
2. Name it and paste the endpoint into Server URL.
3. Leave Authentication on OAuth, then tick the risk acknowledgement.
4. Press Create, then sign in and approve.

Works on the web today. The plugin directory lives at chatgpt.com/plugins.

## SmartRecruiters MCP connector for Cursor

Endpoint: https://api.elaichi.ai/mcp

1. Open `~/.cursor/mcp.json`.
2. Add the endpoint under `mcpServers`.
3. Reload Cursor, then sign in and approve.

Set up per machine, so repeat it on each computer you work from.

## Connect SmartRecruiters to any MCP client

Endpoint: https://api.elaichi.ai/mcp

1. Add the endpoint as a remote MCP server.
2. Sign in and approve.

The Elaichi Agent already has these tools, with nothing to set up.

## What the consent screen decides

Every scope the client asks for starts ticked except "Delete data and remove access", which you tick yourself. Calling a SmartRecruiters tool needs "Run your connected tools". Over MCP there is no trusted place to confirm a write in the moment, so the consent screen is the standing approval rather than a formality. Think hard before granting Delete, which reaches into connected apps and cannot be undone.

## What teams do with SmartRecruiters through Elaichi

### Review a candidate before the screening call

Recruiting. Ask for a candidate's application, screening answers, and attached resume in one go, so the recruiter joins the call already knowing what was submitted.

### Move candidates forward after a debrief

Recruiting. After the hiring team agrees, ask the agent to update each candidate's status in SmartRecruiters and confirm who is now at which stage.

### See where every open job stands

Hiring managers. List the jobs you own, who is on each hiring team, how many candidates sit at each stage, and which postings are live right now.

### Check this week's interview schedule

Coordinators. Pull every interview booked across SmartRecruiters for the week, grouped by job, so no candidate is left waiting on a confirmation.

### Confirm candidate consent before sharing details

HR. Check which candidates have given consent in SmartRecruiters and which have not, before a profile is forwarded to anyone outside the hiring team.

### Track job approvals and open positions

Leadership. Ask which jobs are waiting on approval, which positions are still unfilled by department, and how each job's status has changed over time.

## Elaichi vs Zapier MCP vs Composio for SmartRecruiters

All three can connect SmartRecruiters to an AI assistant, and all three have admin controls. They differ in where access lives and how you pay.

| What to check | Elaichi | Zapier MCP | Composio |
| --- | --- | --- | --- |
| Where the AI connects | One address for the whole organization. Endpoint: https://api.elaichi.ai/mcp | A server per member, created at sign-in. | An MCP endpoint per team, or an SDK. |
| Control over SmartRecruiters tools | Allow or restrict single SmartRecruiters tools, per role or user. | App and action restrictions on the account. | Role permissions, down to the action. |
| Record of calls | One audit entry per SmartRecruiters call. | A History tab of tool calls. | A log of every tool call. |
| Single sign-on | SAML or OIDC, plus SCIM, on Gold. | SAML on Enterprise. | SAML and OIDC on Enterprise. |
| Price | $15 per user per month. | 2 tasks per successful call. | Billed per tool call. |

Sources: Zapier MCP [docs](https://docs.zapier.com/mcp/get-started/quickstart), [security](https://docs.zapier.com/mcp/manage/security), [usage](https://docs.zapier.com/mcp/features/usage); Composio [docs](https://docs.composio.dev/docs/composio-connect), [gateway](https://composio.dev/mcp-gateway), [enterprise](https://composio.dev/enterprise), [pricing](https://composio.dev/pricing). Checked September 2026.

Longer take: [Zapier MCP alternative](/blog/zapier-mcp-alternative/) and [when you don't need an MCP gateway](/blog/when-you-dont-need-an-mcp-gateway/).

## Frequently asked questions

### How do I connect SmartRecruiters to Claude?

Connect SmartRecruiters in Elaichi by pasting the API key from your SmartRecruiters admin settings, then in Claude go to Customize, then Connectors, then Add, and paste https://api.elaichi.ai/mcp. There is no OAuth application to register and no client ID or secret to generate. Once Claude has signed in to Elaichi, your SmartRecruiters jobs, candidates, and interviews are available in the conversation.

### Does SmartRecruiters work with ChatGPT and Cursor as well as Claude?

Yes. The SmartRecruiters connection in Elaichi is exposed through one endpoint, https://api.elaichi.ai/mcp, and Claude, ChatGPT, Cursor, any other MCP client, and the Elaichi Agent all connect to that same address. You connect SmartRecruiters once and every client you use picks it up.

### What can an AI agent actually do with my SmartRecruiters data?

An agent can list and look up jobs, candidates, interviews, job ads, postings, and departments in SmartRecruiters, read a candidate's application, screening answers, offers, consents, and attachments, and check a job's hiring team and approval history. It can also move a candidate to a new status. Short, specific asks such as "candidates in screening for the Account Executive job" work better than long paragraphs.

### Does connecting SmartRecruiters give the AI access to every candidate and job?

The AI sees exactly what the SmartRecruiters account that was connected can see, and nothing beyond it. Elaichi can narrow that further, for example limiting a team to reading candidates without changing their status, but it never widens what SmartRecruiters itself allows.

### Can my recruiting team share one SmartRecruiters connection?

Yes. One person connects SmartRecruiters in Elaichi and shares it with a team, and nobody else ever handles the API key. Each teammate still signs in to Elaichi as themselves, so the audit log records which person looked up a candidate or changed a status.

### Can I stop an agent from changing candidate statuses in SmartRecruiters?

Yes. In Elaichi, restrictions on the SmartRecruiters connection apply per action, so you can allow reading jobs and candidates while blocking status updates. A restricted action is left out of the AI client's tool list entirely, so it cannot be called no matter how the prompt is worded.

### What happens to a SmartRecruiters connection when someone leaves?

Offboarding the person in Elaichi ends their access to SmartRecruiters through every AI client at once. A SmartRecruiters connection shared with a team keeps working for everyone else on it. If you want it gone altogether, disconnecting SmartRecruiters once in Elaichi removes it from Claude, ChatGPT, Cursor, and every other client.

### Does the SmartRecruiters MCP connector work with Gemini, Codex, Claude Code or other MCP clients?

Yes. SmartRecruiters is reached over the same MCP endpoint every client uses, so anything that speaks MCP can call it — Gemini, Codex, Claude Code, Windsurf, Cline, Zed and OpenCode among them — alongside Claude, ChatGPT, Cursor, and the Elaichi Agent. The tools on offer and the access behind them are identical whichever client asks. Only the setup screen differs.

### Is Elaichi an alternative to Zapier MCP for SmartRecruiters?

Yes. Both let Claude, ChatGPT or Cursor use SmartRecruiters. Zapier MCP fits a team that already automates in Zapier, since each person signs in and acts as themselves in that account. Elaichi fits when IT wants one address for the whole company, per-tool rules by role, and a record of every SmartRecruiters call.

### How is Elaichi different from Composio for SmartRecruiters?

Composio gives AI agents tools and sign-in handling across 1,000+ apps, for developers building agents or people using an assistant, billed per tool call. Elaichi gives a company's own people governed access to SmartRecruiters: one address, restrictions per role or user, and $15 per user per month. Both have role permissions and a log of every call.

## All 49 SmartRecruiters tools

Every tool below is callable through https://api.elaichi.ai/mcp once SmartRecruiters is connected, subject to the toolbox it is in and the restrictions on the caller.

- **List all SmartRecruiters jobs** (List). 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 SmartRecruiters job by ID** (Get). 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.
- **SmartRecruiters jobs approval** (Action). Get the latest approval request for a SmartRecruiters job. Returns: positions. Required: job_id. The job must have an existing approval request.
- **SmartRecruiters jobs hiring team** (Action). 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.
- **SmartRecruiters jobs job ads** (Action). 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.
- **SmartRecruiters jobs job ad postings** (Action). 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.
- **SmartRecruiters jobs positions** (Action). List positions for a job in SmartRecruiters. Returns each position record with its id, type, category, name, label, and records. Required: job_id.
- **SmartRecruiters jobs status history** (Action). 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 SmartRecruiters candidates** (List). 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 SmartRecruiters candidate by ID** (Get). Get the full details of a SmartRecruiters candidate by id. Returns the candidate record including id, firstName, lastName, email, and updatedOn. Required: id.
- **SmartRecruiters candidates list attachments** (List). 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.
- **SmartRecruiters candidates download attachment** (Download). Download a SmartRecruiters candidate's attachment file by id. Returns the raw attachment file content (binary), not a JSON object. Required: attachment_id.
- **SmartRecruiters candidates get application** (Get). 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.
- **SmartRecruiters candidates update status** (Update). 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).
- **SmartRecruiters candidates consent** (Action). 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.
- **SmartRecruiters candidates consents** (Action). 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.
- **SmartRecruiters candidates job status history** (Action). 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.
- **SmartRecruiters candidates job properties** (Action). 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.
- **SmartRecruiters candidates screening answers** (Action). 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.
- **SmartRecruiters candidates job offers** (Action). 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 SmartRecruiters company** (List). Get company information. Returns: identifier, name, location, website, industry, logo, spamStatus.
- **List all SmartRecruiters departments** (List). List SmartRecruiters departments. Returns the department list with each department's id and label.
- **List all SmartRecruiters interviews** (List). List interviews for a SmartRecruiters application. Returns the collection of interviews; each interview includes its id. Required: applicationId.
- **List all SmartRecruiters job publications** (List). 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 SmartRecruiters messages** (List). 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 SmartRecruiters offers** (List). 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 SmartRecruiters reviews** (List). 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 SmartRecruiters users** (List). List users of your SmartRecruiters company. Returns user records with id, firstName, lastName, email, active, systemRole, updatedOn, language, and ssoLoginMode. Max 100 per page.
- **SmartRecruiters users access groups** (Action). List access groups configured in your SmartRecruiters company. Returns access-group records with: id, name.
- **SmartRecruiters users system roles** (Action). List system roles available in your SmartRecruiters company. Returns system-role records with: id.
- **Get single SmartRecruiters user by ID** (Get). 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 SmartRecruiters user** (Create). 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 SmartRecruiters candidate properties** (List). 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 SmartRecruiters candidate property values** (List). 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 SmartRecruiters hiring processes** (List). List the hiring processes configured in SmartRecruiters. Returns the collection of hiring process records, each including its id.
- **List all SmartRecruiters job properties** (List). 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 SmartRecruiters job property dependents** (List). 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 SmartRecruiters job property values** (List). 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 SmartRecruiters job property dependent values** (List). 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 SmartRecruiters offer properties** (List). 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 SmartRecruiters reject reasons** (List). 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 SmartRecruiters sources** (List). 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 SmartRecruiters candidate sources** (List). 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 SmartRecruiters withdrawal reasons** (List). 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 SmartRecruiters interview types** (List). 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 SmartRecruiters job application by ID** (Get). 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 SmartRecruiters job postings** (List). 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 SmartRecruiters job posting by ID** (Get). 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 SmartRecruiters me** (List). 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.
