Skip to content
Surhires

Planned

Planned

Letting an assistant work the desk under your own permissions

A Model Context Protocol server that exposes the platform to an AI assistant as a signed-in user, inheriting that user's tenant, roles and field permissions.

The Surhires MCP server is planned, not shipping. When built, it will let an AI assistant search candidates, create submittals, send outreach, schedule interviews and read pipeline status through the Model Context Protocol, acting as a signed-in user with that user's tenant and field permissions, and writing every action to the same audit trail.

By Surhires Editorial · Published · Reviewed

This is planned work, not a shipping feature

Nothing described on this page exists in the product today. It is written in the future tense throughout because that is the honest tense, and it carries a planned badge for the same reason. If a competing evaluation puts an MCP server on your requirements list this quarter, Surhires does not meet it and you should score it accordingly.

The page exists because the design decisions behind an MCP server - particularly the permission model - are the part worth agreeing before code is written, and because a buyer evaluating a five-year system of record is entitled to see how a vendor intends to handle assistant access to a candidate database. It will move to a build status with an evidence line when the work starts.

What a Model Context Protocol server does

The Model Context Protocol is an open standard for connecting an AI assistant to a system it can act on. Rather than the assistant guessing at a REST API or scraping a screen, the system publishes a set of typed tools it will accept and a set of resources it will expose, and the assistant calls them.

For recruitment software that is a meaningful shape. A recruiter's day is a long sequence of small, well-defined actions across several records - find the candidates who match this brief, check who has not replied, book the second-stage panel, tell me which submittals are stale. Each of those is a tool call against structured data rather than a prompt against a document, which is why an MCP surface fits the work better than a chat box bolted onto a page.

It also puts the assistant outside the product. You would be able to work the pipeline from whichever assistant your firm already uses, rather than from a vendor's own copilot that only knows the vendor's own screens.

The intended tool surface

The planned tools cover the loop a recruiter runs most, and no more than that. A deliberately small surface is easier to reason about, easier to permission and easier to audit than one that exposes every endpoint the product has.

Each tool would be typed, with explicit parameters and a structured response, so an assistant cannot invent a field or partially construct a record. Write operations would be separated from read operations at the permission layer, so a firm can grant a sourcer read-only assistant access without granting the ability to send anything.

  • Search candidates: structured facets and resume text against the tenant's own database
  • Create a submittal: present a named candidate to a named requisition, with the required fields enforced
  • Send outreach: draft and send a message through an approved channel, subject to consent and suppression rules
  • Schedule an interview: propose panel slots, hold them and confirm against the calendar integration
  • Get pipeline status: stage counts, stale submittals, interviews booked and slipped for a requisition or a desk

The resources it would expose

Resources are the read-only context an assistant needs to make sensible tool calls. Without them the assistant guesses at your field names and stage vocabulary, which produces confident nonsense.

Three matter most. Open requisitions give the assistant the live briefs, their must-haves, salary bands and stages, so a search can be constructed against a real requirement rather than a paraphrase. The candidate schema describes the structured fields including your own custom fields and their types, so a filter is expressed in terms your database actually stores. The talent-pool schema describes the pools and saved searches a desk works, so a request to add someone to the contract Java pool resolves to a real list rather than creating a new one.

  • Open requisitions: live briefs with must-haves, nice-to-haves, salary band and interview stages
  • Candidate schema: structured fields and typed custom fields, with the values a filter may take
  • Talent-pool schema: existing pools and saved searches, so an assistant joins a list rather than inventing one

The permission model is the whole design

The server would act as a signed-in user. Not as a service account, not as an integration identity with broad rights, and not as an administrator that scopes itself down by convention. It authenticates as a person, and from that point it can do exactly what that person can do and nothing else.

Everything follows from that. It inherits the user's tenant, so a request cannot cross the tenant boundary any more than the user's own browser session could. It inherits the user's role, so a recruiter's assistant sees the recruiter's pipeline rather than the firm's. It inherits field-level permissions, so if compensation history is hidden from that user it is absent from the tool response rather than filtered in the assistant's reply. And it is bounded by the same rate limits and the same consent and suppression rules that govern the interface.

The failure mode this avoids is the standard one. An integration granted broad rights becomes a way around the permission model: a recruiter who cannot see a field in the product asks the assistant, and the assistant obliges. Scoping to the signed-in user closes that route at the source rather than patching it per endpoint.

  • Authenticates as a person, not as a service account or an admin identity
  • Inherits tenant, role and field-level permissions exactly as the interface applies them
  • Hidden fields are absent from the response, not filtered downstream by the assistant
  • Subject to the same rate limits, consent rules and suppression lists as the product

Demographic data is never exposed

Demographic data collected for equal-opportunity reporting is stored separately from the hiring record and is not visible to recruiters at all. That separation exists so the data cannot influence a decision it exists to measure, and an assistant interface is exactly where such a separation gets quietly undone.

So the rule is absolute rather than permissioned: no MCP tool returns demographic fields, no resource describes them in a schema, and no aggregate response can be constructed that reveals them for an individual. There is no administrative override that turns this on, because an override is a feature request waiting to be made and the whole value of the control is that it cannot be argued with.

Every action lands in the same audit trail

An action taken through the MCP server would be written to the same append-only audit log as the equivalent human action, with the same fields: actor, timestamp, reason code and the record touched. The entry names the assistant as the mechanism and the signed-in user as the actor, because accountability belongs to the person whose credentials were used.

There would be no separate, quieter log for assistant activity. That matters for the boring reason and the serious one. The boring one is that a desk lead reviewing a week's pipeline changes should see one list. The serious one is that a disposition audit, a client dispute or an equal-opportunity review has to reconstruct the decision, and a decision partly made by an assistant whose actions live in a different table is a decision that cannot be reconstructed.

What it will not do

It will not run unattended campaigns. Sending outreach through the tool would remain subject to consent capture, suppression lists and the messaging rules that apply to any send, and an assistant that could bulk-message a database without those checks is a compliance incident with a friendly interface.

It will not make hiring decisions. Disposition codes are a fixed list precisely so that a rejection is a recorded human decision, and moving a candidate to a rejected state is not on the planned tool surface. It will not expose billing or entity administration. It will not read another tenant's data under any configuration, because the boundary is enforced at the data layer rather than by the tool definition.

How this moves from planned to built

Before any of it ships, the permission model would be tested the way the tenant boundary is tested: adversarially, and by somebody who does not work here. The independent penetration test and tenant-boundary review being commissioned ahead of general availability sets the pattern, and an assistant surface deserves the same treatment because it is a new way to ask the same questions.

When work starts, this page changes to an in-build status and gains an evidence line naming the files that implement it, as every other feature page on this site does. Until then it stays planned, and no roadmap date is published here, because a date invented for a marketing page is a promise nobody has agreed to keep. If an MCP surface matters to your evaluation, say so during a demo and you will get a straight answer about sequencing rather than a slide.

What you get

Open protocol

Built on the Model Context Protocol so you can use the assistant your firm already runs.

Candidate search tool

Structured facets and resume text queried together against your own tenant's database.

Submittal tool

Present a named candidate to a named requisition with required fields enforced at write time.

Outreach tool

Draft and send through an approved channel, subject to consent capture and suppression lists.

Scheduling tool

Propose panel slots, hold them and confirm against the connected calendar integration.

Pipeline status tool

Stage counts, stale submittals and interviews booked or slipped for a requisition or a desk.

Requisition resource

Live briefs with must-haves, nice-to-haves, salary band and stages as read-only context.

Candidate schema resource

Structured and typed custom fields so a filter is expressed in terms your database stores.

Talent-pool resource

Existing pools and saved searches, so an assistant joins a list rather than inventing one.

Signed-in user identity

Authenticates as a person rather than as a service account or a broadly scoped integration.

Inherited tenant boundary

Cannot reach another tenant's data any more than that user's own browser session could.

Inherited field permissions

A field hidden from the user is absent from the response, not filtered by the assistant afterwards.

No demographic access

No tool returns equal-opportunity data and no administrative override enables it.

Shared audit trail

Every action written to the same append-only log as a human action, naming the user acted for.

Read and write separated

Assistant read access can be granted without granting the ability to send or create anything.

No unattended campaigns

Bulk sending outside consent and suppression rules is not on the planned surface, by design.

Questions recruiters ask

Can we use the MCP server today?

No. It is planned and not built, and this page carries a planned badge for that reason. Everything described here is written in the future tense. If an MCP surface is a requirement for your evaluation this quarter, Surhires does not meet it and you should score it that way rather than on intent.

Would an assistant be able to see data our recruiters cannot?

No. The server would authenticate as a signed-in person and inherit that user's tenant, role and field-level permissions. A field hidden from the user would be absent from the tool response rather than returned and filtered afterwards. That closes the usual route around a permission model, where a broadly scoped integration becomes a back door.

Could it expose demographic or equal-opportunity data?

No, and there is no setting that changes that. Demographic data is stored separately from the hiring record and is invisible to recruiters in the product. No MCP tool would return those fields, no resource would describe them, and no aggregate response could reveal them for an individual. There is deliberately no administrative override.

How would we see what an assistant did?

In the same audit log as everything else. Each action would be written append-only with the actor, timestamp, reason code and record touched, naming the assistant as the mechanism and the signed-in user as the actor. There would be no separate log for machine activity, because a decision that cannot be reconstructed in one trail cannot be audited.

Could it send outreach to our whole database automatically?

No. Sending through the tool would remain subject to consent capture, suppression lists and the same messaging rules that govern any send, and unattended bulk campaigns are not on the planned surface. An assistant able to message a database without those checks is a compliance incident with a pleasant interface, which is not a feature.

When will it ship?

No date is published, because a date invented for a marketing page is a promise nobody has agreed to keep. When work starts this page moves to an in-build status and gains an evidence line naming the implementing files, as every feature page here does. Ask during a demo and you will get a straight answer on sequencing.

Will the permission model be independently tested?

That is the intent. An independent third-party penetration test and tenant-boundary review are being commissioned ahead of general availability, and an assistant surface is a new way to ask the same boundary questions, so it warrants the same adversarial treatment. Results of commissioned testing are published as scope, date, firm, severity distribution and remediation status.

See it against your own reqs

Bring one live role and three resumes. In twenty minutes you will see the match scores, the shortlist and the placement invoice that comes out the other end.