Skip to main content
Calling these with an Organization key returns forbidden. See also the shared tools (get_profile, update_profile, list_matches, get_rate_limits, ping).

search_roles

Search open roles with a freeform keyword query, matched across the role name, description, what-we’re-looking-for blob, and Organization name. Omit query to browse the most recently posted roles.
string
Freeform keywords. Case-insensitive substring match over the role blobs.
integer
default:"20"
1–50 per page.
integer
default:"0"
Pagination offset.
Returns an array of role objects with full details plus Organization info:
Rate limits: search (100/hour).

get_role

Full details of one open role.
string (uuid)
required
From search results or a role page URL.
Returns the same shape as a search_roles item, or not_found if the role is closed, expired, or doesn’t exist. Rate limits: read (200/hour).

update_experience

Write your freeform experience blob — education, professional history, and skillset as prose. Replaces the whole blob. See structuring a profile.
string | null
required
≤6,000 chars. Shown to Organizations and on your public profile at /s/[handle].
Returns the stored content (profile_id, experience, what_is_next, updated_at). Rate limits: seeker_write (20/day, shared with update_what_is_next).

update_what_is_next

Write your freeform “what’s next” blob — the roles and Organizations you’d want to work with next. Replaces the whole blob.
string | null
required
≤6,000 chars. Visible to every Organization and other Seekers over MCP (not just your matches); never on your public web page. Put compensation expectations and hard constraints here rather than in public fields — off the web, but not private from members.
Returns the stored content (profile_id, experience, what_is_next, updated_at). Rate limits: seeker_write (20/day, shared with update_experience).

express_interest_in_role

Express interest in an open role. Idempotent — re-calling returns the same record.
string (uuid)
required
Must be an open role, else not_found.
If the Organization has already expressed interest in you for this role, this call completes a match. Rate limits: express_interest_in_role (30/day).

withdraw_interest_in_role

Withdraw your interest in a role. If the Organization had expressed interest back, the match dissolves for both of you; the Organization’s interest is untouched, so re-expressing interest re-forms the match. Returns not_found if you had no interest in that role.
string (uuid)
required
Rate limits: withdraw_interest_in_role (30/day).

list_interested_organizations

Organizations that have expressed interest in you, with full role and Organization details — whether or not you’ve reciprocated. Only interests on currently open roles. Newest first. No inputs.
Reciprocating with express_interest_in_role on that role_id creates a match. Rate limits: list (60/hour).

list_role_interests

The roles you have expressed interest in — your outbound pipeline — with full role and Organization details. Each entry carries a status of matched (the Organization has expressed interest back) or pending. Only interests on currently open roles. Newest first. No inputs.
Use this to review the roles you’ve already pursued. Rate limits: list (60/hour).

Networking (Seeker ↔ Seeker)

Connect with other Seekers. A mutual connection shares both contact_emails for free — no credits, no unlock. See connections.

search_seekers

Search other Seekers with a freeform keyword query, matched across name, tagline, experience, and what’s-next blobs. contact_email is never returned here — it’s shared only on a mutual connection. Omit query to browse the most recently joined Seekers.
string
Freeform keywords.
integer
default:"20"
1–50 per page.
integer
default:"0"
Pagination offset.
Rate limits: search (100/hour).

express_interest_in_seeker

Express interest in connecting with another Seeker, by seeker_id or @handle. When mutual, a connection forms and you both share contact details for free. Idempotent. You can’t connect with yourself.
string (uuid)
Provide exactly one of seeker_id or handle.
string
The Seeker’s public @handle, with or without the leading @. Provide exactly one of seeker_id or handle.
Rate limits: express_interest_in_seeker (30/day).

withdraw_interest_in_seeker

Withdraw your interest in connecting with another Seeker, by seeker_id or @handle. If you were already connected, the connection dissolves for both of you and you stop sharing contact details. The other Seeker’s interest is untouched, so re-expressing interest reconnects you immediately. Returns not_found if you had no outstanding interest in that Seeker.
string (uuid)
Provide exactly one of seeker_id or handle.
string
The Seeker’s public @handle, with or without the leading @. Provide exactly one of seeker_id or handle.
Rate limits: withdraw_interest_in_seeker (30/day).

list_seekers_interested_in_me

Seekers who have expressed interest in connecting with you, with their full profiles (minus contact_email) — whether or not mutual yet. Newest first. No inputs.
Rate limits: list (60/hour).

list_connection_interests

Seekers you have expressed interest in connecting with — your outbound side — with their full profiles (minus contact_email). Each entry carries a status of connected (they’ve expressed interest back, so you’re mutually connected — use list_connections for their contact details) or pending. Newest first. No inputs.
Review this to see who you’ve already reached out to. Rate limits: list (60/hour).

list_connections

Your mutual connections, each with the connected Seeker’s contact_email (shared for free on connection). Newest first. No inputs.
Rate limits: list (60/hour).