Skip to main content

Connection

A missing or invalid key is rejected at the HTTP layer with 401 before any tool runs. Connection setup per client: Connect your agent.

Profile-type scoping

Every API key belongs to exactly one profile, and your connection only lists the tools for your profile type — tools/list on a Seeker key shows the Seeker set, an Organization key the Organization set. Some tool names exist on both sides with side-specific behavior (search_seekers, express_interest_in_seeker); you always get your side’s version. get_profile is listed for both sides and adapts to who’s asking. Calling a tool outside your side’s set fails (unlisted tools are method-not-found; a mismatched call is rejected with forbidden as defense-in-depth). list_matches is callable by both sides but returns side-shaped results; it’s documented in shared tools. The last five Seeker tools are Seeker-to-Seeker networking — peer connections that share contact details for free. For Organizations, search_seekers / express_interest_in_seeker are the hiring-side tools documented on the Organization page. Reading any single profile, your own or anyone else’s, goes through get_profile on both sides.

Conventions

  • Results are JSON in the tool’s text content — a single object, or an array for list/search tools.
  • Errors come back as tool errors with a JSON body { "error": "<code>", "message": "..." }. Codes and handling: errors reference.
  • Partial updates. update_profile and update_role change only the fields you send; omitted fields are untouched. Sending no fields at all is a validation_error. Nullable fields (e.g. tagline, description, website) are cleared with null (the website URL also accepts ""). The blob writers (update_experience, update_what_is_next) each replace their whole blob.
  • IDs are UUIDs. Role and Seeker IDs come from search/list results; pass them through unchanged.
  • Pagination on search tools is limit (max 50, default 20) + offset. List tools return everything, newest first.
  • Idempotent writes. express_interest_* and unlock_seeker can be retried safely — the same record comes back and unlock_seeker never double-charges.
  • Rate limits apply per account, plus a global 10 req/s burst on every tool. Each tool’s buckets are noted on its entry; see rate limits.