Skip to main content

Agent skill

Give your coding agent the API, so it stops guessing.

If your team builds with Claude Code, Codex or Cursor, install this skill and the agent gets the whole API: the endpoints, the credential rules, the failure modes and the traps that are not obvious from a spec.

It is not a copy of these docs. It is written for a machine that is about to write an integration, so it leads with the rule, then the call, then what breaks.

Two skills, one per product

They are separate because the APIs are. Install the one that matches what you are building; install both only if you integrate both.

ProductSkillFor
Hiringexperthire-hiring-apiEvaluating people you might hire
Preparationexperthire-prep-apiHelping people prepare to be hired

Install

# Evaluating candidates
curl -sL https://docs.experthire.io/experthire-hiring-api-skill.zip -o /tmp/eh.zip
unzip -o /tmp/eh.zip -d ~/.claude/skills/

# Helping people prepare
curl -sL https://docs.experthire.io/experthire-prep-api-skill.zip -o /tmp/eh.zip
unzip -o /tmp/eh.zip -d ~/.claude/skills/

That gives every project on the machine the skill. For one repository, unzip into .claude/skills/ at its root and commit it, so the whole team gets the same answers.

Codex and Cursor read agent instructions from their own locations. The files are plain markdown with YAML frontmatter, so put SKILL.md and any references/ wherever your tool looks.

Verify it landed:

ls ~/.claude/skills/experthire-hiring-api
# SKILL.md

Install the right one. The two products have different keys, different hosts and different results, and a key from one is rejected by the other. An agent given the wrong skill will write a working integration against the wrong product.

Both tell the agent to start in sandbox

Each skill makes the environment an explicit decision before any code is written: default to the sandbox key, use live only when the user has asked for a real result. Sandbox costs no credits, contacts nobody, and never reaches a recruiter's pipeline, so an agent building an integration cannot leave real activity behind.

The base URL is stated too, along with the fact that it does not change between environments: the key decides that, not the host.

What is in it

Preparation

FileCovers
SKILL.mdWhen to use the API, the rules that matter, and which reference to read
references/authentication.mdThe four credential types, sandbox versus live, origin allowlisting, quotas
references/errors-and-conventions.mdEvery error code and what to do about it, pagination, retries, versioning
references/interviews.mdCandidates, the interview lifecycle, launch links, reports, transcripts
references/resumes.mdUpload, register, score against a role
references/coding-tests.mdCatalogue, the session lifecycle, running and submitting code
references/prompt-engineering.mdTasks, attempts, how directing an AI is scored
references/psychometric-test.mdThe instrument, submitting answers, reading a profile
references/question-bank.mdCompany questions, filters, the paging caveat
references/webhooks.mdRegistration, signature verification, the retry rules
references/account.mdKey rotation, branding, the staff list, activity counts

How to use it

Ask for what you want, in your own words:

Add Expert Hire interviews to our ATS. When a candidate reaches the
screen stage, create an interview and email them the link. Store the
score on the application when it comes back.

The agent loads the skill, reads only the references it needs, and writes the client. It should ask you which environment to target and where the key lives before it writes anything.

The skill tells your agent to start in sandbox. Let it. A sandbox key runs the same code as live, never records, never emails a candidate, and draws on a separate quota, so a wrong loop costs you nothing.

What it will refuse to do

It is written to say no to a few things, on purpose:

  • Put a secret key anywhere a browser can reach it.
  • Poll for completion instead of registering a webhook.
  • Retry a create call without an Idempotency-Key. The header is optional, so a blind retry after a timeout can create a second interview and spend a credit.
  • Book a coding interview round when the requirement is graded execution. The room does render an editor and the code is stored and read by the scorer, but nothing runs it against test cases. It books a coding test instead.

If your agent does any of those, it did not load the skill.

Keeping it current

The bundle is rebuilt whenever these docs deploy. Re-run the install command to pick up changes. The skill states its own limits, so an agent reading a stale copy fails by refusing to build something that now exists rather than by inventing something that never did.

Hiring

FileCovers
SKILL.mdWhen to use the API, the rules that matter, and which reference to read
references/authentication.mdThe three credentials, sandbox versus live, rotation, why a call was rejected
references/assessments.mdJobs, candidates, all four assessment types, round types and what they enable
references/clients.mdClient companies, client_id on a role, and why an agency needs it
references/resumes.mdThe upload flow, polling, and why a screening has no interview
references/coding-tests.mdThe catalogue, language slugs, the runtime, the four-signal rubric
references/prompt-engineering.mdTasks, attempts, and how directing an AI is scored
references/reports.mdThe envelope, the three arrays and their differing keys, the per-type result blocks, the sandbox sample
references/embedding.mdLaunch links, sessions, the room, the editor and whiteboard
references/webhooks.mdRegistration, signature verification, and what to do when nothing arrives
references/errors-and-conventions.mdEvery error code, pagination, idempotency, rate limits, versioning
references/account.mdKey rotation, branding, the team list, the hiring funnel