Tools
list_assigned_outreach
List and deterministically page outreach assigned to the authenticated admitted operator. Canonical order is the immutable outreach work-item order key ascending; readiness, status, and updated time are returned or filterable but never change order. Supports campaign, lifecycle/readiness, status, and text filters. Returns one stable campaign-person outreach identity with every current assigned channel and variation; it never exposes another operator's work.
outreach / read-only
Input schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"campaign_id": {
"type": "string",
"minLength": 1
},
"status_scope": {
"type": "string",
"enum": [
"open",
"sent",
"all"
]
},
"work_filter": {
"type": "string",
"enum": [
"open_work",
"ready_mine",
"needs_owner",
"needs_contact",
"needs_draft",
"ready_to_send",
"blocked",
"sent",
"follow_up"
]
},
"search_query": {
"type": "string",
"minLength": 1
},
"cursor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"additionalProperties": false
}
Output schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"outreach": {
"type": "array",
"items": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"is_done": {
"type": "boolean"
},
"continue_cursor": {
"type": "string"
}
},
"required": [
"outreach",
"is_done",
"continue_cursor"
],
"additionalProperties": {}
}
read_outreach
Read one assigned outreach item with person and campaign context, every assigned channel and variation, exact editable copy, blockers, prior-touch summary, exact prepared identity/snapshot, an honest first page of immutable accepted send evidence with has_more/continue_cursor, and structured native-launch values. Continue complete evidence history with list_outreach_send_evidence. Evidence is assignment-scoped and contains no controlling-client secrets. Returns no complete native URL and authorizes no send.
outreach / read-only
Input schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"assignment_id": {
"type": "string",
"minLength": 1
}
},
"required": [
"assignment_id"
],
"additionalProperties": false
}
Output schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"outreach": {
"type": "object",
"properties": {},
"additionalProperties": {}
}
},
"required": [
"outreach"
],
"additionalProperties": {}
}
list_outreach_send_evidence
Cursor-page the complete immutable accepted send-evidence audit for one assigned outreach channel. The cursor is bound to the authenticated operator and assignment. Returns provider-neutral proof identities and exact prepared snapshots without raw confirmations, tokens, or operator evidence.
outreach / read-only
Input schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"assignment_id": {
"type": "string",
"minLength": 1
},
"cursor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"required": [
"assignment_id"
],
"additionalProperties": false
}
Output schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"evidence": {
"type": "array",
"items": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"is_done": {
"type": "boolean"
},
"continue_cursor": {
"type": "string"
}
},
"required": [
"evidence",
"is_done",
"continue_cursor"
],
"additionalProperties": {}
}
prepare_outreach
Prepare the exact current draft revision or saved recipient override for immediate native launch through the canonical preparation contract. Gmail issues an exact attempt-bound correlation BCC only here and returns structured To, Subject, Body, BCC, and expected-account metadata; clients construct the native URL locally. LinkedIn remains copy/open only with no field automation, state inspection, or Send. This does not authorize or record a send.
outreach
Input schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"assignment_id": {
"type": "string",
"minLength": 1
},
"draft_revision_id": {
"type": "string",
"minLength": 1
},
"recipient_override_revision_id": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "null"
}
]
}
},
"required": [
"assignment_id",
"draft_revision_id"
],
"additionalProperties": false
}
Output schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"prepared": {
"type": "object",
"properties": {
"assignment": {
"type": "object",
"properties": {},
"additionalProperties": {}
},
"prepared_snapshot": {
"type": "object",
"properties": {},
"additionalProperties": {}
},
"launch": {
"anyOf": [
{
"type": "object",
"properties": {
"surface": {
"type": "string",
"const": "gmail_compose"
},
"ready": {
"type": "boolean",
"const": true
},
"values": {
"type": "object",
"properties": {
"to": {
"type": "string"
},
"subject": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"body": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"tracking_bcc": {
"type": "object",
"properties": {
"required": {
"type": "boolean",
"const": true
},
"correlation_address": {
"type": "string"
},
"status": {
"type": "string",
"const": "issued_for_exact_prepared_attempt"
}
},
"required": [
"required",
"correlation_address",
"status"
],
"additionalProperties": false
}
},
"required": [
"to",
"subject",
"body",
"tracking_bcc"
],
"additionalProperties": false
},
"operational": {
"type": "object",
"properties": {
"provider": {
"type": "string",
"const": "gmail"
},
"expected_mailbox": {
"type": "string"
},
"expected_account": {
"type": "string"
},
"client_constructs_native_url": {
"type": "boolean",
"const": true
},
"manual_mode_default": {
"type": "boolean",
"const": true
}
},
"required": [
"provider",
"expected_mailbox",
"expected_account",
"client_constructs_native_url",
"manual_mode_default"
],
"additionalProperties": false
},
"stop_before": {
"type": "string",
"const": "send"
}
},
"required": [
"surface",
"ready",
"values",
"operational",
"stop_before"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"surface": {
"type": "string",
"enum": [
"linkedin_message",
"linkedin_invitation"
]
}
},
"required": [
"surface"
],
"additionalProperties": {}
}
]
}
},
"required": [
"assignment",
"prepared_snapshot",
"launch"
],
"additionalProperties": {}
}
},
"required": [
"prepared"
],
"additionalProperties": {}
}
get_gmail_agent_send_preference
Read the authenticated operator's current Gmail-only agent-send preference and immutable audit/revocation history. Manual Gmail remains available and is the default. A preference is never action-time send authorization.
outreach / read-only
Input schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 200
}
},
"additionalProperties": false
}
Output schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"preference": {
"type": "object",
"properties": {},
"additionalProperties": {}
},
"history": {
"type": "array",
"items": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
}
},
"required": [
"preference",
"history"
],
"additionalProperties": {}
}
set_gmail_agent_send_preference
Enable or revoke the authenticated operator's durable Gmail-only agent-send preference with immutable audit history. Enabling requires confirmation ENABLE_GMAIL_AGENT_SEND; revoking requires REVOKE_GMAIL_AGENT_SEND. This preference alone never authorizes a send.
outreach
Input schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"enabled": {
"type": "boolean"
},
"confirmation": {
"type": "string"
},
"reason": {
"type": "string",
"minLength": 1
}
},
"required": [
"enabled",
"confirmation"
],
"additionalProperties": false
}
Output schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"preference": {
"type": "object",
"properties": {},
"additionalProperties": {}
}
},
"required": [
"preference"
],
"additionalProperties": {}
}
mark_outreach_sent
Explicitly record observed native-send success through the canonical sent-state contract. Opening or filling a composer is never proof. Manual evidence requires CONFIRM_NATIVE_SEND_OBSERVED. Agent-confirmed evidence is Gmail-only and additionally requires the exact current enabled preference revision plus CONFIRM_GMAIL_AGENT_SEND_AFTER_OBSERVED_SUCCESS. LinkedIn field automation, state inspection, and Send are prohibited.
outreach
Input schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"assignment_id": {
"type": "string",
"minLength": 1
},
"outreach_attempt_id": {
"type": "string",
"minLength": 1
},
"draft_revision_id": {
"type": "string",
"minLength": 1
},
"recipient_override_revision_id": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "null"
}
]
},
"expected_state_version": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"evidence_id": {
"type": "string",
"minLength": 1
},
"send_proof_source": {
"type": "string",
"enum": [
"manual",
"agent_confirmed"
]
},
"subject_snapshot": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"body_snapshot": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"note_snapshot": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"native_send_observed": {
"type": "boolean",
"const": true
},
"action_time_confirmation": {
"type": "string"
},
"preference_revision_id": {
"type": "string",
"minLength": 1
},
"operator_evidence": {
"type": "string",
"minLength": 12
}
},
"required": [
"assignment_id",
"outreach_attempt_id",
"draft_revision_id",
"expected_state_version",
"evidence_id",
"send_proof_source",
"subject_snapshot",
"body_snapshot",
"note_snapshot",
"native_send_observed",
"action_time_confirmation",
"operator_evidence"
],
"additionalProperties": false
}
Output schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"result": {
"type": "object",
"properties": {},
"additionalProperties": {}
},
"outreach": {
"type": "object",
"properties": {},
"additionalProperties": {}
}
},
"required": [
"result",
"outreach"
],
"additionalProperties": {}
}
get_outreach_recipient_override
Read the exact current per-recipient outreach override, persisted conflict, and stale state for one assignment. Authorization is enforced against the assigned operator.
outreach / read-only
Input schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"assignment_id": {
"type": "string",
"minLength": 1
}
},
"required": [
"assignment_id"
],
"additionalProperties": false
}
Output schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"override_state": {
"type": "object",
"properties": {},
"additionalProperties": {}
}
},
"required": [
"override_state"
],
"additionalProperties": {}
}
edit_outreach_recipient_override
Create a new immutable recipient override revision for an assigned deterministic outreach message. Requires exact base campaign/draft identity and optimistic-concurrency identity; returns an explicit persisted conflict instead of overwriting concurrent work. Read back with get_outreach_recipient_override.
outreach
Input schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"assignment_id": {
"type": "string",
"minLength": 1
},
"base_campaign_revision": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"deterministic_draft_revision_id": {
"type": "string",
"minLength": 1
},
"expected_override_revision_id": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "null"
}
]
},
"expected_concurrency_token": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "null"
}
]
},
"subject": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"body": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"note": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"assignment_id",
"base_campaign_revision",
"deterministic_draft_revision_id",
"expected_override_revision_id",
"expected_concurrency_token"
],
"additionalProperties": false
}
Output schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"result": {
"type": "object",
"properties": {},
"additionalProperties": {}
},
"override_state": {
"type": "object",
"properties": {},
"additionalProperties": {}
}
},
"required": [
"result",
"override_state"
],
"additionalProperties": {}
}
create_search
Use only to discover new people or companies outside the current SCRYU records. Do not use this method to retrieve, filter, count, or summarize records already saved in SCRYU. This provider-neutral discovery path may create or enrich canonical records through search/reconcile work. People searches require a structured person name and accept optional company, title, location, and profile URL hints; they execute exact-person discovery. Company and mixed searches require query. Omitted count defaults to 10 for those modes. It does not expose raw provider knobs.
searches
Input schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"label": {
"type": "string",
"minLength": 1
},
"query": {
"type": "string",
"minLength": 1
},
"count": {
"type": "integer",
"minimum": 1,
"maximum": 100
},
"target_mode": {
"type": "string",
"enum": [
"people_and_companies",
"people",
"companies"
]
},
"person": {
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1
},
"company": {
"type": "string",
"minLength": 1
},
"title": {
"type": "string",
"minLength": 1
},
"location": {
"type": "string",
"minLength": 1
},
"profile_url": {
"type": "string",
"format": "uri"
}
},
"required": [
"name"
],
"additionalProperties": false
}
},
"required": [
"label"
],
"additionalProperties": false
}
Output schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"search": {
"type": "object",
"properties": {
"search_id": {
"type": "string"
},
"family_key": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"execution_kind": {
"type": "string",
"enum": [
"discovery",
"exact_person"
]
},
"exact_person_request": {
"anyOf": [
{
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
{
"type": "null"
}
]
},
"exact_person_outcome": {
"anyOf": [
{
"type": "string",
"enum": [
"matched",
"not_found",
"ambiguous",
"conflict",
"provider_error"
]
},
{
"type": "null"
}
]
},
"label": {
"type": "string"
},
"query": {
"type": "string"
},
"requested_count": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"target_mode": {
"type": "string",
"enum": [
"people_and_companies",
"people",
"companies"
]
},
"status": {
"type": "string"
},
"display_status": {
"type": "string"
},
"person_count": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"company_count": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"match_count": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"evidence_reference_count": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"effect_summary": {
"anyOf": [
{
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
{
"type": "null"
}
]
},
"last_activity_at": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"last_event_label": {
"type": "string"
},
"processing_error": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"created_at": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"started_at": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"completed_at": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
}
},
"required": [
"search_id",
"label",
"query",
"target_mode",
"status",
"person_count",
"company_count",
"match_count",
"created_at",
"completed_at"
],
"additionalProperties": {}
}
},
"required": [
"search"
],
"additionalProperties": {}
}
list_searches
List recent SCRYU search runs with target mode, lifecycle status, result counts, and latest activity. Read-only.
searches / read-only
Input schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"additionalProperties": false
}
Output schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"searches": {
"type": "array",
"items": {
"type": "object",
"properties": {
"search_id": {
"type": "string"
},
"family_key": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"execution_kind": {
"type": "string",
"enum": [
"discovery",
"exact_person"
]
},
"exact_person_request": {
"anyOf": [
{
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
{
"type": "null"
}
]
},
"exact_person_outcome": {
"anyOf": [
{
"type": "string",
"enum": [
"matched",
"not_found",
"ambiguous",
"conflict",
"provider_error"
]
},
{
"type": "null"
}
]
},
"label": {
"type": "string"
},
"query": {
"type": "string"
},
"requested_count": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"target_mode": {
"type": "string",
"enum": [
"people_and_companies",
"people",
"companies"
]
},
"status": {
"type": "string"
},
"display_status": {
"type": "string"
},
"person_count": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"company_count": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"match_count": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"evidence_reference_count": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"effect_summary": {
"anyOf": [
{
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
{
"type": "null"
}
]
},
"last_activity_at": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"last_event_label": {
"type": "string"
},
"processing_error": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"created_at": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"started_at": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"completed_at": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
}
},
"required": [
"search_id",
"label",
"query",
"target_mode",
"status",
"person_count",
"company_count",
"match_count",
"created_at",
"completed_at"
],
"additionalProperties": {}
}
}
},
"required": [
"searches"
],
"additionalProperties": {}
}
get_search
Load the structured detail readback for a SCRYU search run, including target mode, status, people, companies, matches, activity, and summary counts. Read-only.
searches / read-only
Input schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"search_id": {
"type": "string",
"minLength": 1
},
"match_cursor": {
"type": "string",
"minLength": 1
}
},
"required": [
"search_id"
],
"additionalProperties": false
}
Output schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"search": {
"type": "object",
"properties": {
"search_id": {
"type": "string"
},
"family_key": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"execution_kind": {
"type": "string",
"enum": [
"discovery",
"exact_person"
]
},
"exact_person_request": {
"anyOf": [
{
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
{
"type": "null"
}
]
},
"exact_person_outcome": {
"anyOf": [
{
"type": "string",
"enum": [
"matched",
"not_found",
"ambiguous",
"conflict",
"provider_error"
]
},
{
"type": "null"
}
]
},
"label": {
"type": "string"
},
"query": {
"type": "string"
},
"requested_count": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"target_mode": {
"type": "string",
"enum": [
"people_and_companies",
"people",
"companies"
]
},
"status": {
"type": "string"
},
"display_status": {
"type": "string"
},
"last_activity_at": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"last_event_label": {
"type": "string"
},
"processing_error": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"created_at": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"started_at": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"completed_at": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"people": {
"type": "array",
"items": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"companies": {
"type": "array",
"items": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"matches": {
"type": "array",
"items": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"activity": {
"type": "array",
"items": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"summary": {
"type": "object",
"properties": {
"match_count": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"evaluation_count": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"evidence_reference_count": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"page": {
"type": "object",
"properties": {
"match_count": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"person_count": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"company_count": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"effect_summary": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"coverage": {
"type": "object",
"properties": {
"people": {
"type": "object",
"properties": {
"rich": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"partial": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"skeleton": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"needs_refresh": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"rich",
"partial",
"skeleton",
"needs_refresh"
],
"additionalProperties": {}
},
"companies": {
"type": "object",
"properties": {
"rich": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"partial": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"skeleton": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"needs_refresh": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"rich",
"partial",
"skeleton",
"needs_refresh"
],
"additionalProperties": {}
}
},
"required": [
"people",
"companies"
],
"additionalProperties": {}
}
},
"required": [
"match_count",
"person_count",
"company_count",
"effect_summary",
"coverage"
],
"additionalProperties": {}
},
"company_refresh": {
"type": "object",
"properties": {
"requested_at": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"completed_at": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"requested": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"refreshed": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"failed": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"requested_at",
"completed_at",
"requested",
"refreshed",
"failed"
],
"additionalProperties": {}
},
"person_refresh": {
"type": "object",
"properties": {
"requested_at": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"completed_at": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"requested": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"refreshed": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"failed": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"requested_at",
"completed_at",
"requested",
"refreshed",
"failed"
],
"additionalProperties": {}
},
"last_activity_at": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"last_event_label": {
"type": "string"
},
"processing_error": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"truncated": {
"type": "object",
"properties": {
"matches": {
"type": "boolean"
},
"people": {
"type": "boolean"
},
"companies": {
"type": "boolean"
}
},
"required": [
"matches",
"people",
"companies"
],
"additionalProperties": {}
}
},
"required": [
"match_count",
"evaluation_count",
"evidence_reference_count",
"page",
"company_refresh",
"person_refresh",
"truncated"
],
"additionalProperties": {}
}
},
"required": [
"search_id",
"label",
"query",
"target_mode",
"status",
"created_at",
"completed_at",
"people",
"companies",
"matches",
"summary"
],
"additionalProperties": {}
}
},
"required": [
"search"
],
"additionalProperties": {}
}
list_match_evaluations
Cursor-page every criterion evaluation for one SCRYU match. Use when a match detail reports evaluations.unavailable or evaluations.hasMore. Read-only.
searches / read-only
Input schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"match_id": {
"type": "string",
"minLength": 1
},
"cursor": {
"type": "string",
"minLength": 1
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 50
}
},
"required": [
"match_id"
],
"additionalProperties": false
}
Output schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"evaluations": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"required": [
"evaluations"
],
"additionalProperties": false
}
list_match_evidence_references
Cursor-page every match-level and evaluation-level evidence reference for one SCRYU match. evaluationId is null for match-level evidence. Read-only.
searches / read-only
Input schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"match_id": {
"type": "string",
"minLength": 1
},
"cursor": {
"type": "string",
"minLength": 1
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"required": [
"match_id"
],
"additionalProperties": false
}
Output schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"evidence_references": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"required": [
"evidence_references"
],
"additionalProperties": false
}
find_and_save_companies
Intake or enrich one or more company records from a clean canonical anchor. This is a write path, not an existing-record lookup method. Pass existing_company_id to enrich a specific saved company instead of creating a new root. Use the company name, official domain, or official URL. Do not include ranking text or descriptive blurbs in the anchor.
companies
Input schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"research_objective_id": {
"type": "string",
"minLength": 1
},
"existing_company_id": {
"type": "string",
"minLength": 1
},
"anchor": {
"type": "string",
"minLength": 1
},
"notes": {
"type": "string",
"minLength": 1
},
"max_matches": {
"type": "integer",
"minimum": 1,
"maximum": 25
},
"hints": {
"type": "object",
"properties": {
"domain": {
"type": "string",
"minLength": 1
},
"url": {
"type": "string",
"minLength": 1
},
"linkedin_url": {
"type": "string",
"minLength": 1
}
},
"additionalProperties": false
}
},
"required": [
"anchor"
],
"additionalProperties": false
}
Output schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"intake_id": {
"type": "string"
},
"status": {
"type": "string"
},
"trace_id": {
"type": "string"
},
"research_objective_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"records": {
"type": "array",
"items": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"issues": {
"type": "array",
"items": {}
},
"receipt": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"required": [
"intake_id",
"status",
"records",
"issues",
"receipt"
],
"additionalProperties": {}
}
get_identity_intake
Read one durable identity acquisition or decision intake after caller loss. Candidate readback is bounded and reports candidates_truncated.
people / read-only
Input schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"intake_id": {
"type": "string",
"minLength": 1
},
"candidate_limit": {
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"required": [
"intake_id"
],
"additionalProperties": false
}
Output schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"intake": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"required": [
"intake"
],
"additionalProperties": false
}
find_and_save_company_batch
Find and save up to 100 company anchors through the same duplicate-aware company save path. Repeated deterministic anchors in the same batch are skipped before provider/backend work. Use for backlog intake after you have clean anchors/domains/URLs; pass existing_company_id per item when enriching a known record.
companies
Input schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"items": {
"minItems": 1,
"maxItems": 100,
"type": "array",
"items": {
"type": "object",
"properties": {
"research_objective_id": {
"type": "string",
"minLength": 1
},
"existing_company_id": {
"type": "string",
"minLength": 1
},
"anchor": {
"type": "string",
"minLength": 1
},
"notes": {
"type": "string",
"minLength": 1
},
"max_matches": {
"type": "integer",
"minimum": 1,
"maximum": 25
},
"hints": {
"type": "object",
"properties": {
"domain": {
"type": "string",
"minLength": 1
},
"url": {
"type": "string",
"minLength": 1
},
"linkedin_url": {
"type": "string",
"minLength": 1
}
},
"additionalProperties": false
}
},
"required": [
"anchor"
],
"additionalProperties": false
}
}
},
"required": [
"items"
],
"additionalProperties": false
}
Output schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "completed"
},
"results": {
"type": "array",
"items": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"summary": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"required": [
"status",
"results",
"summary"
],
"additionalProperties": {}
}
plan_company_batch
Preflight up to 100 company anchors against current Convex companies without provider work or writes. Returns duplicate, save, enrich-existing, ambiguous, and identity-required buckets for agent/operator review before intake.
companies / read-only
Input schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"items": {
"minItems": 1,
"maxItems": 100,
"type": "array",
"items": {
"type": "object",
"properties": {
"research_objective_id": {
"type": "string",
"minLength": 1
},
"existing_company_id": {
"type": "string",
"minLength": 1
},
"anchor": {
"type": "string",
"minLength": 1
},
"notes": {
"type": "string",
"minLength": 1
},
"max_matches": {
"type": "integer",
"minimum": 1,
"maximum": 25
},
"hints": {
"type": "object",
"properties": {
"domain": {
"type": "string",
"minLength": 1
},
"url": {
"type": "string",
"minLength": 1
},
"linkedin_url": {
"type": "string",
"minLength": 1
}
},
"additionalProperties": false
}
},
"required": [
"anchor"
],
"additionalProperties": false
}
}
},
"required": [
"items"
],
"additionalProperties": false
}
Output schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "planned"
},
"items": {
"type": "array",
"items": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"summary": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"required": [
"status",
"items",
"summary"
],
"additionalProperties": {}
}
list_companies
Find, list, and filter existing saved SCRYU companies by text or active tag. Read-only. Resolve tag labels with list_company_tags, then pass tag_id. Combined tag_id and search_query use intersection semantics. Keep every filter unchanged when passing continue_cursor as cursor. Wait for is_done before claiming a complete cohort or exact count. An incomplete page never authorizes net-new discovery.
companies / read-only
Input schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100
},
"cursor": {
"type": "string",
"minLength": 1,
"description": "Opaque continue_cursor returned by a previous page."
},
"search_query": {
"type": "string",
"minLength": 1,
"description": "Substring terms for filtering existing saved company rows. Untagged searches use the full-text index; combined tag_id and search_query use substring intersection semantics."
},
"tag_id": {
"type": "string",
"minLength": 1,
"description": "Active company tag_id from list_company_tags. Returns only existing companies assigned that tag."
}
},
"additionalProperties": false
}
Output schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"companies": {
"type": "array",
"items": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"is_done": {
"type": "boolean"
},
"continue_cursor": {
"type": "string"
},
"incomplete": {
"type": "boolean"
},
"incomplete_reason": {
"anyOf": [
{
"type": "string",
"enum": [
"bounded_read_split",
"work_bound_reached"
]
},
{
"type": "null"
}
]
}
},
"required": [
"companies",
"is_done",
"continue_cursor",
"incomplete",
"incomplete_reason"
],
"additionalProperties": false
}
get_company
Load the current company detail view from SCRYU.
companies / read-only
Input schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"company_id": {
"type": "string",
"minLength": 1
},
"match_cursor": {
"type": "string",
"minLength": 1
}
},
"required": [
"company_id"
],
"additionalProperties": false
}
Output schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"company": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"required": [
"company"
],
"additionalProperties": {}
}
list_company_tags
List active company tags. Use a returned tag_id to filter existing saved companies with list_companies or to assign that existing tag with add_company_tag. Read-only. New custom tags must be created in the UI, not through MCP/API.
companies / read-only
Input schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {},
"additionalProperties": false
}
Output schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"tags": {
"type": "array",
"items": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
}
},
"required": [
"tags"
],
"additionalProperties": {}
}
add_company_tag
Assign an existing company tag to an existing SCRYU company. Use list_company_tags first if you do not already know the tag_id. This tool cannot create custom tags. Call get_company to read back the company state after writing.
companies
Input schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"company_id": {
"type": "string",
"minLength": 1
},
"tag_id": {
"type": "string",
"minLength": 1,
"description": "Existing company tag_id from list_company_tags or get_company. This tool cannot create tags."
}
},
"required": [
"company_id",
"tag_id"
],
"additionalProperties": false
}
Output schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"tag": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"assigned": {
"type": "boolean"
}
},
"required": [
"tag",
"assigned"
],
"additionalProperties": {}
}
remove_company_tag
Remove an existing company tag assignment from a company. Call get_company to read back the company state after writing.
companies
Input schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"company_id": {
"type": "string",
"minLength": 1
},
"tag_id": {
"type": "string",
"minLength": 1,
"description": "Existing company tag_id from list_company_tags or get_company. This tool cannot create tags."
}
},
"required": [
"company_id",
"tag_id"
],
"additionalProperties": false
}
Output schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"removed": {
"type": "boolean"
}
},
"required": [
"removed"
],
"additionalProperties": {}
}
start_palantir_enrichment_campaign
Start or recover the single durable enrichment campaign for the Palantir-tag company cohort and its linked saved people. Assignment and employment timestamps enforce enrollmentCutoffAt; bounded enumeration completes before provider work and manifestFrozenAt marks that completed manifest. Rows deleted before enumeration cannot be reconstructed. Companies run before people. The call is deduplicated and returns the existing campaign when already created.
companies
Input schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {},
"additionalProperties": false
}
Output schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {},
"additionalProperties": {}
}
get_enrichment_campaign
Read durable phase, enrollment cutoff, completed-manifest time and semantics, terminal accounting, and company/person progress for an enrichment campaign.
companies / read-only
Input schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"campaign_id": {
"type": "string",
"minLength": 1
}
},
"required": [
"campaign_id"
],
"additionalProperties": false
}
Output schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"campaign": {}
},
"required": [
"campaign"
],
"additionalProperties": false
}
list_enrichment_campaign_items
Page through compact durable item receipts for an enrichment campaign. Use kind and state to export specific outcomes such as people with email not_found or items requiring review. Keep filters unchanged with each continue_cursor.
companies / read-only
Input schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"campaign_id": {
"type": "string",
"minLength": 1
},
"cursor": {
"type": "string",
"minLength": 1
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 50
},
"kind": {
"type": "string",
"enum": [
"company",
"person"
]
},
"state": {
"type": "string",
"enum": [
"pending",
"leased",
"retry_wait",
"improved",
"no_change",
"needs_review",
"failed"
]
}
},
"required": [
"campaign_id"
],
"additionalProperties": false
}
Output schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"is_done": {
"type": "boolean"
},
"continue_cursor": {
"type": "string"
}
},
"required": [
"items",
"is_done",
"continue_cursor"
],
"additionalProperties": false
}
pause_enrichment_campaign
Pause new campaign claims. Any already-bound canonical primitive remains durable and will be reconciled after resume.
companies
Input schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"campaign_id": {
"type": "string",
"minLength": 1
}
},
"required": [
"campaign_id"
],
"additionalProperties": false
}
Output schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {},
"additionalProperties": {}
}
resume_enrichment_campaign
Resume a paused enrichment campaign from its persisted manifest, item receipts, and bound canonical primitive.
companies
Input schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"campaign_id": {
"type": "string",
"minLength": 1
}
},
"required": [
"campaign_id"
],
"additionalProperties": false
}
Output schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {},
"additionalProperties": {}
}
find_and_save_people
Find and save one or more plausible people from a clean canonical anchor and optionally attach them to a research objective. Pass a durable profile_url whenever possible. Passing existing_company_id gates/attaches employer identity after candidate discovery; it is not a provider-level company-scoped same-name search. Use deep_find_person for inspect-only exact-person fallback when profile identity is missing.
people
Input schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"research_objective_id": {
"type": "string",
"minLength": 1
},
"existing_company_id": {
"type": "string",
"minLength": 1
},
"anchor": {
"type": "string",
"minLength": 1
},
"notes": {
"type": "string",
"minLength": 1
},
"max_matches": {
"type": "integer",
"minimum": 1,
"maximum": 10
},
"hints": {
"type": "object",
"properties": {
"profile_url": {
"type": "string",
"minLength": 1
},
"company": {
"type": "string",
"minLength": 1
},
"title": {
"type": "string",
"minLength": 1
},
"location": {
"type": "string",
"minLength": 1
}
},
"additionalProperties": false
}
},
"required": [
"anchor"
],
"additionalProperties": false
}
Output schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"intake_id": {
"type": "string"
},
"status": {
"type": "string"
},
"trace_id": {
"type": "string"
},
"research_objective_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"records": {
"type": "array",
"items": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"issues": {
"type": "array",
"items": {}
},
"receipt": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"required": [
"intake_id",
"status",
"records",
"issues",
"receipt"
],
"additionalProperties": {}
}
deep_find_person
Inspect public evidence for one exact person through the shared SCRYU search-agent find_person contract. This is the preferred high-volume fallback for exact-person lookup when find_and_save_people lacks a durable profile URL. It returns one intended person result or an abstention, does not create search runs, never writes SCRYU canonical people/contact records, and hides provider internals.
people / read-only
Input schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1
},
"company": {
"type": "string",
"minLength": 1
},
"title": {
"type": "string",
"minLength": 1
},
"email": {
"type": "string",
"minLength": 1
},
"profile_url": {
"type": "string",
"minLength": 1
},
"source_context": {
"type": "string",
"minLength": 1
},
"location": {
"type": "string",
"minLength": 1
}
},
"required": [
"name"
],
"additionalProperties": false
}
Output schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"outcome": {
"type": "string",
"enum": [
"verified_exact_person",
"ambiguous",
"not_found",
"wrong_input_profile"
]
},
"trace_id": {
"type": "string"
},
"exact_match": {
"type": "boolean"
},
"confidence": {
"type": "string",
"enum": [
"high",
"medium",
"low",
"none"
]
},
"matched_name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"matched_company": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"matched_title": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"profile_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"identity_evidence_urls": {
"type": "array",
"items": {
"type": "string"
}
},
"employer_evidence_urls": {
"type": "array",
"items": {
"type": "string"
}
},
"contact_evidence": {
"type": "array",
"items": {
"type": "object",
"properties": {
"source_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"confidence": {
"type": "string",
"enum": [
"high",
"medium",
"low",
"none"
]
},
"summary": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"kind": {
"type": "string",
"enum": [
"email",
"phone",
"linkedin",
"other"
]
},
"value": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"source_url",
"confidence",
"summary",
"kind",
"value"
],
"additionalProperties": {}
}
},
"abstention_reason": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"notes": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"search_summary": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"canonical_write_occurred": {
"type": "boolean",
"const": false
}
},
"required": [
"outcome",
"trace_id",
"exact_match",
"confidence",
"matched_name",
"matched_company",
"matched_title",
"profile_url",
"identity_evidence_urls",
"employer_evidence_urls",
"contact_evidence",
"abstention_reason",
"notes",
"search_summary",
"canonical_write_occurred"
],
"additionalProperties": {}
}
refresh_person
Queue durable rehydration for one existing SCRYU person by person_id. Uses the current source profile URL unless profile_url is provided; refuses unsafe name-only refreshes and returns the observable refresh request.
people
Input schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"person_id": {
"type": "string",
"minLength": 1
},
"profile_url": {
"type": "string",
"minLength": 1
}
},
"required": [
"person_id"
],
"additionalProperties": false
}
Output schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"refresh_id": {
"type": "string"
},
"person_id": {
"type": "string"
},
"status": {
"type": "string",
"enum": [
"queued",
"running",
"completed",
"failed"
]
},
"outcome": {
"anyOf": [
{
"type": "string",
"enum": [
"improved",
"no_change",
"needs_review",
"failed"
]
},
{
"type": "null"
}
]
},
"contact_ready": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
]
},
"email_gap": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"email_receipt": {
"anyOf": [
{
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
{
"type": "null"
}
]
},
"changed_fields": {
"type": "array",
"items": {
"type": "string"
}
},
"error": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"requested_at": {
"type": "number"
},
"started_at": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"completed_at": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
}
},
"required": [
"refresh_id",
"person_id",
"status",
"outcome",
"contact_ready",
"email_gap",
"email_receipt",
"changed_fields",
"error",
"requested_at",
"started_at",
"completed_at"
],
"additionalProperties": {}
}
get_person_refresh
Read the durable queued, running, completed, or failed state for a refresh_id returned by refresh_person.
people / read-only
Input schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"refresh_id": {
"type": "string",
"minLength": 1
}
},
"required": [
"refresh_id"
],
"additionalProperties": false
}
Output schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"refresh_id": {
"type": "string"
},
"person_id": {
"type": "string"
},
"status": {
"type": "string",
"enum": [
"queued",
"running",
"completed",
"failed"
]
},
"outcome": {
"anyOf": [
{
"type": "string",
"enum": [
"improved",
"no_change",
"needs_review",
"failed"
]
},
{
"type": "null"
}
]
},
"contact_ready": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
]
},
"email_gap": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"email_receipt": {
"anyOf": [
{
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
{
"type": "null"
}
]
},
"changed_fields": {
"type": "array",
"items": {
"type": "string"
}
},
"error": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"requested_at": {
"type": "number"
},
"started_at": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"completed_at": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
}
},
"required": [
"refresh_id",
"person_id",
"status",
"outcome",
"contact_ready",
"email_gap",
"email_receipt",
"changed_fields",
"error",
"requested_at",
"started_at",
"completed_at"
],
"additionalProperties": {}
}
set_person_contact_info
Set one existing SCRYU person's primary email address and optional primary phone number, then read back and return the updated person detail. source_reference_id is optional attribution for where the contact value came from, for example an event list, catalog, CRM export, research note, or import batch; omit it when unknown.
people
Input schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"person_id": {
"type": "string",
"minLength": 1,
"description": "Existing SCRYU person_id to update."
},
"email_address": {
"type": "string",
"format": "email",
"pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
"description": "Known email address to store as this person's primary email."
},
"phone_number": {
"type": "string",
"description": "Optional known phone number to store as this person's primary phone."
},
"source": {
"type": "string",
"enum": [
"manual",
"import"
],
"description": "Contact source. Omit for normal manual writes; defaults to manual."
},
"source_reference_id": {
"type": "string",
"minLength": 1,
"maxLength": 512,
"description": "Optional attribution for where the contact value came from. Pass a readable event list, catalog, CRM export, research note, or import batch reference when known; omit when unknown. This is not the MCP/API consumer identity."
}
},
"required": [
"person_id",
"email_address"
],
"additionalProperties": false
}
Output schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"person": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"required": [
"person"
],
"additionalProperties": {}
}
plan_person_title_correction
Review a bounded correction to one existing person's canonical current title before writing. Requires a durable reason and 1-10 HTTPS evidence URLs. Returns a revision bound to the exact request and current person state. Read-only.
people / read-only
Input schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"person_id": {
"type": "string",
"minLength": 1
},
"current_title": {
"type": "string",
"minLength": 1,
"maxLength": 300
},
"reason": {
"type": "string",
"minLength": 1,
"maxLength": 4000
},
"evidence_urls": {
"minItems": 1,
"maxItems": 10,
"type": "array",
"items": {
"type": "string",
"format": "uri",
"pattern": "^https:\\/\\/.*"
}
}
},
"required": [
"person_id",
"current_title",
"reason",
"evidence_urls"
],
"additionalProperties": false
}
Output schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"plan": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"required": [
"plan"
],
"additionalProperties": false
}
apply_person_title_correction
Apply one reviewed person current-title correction with the exact revision, reason, title, and evidence URLs from plan_person_title_correction. Returns a durable receipt and reads the person back. Stale state is refused with zero writes.
people
Input schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"person_id": {
"type": "string",
"minLength": 1
},
"current_title": {
"type": "string",
"minLength": 1,
"maxLength": 300
},
"reason": {
"type": "string",
"minLength": 1,
"maxLength": 4000
},
"evidence_urls": {
"minItems": 1,
"maxItems": 10,
"type": "array",
"items": {
"type": "string",
"format": "uri",
"pattern": "^https:\\/\\/.*"
}
},
"expected_revision": {
"type": "string",
"pattern": "^sha256:[0-9a-f]{64}$"
}
},
"required": [
"person_id",
"current_title",
"reason",
"evidence_urls",
"expected_revision"
],
"additionalProperties": false
}
Output schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"receipt": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"person": {
"anyOf": [
{
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
{
"type": "null"
}
]
}
},
"required": [
"receipt",
"person"
],
"additionalProperties": false
}
get_person_title_correction_receipt
Read one durable person title-correction receipt by receipt_id. Read-only.
people / read-only
Input schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"receipt_id": {
"type": "string",
"minLength": 1
}
},
"required": [
"receipt_id"
],
"additionalProperties": false
}
Output schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"receipt": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"required": [
"receipt"
],
"additionalProperties": false
}
list_people
List current SCRYU people read-model rows as a cursor page for inspection before cleanup, enrichment, reconciliation, or opportunity work. Pass continue_cursor from one response as cursor to retrieve the next page. Read-only.
people / read-only
Input schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100
},
"cursor": {
"type": "string",
"minLength": 1,
"description": "Opaque continue_cursor returned by a previous page."
}
},
"additionalProperties": false
}
Output schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"people": {
"type": "array",
"items": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"is_done": {
"type": "boolean"
},
"continue_cursor": {
"type": "string"
}
},
"required": [
"people",
"is_done",
"continue_cursor"
],
"additionalProperties": {}
}
get_person
Load the current person detail view from SCRYU.
people / read-only
Input schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"person_id": {
"type": "string",
"minLength": 1
},
"match_cursor": {
"type": "string",
"minLength": 1
}
},
"required": [
"person_id"
],
"additionalProperties": false
}
Output schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"person": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"required": [
"person"
],
"additionalProperties": {}
}
list_opportunities
List SCRYU opportunities in a pipeline or queue-shaped view with filters for stage, status, owner, company, health, staleness, due state, and text.
opportunities / read-only
Input schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"stage": {
"type": "string",
"enum": [
"qualification",
"scoping",
"contracting"
]
},
"outcome": {
"type": "string",
"enum": [
"sold",
"lost"
]
},
"owner_operator_user_id": {
"type": "string",
"minLength": 1
},
"company_id": {
"type": "string",
"minLength": 1
},
"health": {
"type": "string",
"enum": [
"on_track",
"needs_attention",
"blocked",
"stale",
"unknown"
]
},
"stale_only": {
"type": "boolean"
},
"due": {
"type": "string",
"enum": [
"overdue",
"upcoming"
]
},
"query": {
"type": "string",
"minLength": 1
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 250
}
},
"additionalProperties": false
}
Output schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"opportunities": {
"type": "array",
"items": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
}
},
"required": [
"opportunities"
],
"additionalProperties": {}
}
get_opportunity
Load the full SCRYU opportunity detail read model: company, people, requirements, tasks, notes, activity, signals, and coverage.
opportunities / read-only
Input schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"opportunity_id": {
"type": "string",
"minLength": 1
}
},
"required": [
"opportunity_id"
],
"additionalProperties": false
}
Output schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"opportunity": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"required": [
"opportunity"
],
"additionalProperties": {}
}
create_opportunity
Create a SCRYU opportunity linked to an existing company, with optional source records, spend estimate, next action, and initial note.
opportunities
Input schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"company_id": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string",
"minLength": 1
},
"summary": {
"type": "string",
"minLength": 1
},
"stage": {
"type": "string",
"enum": [
"qualification",
"scoping",
"contracting"
]
},
"priority": {
"type": "string",
"enum": [
"low",
"medium",
"high",
"urgent"
]
},
"health": {
"type": "string",
"enum": [
"on_track",
"needs_attention",
"blocked",
"stale",
"unknown"
]
},
"owner_operator_user_id": {
"type": "string",
"minLength": 1
},
"primary_contact_person_id": {
"type": "string",
"minLength": 1
},
"source_search_ids": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
},
"source_research_objective_ids": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
},
"estimated_spend": {
"type": "object",
"properties": {
"min": {
"type": "number",
"minimum": 0
},
"max": {
"type": "number",
"minimum": 0
},
"currency": {
"type": "string",
"const": "USD"
},
"period": {
"type": "string",
"enum": [
"one_time",
"monthly",
"annual"
]
},
"confidence": {
"type": "string",
"enum": [
"low",
"medium",
"high"
]
},
"basis": {
"type": "string",
"minLength": 1
},
"source_note_ids": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
}
},
"required": [
"confidence",
"basis"
],
"additionalProperties": false
},
"target_close_date": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"next_action": {
"type": "string",
"minLength": 1
},
"next_action_due_at": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"initial_note": {
"type": "object",
"properties": {
"title": {
"type": "string",
"minLength": 1,
"maxLength": 160
},
"body_markdown": {
"type": "string",
"minLength": 1,
"maxLength": 65536
},
"tags": {
"maxItems": 20,
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
},
"source_urls": {
"maxItems": 20,
"type": "array",
"items": {
"type": "string",
"format": "uri"
}
},
"related_note_ids": {
"maxItems": 20,
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
},
"created_from_objective_id": {
"type": "string",
"minLength": 1
}
},
"required": [
"title",
"body_markdown"
],
"additionalProperties": false
}
},
"required": [
"company_id",
"name"
],
"additionalProperties": false
}
Output schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"opportunity": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"receipts": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"required": [
"opportunity",
"receipts"
],
"additionalProperties": {}
}
update_opportunity
Patch core SCRYU opportunity fields. Use move_opportunity_stage for explicit stage transitions.
opportunities
Input schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"opportunity_id": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string",
"minLength": 1
},
"summary": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "null"
}
]
},
"priority": {
"type": "string",
"enum": [
"low",
"medium",
"high",
"urgent"
]
},
"health": {
"type": "string",
"enum": [
"on_track",
"needs_attention",
"blocked",
"stale",
"unknown"
]
},
"owner_operator_user_id": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "null"
}
]
},
"primary_contact_person_id": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "null"
}
]
},
"estimated_spend": {
"anyOf": [
{
"type": "object",
"properties": {
"min": {
"type": "number",
"minimum": 0
},
"max": {
"type": "number",
"minimum": 0
},
"currency": {
"type": "string",
"const": "USD"
},
"period": {
"type": "string",
"enum": [
"one_time",
"monthly",
"annual"
]
},
"confidence": {
"type": "string",
"enum": [
"low",
"medium",
"high"
]
},
"basis": {
"type": "string",
"minLength": 1
},
"source_note_ids": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
}
},
"required": [
"confidence",
"basis"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"booked_value": {
"anyOf": [
{
"type": "number",
"minimum": 0
},
{
"type": "null"
}
]
},
"target_close_date": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"next_action": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "null"
}
]
},
"next_action_due_at": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
}
},
"required": [
"opportunity_id"
],
"additionalProperties": false
}
Output schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"opportunity_id": {
"type": "string"
},
"updated": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"opportunity_id",
"updated"
],
"additionalProperties": {}
}
move_opportunity_stage
Move an open SCRYU opportunity between Qualification, Scoping, and Contracting.
opportunities
Input schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"opportunity_id": {
"type": "string",
"minLength": 1
},
"stage": {
"type": "string",
"enum": [
"qualification",
"scoping",
"contracting"
]
},
"note": {
"type": "string",
"minLength": 1
}
},
"required": [
"opportunity_id",
"stage"
],
"additionalProperties": false
}
Output schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"opportunity_id": {
"type": "string"
},
"stage": {
"type": "string",
"enum": [
"qualification",
"scoping",
"contracting"
]
}
},
"required": [
"opportunity_id",
"stage"
],
"additionalProperties": {}
}
archive_opportunity
Remove a SCRYU opportunity from the active pipeline without recording a sold or lost outcome. Maps to the archived lifecycle; the row stays readable on its detail page.
opportunities
Input schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"opportunity_id": {
"type": "string",
"minLength": 1
},
"note": {
"type": "string",
"minLength": 1
}
},
"required": [
"opportunity_id"
],
"additionalProperties": false
}
Output schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"opportunity_id": {
"type": "string"
},
"stage": {
"type": "string",
"enum": [
"qualification",
"scoping",
"contracting"
]
},
"archived_at": {
"type": "number",
"minimum": 0
},
"previous_updated_at": {
"type": "number",
"minimum": 0
},
"updated_at": {
"type": "number",
"minimum": 0
}
},
"required": [
"opportunity_id",
"stage",
"archived_at",
"previous_updated_at",
"updated_at"
],
"additionalProperties": {}
}
complete_opportunity
Complete an opportunity with a terminal Sold or Lost outcome. Lost requires loss_reason. Sold creates or links one active engagement; Lost never does.
opportunities
Input schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"opportunity_id": {
"type": "string",
"minLength": 1
},
"outcome": {
"type": "string",
"enum": [
"sold",
"lost"
]
},
"booked_value": {
"type": "number",
"minimum": 0
},
"loss_reason": {
"type": "string",
"minLength": 1
},
"note": {
"type": "string",
"minLength": 1
}
},
"required": [
"opportunity_id",
"outcome"
],
"additionalProperties": false
}
Output schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"opportunity_id": {
"type": "string"
},
"outcome": {
"type": "string",
"enum": [
"sold",
"lost"
]
},
"completion_stage": {
"type": "string",
"enum": [
"qualification",
"scoping",
"contracting"
]
},
"loss_reason": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"active_engagement_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"booked_value": {
"anyOf": [
{
"type": "number",
"minimum": 0
},
{
"type": "null"
}
]
}
},
"required": [
"opportunity_id",
"outcome",
"completion_stage",
"loss_reason",
"active_engagement_id",
"booked_value"
],
"additionalProperties": {}
}
add_opportunity_context
Append opportunity context: note, spend basis, next action, requirements, tasks, and discovered people. Writes are explicit and receipt-backed.
opportunities
Input schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"opportunity_id": {
"type": "string",
"minLength": 1
},
"note": {
"type": "object",
"properties": {
"title": {
"type": "string",
"minLength": 1,
"maxLength": 160
},
"body_markdown": {
"type": "string",
"minLength": 1,
"maxLength": 65536
},
"tags": {
"maxItems": 20,
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
},
"source_urls": {
"maxItems": 20,
"type": "array",
"items": {
"type": "string",
"format": "uri"
}
},
"related_note_ids": {
"maxItems": 20,
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
},
"created_from_objective_id": {
"type": "string",
"minLength": 1
}
},
"required": [
"title",
"body_markdown"
],
"additionalProperties": false
},
"estimated_spend": {
"type": "object",
"properties": {
"min": {
"type": "number",
"minimum": 0
},
"max": {
"type": "number",
"minimum": 0
},
"currency": {
"type": "string",
"const": "USD"
},
"period": {
"type": "string",
"enum": [
"one_time",
"monthly",
"annual"
]
},
"confidence": {
"type": "string",
"enum": [
"low",
"medium",
"high"
]
},
"basis": {
"type": "string",
"minLength": 1
},
"source_note_ids": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
}
},
"required": [
"confidence",
"basis"
],
"additionalProperties": false
},
"next_action": {
"type": "string",
"minLength": 1
},
"next_action_due_at": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"requirements": {
"type": "array",
"items": {
"type": "object",
"properties": {
"category": {
"type": "string",
"enum": [
"technical",
"security",
"legal",
"procurement",
"commercial",
"staffing",
"implementation",
"data",
"success_criteria",
"other"
]
},
"title": {
"type": "string",
"minLength": 1
},
"description": {
"type": "string",
"minLength": 1
},
"status": {
"type": "string",
"enum": [
"open",
"in_progress",
"blocked",
"satisfied",
"dismissed"
]
},
"priority": {
"type": "string",
"enum": [
"low",
"medium",
"high",
"urgent"
]
},
"owner_operator_user_id": {
"type": "string",
"minLength": 1
},
"due_at": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"source_note_ids": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
}
},
"required": [
"category",
"title"
],
"additionalProperties": false
}
},
"tasks": {
"type": "array",
"items": {
"type": "object",
"properties": {
"title": {
"type": "string",
"minLength": 1
},
"description": {
"type": "string",
"minLength": 1
},
"status": {
"type": "string",
"enum": [
"open",
"in_progress",
"blocked",
"completed",
"dismissed"
]
},
"assignee_operator_user_id": {
"type": "string",
"minLength": 1
},
"due_at": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"title"
],
"additionalProperties": false
}
},
"people": {
"type": "array",
"items": {
"type": "object",
"properties": {
"person_id": {
"type": "string",
"minLength": 1
},
"role": {
"type": "string",
"enum": [
"primary_buyer",
"economic_buyer",
"champion",
"technical_evaluator",
"security",
"legal",
"procurement",
"blocker",
"advisor",
"stakeholder",
"unknown",
"owner",
"supporting_operator",
"technical_owner",
"delivery_owner",
"executive_sponsor"
]
},
"relationship_status": {
"type": "string",
"enum": [
"unknown",
"active",
"supportive",
"neutral",
"blocked"
]
},
"notes": {
"type": "string",
"minLength": 1
},
"is_primary": {
"type": "boolean"
}
},
"required": [
"person_id",
"role"
],
"additionalProperties": false
}
}
},
"required": [
"opportunity_id"
],
"additionalProperties": false
}
Output schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"opportunity_id": {
"type": "string"
}
},
"additionalProperties": {}
}
list_opportunity_tasks
List opportunity task queues for one opportunity, optionally filtered by status.
opportunities / read-only
Input schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"opportunity_id": {
"type": "string",
"minLength": 1
},
"status": {
"type": "string",
"enum": [
"open",
"in_progress",
"blocked",
"completed",
"dismissed"
]
},
"cursor": {
"type": "string",
"minLength": 1
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 250
}
},
"required": [
"opportunity_id"
],
"additionalProperties": false
}
Output schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"task_id": {
"type": "string"
},
"opportunity_id": {
"type": "string"
},
"title": {
"type": "string"
},
"description": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"status": {
"type": "string",
"enum": [
"open",
"in_progress",
"blocked",
"completed",
"dismissed"
]
},
"assignee_operator_user_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"due_at": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"completed_at": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"created_by_operator_user_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"source_requirement_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"source_signal_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"created_at": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"updated_at": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"task_id",
"opportunity_id",
"title",
"description",
"status",
"assignee_operator_user_id",
"due_at",
"completed_at",
"created_by_operator_user_id",
"source_requirement_id",
"source_signal_id",
"created_at",
"updated_at"
],
"additionalProperties": false
}
},
"continue_cursor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"has_more": {
"type": "boolean"
},
"truncated": {
"type": "boolean"
}
},
"required": [
"items",
"continue_cursor",
"has_more",
"truncated"
],
"additionalProperties": false
}
upsert_opportunity_task
Create or update a due-date action for an opportunity.
opportunities
Input schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"opportunity_id": {
"type": "string",
"minLength": 1
},
"task_id": {
"type": "string",
"minLength": 1
},
"title": {
"type": "string",
"minLength": 1
},
"description": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "null"
}
]
},
"status": {
"type": "string",
"enum": [
"open",
"in_progress",
"blocked",
"completed",
"dismissed"
]
},
"assignee_operator_user_id": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "null"
}
]
},
"due_at": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"source_requirement_id": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "null"
}
]
},
"source_signal_id": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "null"
}
]
}
},
"required": [
"opportunity_id",
"title"
],
"additionalProperties": false
}
Output schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"task": {
"type": "object",
"properties": {
"task_id": {
"type": "string"
},
"opportunity_id": {
"type": "string"
},
"title": {
"type": "string"
},
"description": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"status": {
"type": "string",
"enum": [
"open",
"in_progress",
"blocked",
"completed",
"dismissed"
]
},
"assignee_operator_user_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"due_at": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"completed_at": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"created_by_operator_user_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"source_requirement_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"source_signal_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"created_at": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"updated_at": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"task_id",
"opportunity_id",
"title",
"description",
"status",
"assignee_operator_user_id",
"due_at",
"completed_at",
"created_by_operator_user_id",
"source_requirement_id",
"source_signal_id",
"created_at",
"updated_at"
],
"additionalProperties": false
}
},
"required": [
"task"
],
"additionalProperties": false
}
complete_opportunity_task
Complete an opportunity task with an optional completion note.
opportunities
Input schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"opportunity_id": {
"type": "string",
"minLength": 1
},
"task_id": {
"type": "string",
"minLength": 1
},
"note": {
"type": "string",
"minLength": 1
}
},
"required": [
"opportunity_id",
"task_id"
],
"additionalProperties": false
}
Output schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"opportunity_id": {
"type": "string"
},
"task_id": {
"type": "string"
},
"note_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"opportunity_id",
"task_id",
"note_id"
],
"additionalProperties": false
}
list_active_engagement_deliverables
List a bounded page of delivery commitments in stable creation order.
opportunities / read-only
Input schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"engagement_id": {
"type": "string",
"minLength": 1
},
"cursor": {
"type": "string",
"minLength": 1
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 50,
"description": "a number less than or equal to 50"
}
},
"required": [
"engagement_id"
],
"additionalProperties": false
}
Output schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"deliverable_id": {
"type": "string"
},
"engagement_id": {
"type": "string"
},
"title": {
"type": "string",
"minLength": 1,
"maxLength": 240,
"description": "a string at most 240 character(s) long"
},
"description": {
"anyOf": [
{
"type": "string",
"maxLength": 8192,
"description": "a string at most 8192 character(s) long"
},
{
"type": "null"
}
]
},
"workstream": {
"anyOf": [
{
"type": "string",
"maxLength": 120,
"description": "a string at most 120 character(s) long"
},
{
"type": "null"
}
]
},
"start_date": {
"anyOf": [
{
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
"description": "A real calendar date in canonical YYYY-MM-DD format."
},
{
"type": "null"
}
]
},
"end_date": {
"anyOf": [
{
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
"description": "A real calendar date in canonical YYYY-MM-DD format."
},
{
"type": "null"
}
]
},
"status": {
"type": "string",
"enum": [
"planned",
"in_progress",
"delivered"
]
},
"delivered_at": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"created_by_operator_user_id": {
"type": "string"
},
"updated_by_operator_user_id": {
"type": "string"
},
"delivered_by_operator_user_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"created_at": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"updated_at": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"deliverable_id",
"engagement_id",
"title",
"description",
"workstream",
"start_date",
"end_date",
"status",
"delivered_at",
"created_by_operator_user_id",
"updated_by_operator_user_id",
"delivered_by_operator_user_id",
"created_at",
"updated_at"
],
"additionalProperties": false
}
},
"continue_cursor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"has_more": {
"type": "boolean"
},
"truncated": {
"type": "boolean"
}
},
"required": [
"items",
"continue_cursor",
"has_more",
"truncated"
],
"additionalProperties": false
}
upsert_active_engagement_deliverable
Create or edit a planned or in-progress delivery commitment.
opportunities
Input schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"engagement_id": {
"type": "string",
"minLength": 1
},
"deliverable_id": {
"type": "string",
"minLength": 1
},
"title": {
"type": "string",
"description": "a string that will be trimmed"
},
"description": {
"anyOf": [
{
"type": "string",
"maxLength": 8192,
"description": "a string at most 8192 character(s) long"
},
{
"type": "null"
}
]
},
"workstream": {
"anyOf": [
{
"type": "string",
"maxLength": 120,
"description": "a string at most 120 character(s) long"
},
{
"type": "null"
}
]
},
"start_date": {
"anyOf": [
{
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
"description": "A real calendar date in canonical YYYY-MM-DD format."
},
{
"type": "null"
}
]
},
"end_date": {
"anyOf": [
{
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
"description": "A real calendar date in canonical YYYY-MM-DD format."
},
{
"type": "null"
}
]
},
"status": {
"type": "string",
"enum": [
"planned",
"in_progress"
]
}
},
"required": [
"engagement_id",
"title"
],
"additionalProperties": false
}
Output schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"deliverable": {
"type": "object",
"properties": {
"deliverable_id": {
"type": "string"
},
"engagement_id": {
"type": "string"
},
"title": {
"type": "string",
"minLength": 1,
"maxLength": 240,
"description": "a string at most 240 character(s) long"
},
"description": {
"anyOf": [
{
"type": "string",
"maxLength": 8192,
"description": "a string at most 8192 character(s) long"
},
{
"type": "null"
}
]
},
"workstream": {
"anyOf": [
{
"type": "string",
"maxLength": 120,
"description": "a string at most 120 character(s) long"
},
{
"type": "null"
}
]
},
"start_date": {
"anyOf": [
{
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
"description": "A real calendar date in canonical YYYY-MM-DD format."
},
{
"type": "null"
}
]
},
"end_date": {
"anyOf": [
{
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
"description": "A real calendar date in canonical YYYY-MM-DD format."
},
{
"type": "null"
}
]
},
"status": {
"type": "string",
"enum": [
"planned",
"in_progress",
"delivered"
]
},
"delivered_at": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"created_by_operator_user_id": {
"type": "string"
},
"updated_by_operator_user_id": {
"type": "string"
},
"delivered_by_operator_user_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"created_at": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"updated_at": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"deliverable_id",
"engagement_id",
"title",
"description",
"workstream",
"start_date",
"end_date",
"status",
"delivered_at",
"created_by_operator_user_id",
"updated_by_operator_user_id",
"delivered_by_operator_user_id",
"created_at",
"updated_at"
],
"additionalProperties": false
},
"receipt": {
"type": "object",
"properties": {
"engagement_id": {
"type": "string"
},
"deliverable_id": {
"type": "string"
},
"created": {
"type": "boolean"
},
"idempotent": {
"type": "boolean"
}
},
"required": [
"engagement_id",
"deliverable_id",
"created",
"idempotent"
],
"additionalProperties": false
}
},
"required": [
"deliverable",
"receipt"
],
"additionalProperties": false
}
mark_active_engagement_deliverable_delivered
Idempotently enter the terminal Delivered lifecycle state.
opportunities
Input schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"engagement_id": {
"type": "string",
"minLength": 1
},
"deliverable_id": {
"type": "string",
"minLength": 1
}
},
"required": [
"engagement_id",
"deliverable_id"
],
"additionalProperties": false
}
Output schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"deliverable": {
"type": "object",
"properties": {
"deliverable_id": {
"type": "string"
},
"engagement_id": {
"type": "string"
},
"title": {
"type": "string",
"minLength": 1,
"maxLength": 240,
"description": "a string at most 240 character(s) long"
},
"description": {
"anyOf": [
{
"type": "string",
"maxLength": 8192,
"description": "a string at most 8192 character(s) long"
},
{
"type": "null"
}
]
},
"workstream": {
"anyOf": [
{
"type": "string",
"maxLength": 120,
"description": "a string at most 120 character(s) long"
},
{
"type": "null"
}
]
},
"start_date": {
"anyOf": [
{
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
"description": "A real calendar date in canonical YYYY-MM-DD format."
},
{
"type": "null"
}
]
},
"end_date": {
"anyOf": [
{
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
"description": "A real calendar date in canonical YYYY-MM-DD format."
},
{
"type": "null"
}
]
},
"status": {
"type": "string",
"enum": [
"planned",
"in_progress",
"delivered"
]
},
"delivered_at": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"created_by_operator_user_id": {
"type": "string"
},
"updated_by_operator_user_id": {
"type": "string"
},
"delivered_by_operator_user_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"created_at": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"updated_at": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"deliverable_id",
"engagement_id",
"title",
"description",
"workstream",
"start_date",
"end_date",
"status",
"delivered_at",
"created_by_operator_user_id",
"updated_by_operator_user_id",
"delivered_by_operator_user_id",
"created_at",
"updated_at"
],
"additionalProperties": false
},
"receipt": {
"type": "object",
"properties": {
"engagement_id": {
"type": "string"
},
"deliverable_id": {
"type": "string"
},
"created": {
"type": "boolean"
},
"idempotent": {
"type": "boolean"
}
},
"required": [
"engagement_id",
"deliverable_id",
"created",
"idempotent"
],
"additionalProperties": false
}
},
"required": [
"deliverable",
"receipt"
],
"additionalProperties": false
}
scope_opportunity
Return deterministic scoping guidance for an opportunity: missing roles, requirements, risks, spend basis, and suggested next actions.
opportunities / read-only
Input schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"opportunity_id": {
"type": "string",
"minLength": 1
}
},
"required": [
"opportunity_id"
],
"additionalProperties": false
}
Output schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"opportunity_id": {
"type": "string"
},
"required_roles": {
"type": "array",
"items": {
"type": "string"
}
},
"required_needs": {
"type": "array",
"items": {
"type": "string"
}
},
"risks": {
"type": "array",
"items": {}
},
"missing_information": {
"type": "array",
"items": {}
},
"spend_basis": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"suggested_next_actions": {
"type": "array",
"items": {}
},
"coverage": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"required": [
"opportunity_id",
"required_roles",
"required_needs",
"risks",
"missing_information",
"suggested_next_actions",
"coverage"
],
"additionalProperties": {}
}
get_opportunity_activity
Load recent opportunity timeline activity for one opportunity or the workspace queue.
opportunities / read-only
Input schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"opportunity_id": {
"type": "string",
"minLength": 1
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 250
}
},
"required": [
"opportunity_id"
],
"additionalProperties": false
}
Output schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"activity": {
"type": "array",
"items": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
}
},
"required": [
"activity"
],
"additionalProperties": {}
}
prepare_campaign_audience
Start or resume an idempotent reviewed audience from ALL saved people at current employers with a company tag. Choose any (no email required, including LinkedIn-only people), selectable email (verified/unverified/stale, no deliverability promise), or verified-only. Email sending eligibility is checked separately. Target an existing targeted campaign or supply a new campaign name/prompt. No campaign or membership writes occur before explicit apply. Call advance_campaign_audience until ready, review counts and list_campaign_audience_items, then apply the exact review token. After reviewed apply, enrollment automatically creates drafts using saved campaign settings; generated campaigns may incur model costs. No messages are sent.
outreach
Input schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"idempotency_key": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"company_tag_id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"email_policy": {
"type": "string",
"enum": [
"any",
"selectable",
"verified"
]
},
"target": {
"anyOf": [
{
"type": "object",
"properties": {
"campaign_id": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"required": [
"campaign_id"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"generation_prompt": {
"type": "string",
"minLength": 1,
"maxLength": 10000
}
},
"required": [
"name",
"generation_prompt"
],
"additionalProperties": false
}
]
}
},
"required": [
"idempotency_key",
"company_tag_id",
"email_policy",
"target"
],
"additionalProperties": false
}
Output schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {},
"additionalProperties": {}
}
advance_campaign_audience
Advance exactly one durable bounded page or batch. Before reviewed apply this only prepares the manifest; afterward it enrolls reviewed people and reconciles persisted membership. Retry safely after interruption. Stop on ready for explicit human review, complete for receipts, or stale for a new review. Existing active members stay active; previewed removed members are restored. Enrollment automatically creates drafts using saved campaign settings; generated campaigns may incur model costs. No messages are sent.
outreach
Input schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"operation_id": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"required": [
"operation_id"
],
"additionalProperties": false
}
Output schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {},
"additionalProperties": {}
}
apply_campaign_audience
Authorize the exact complete reviewed manifest using its review token and APPLY_REVIEWED_AUDIENCE confirmation. Creates a campaign at most once, if requested, and enables bounded enrollment through advance_campaign_audience. Requires review of complete counts, existing/removed membership behavior and preview. Source or target drift requires re-review; never silently expands the cohort. Enrollment automatically creates drafts using saved campaign settings; generated campaigns may incur model costs. No messages are sent.
outreach
Input schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"operation_id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"review_token": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"confirmation": {
"type": "string",
"const": "APPLY_REVIEWED_AUDIENCE"
}
},
"required": [
"operation_id",
"review_token",
"confirmation"
],
"additionalProperties": false
}
Output schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {},
"additionalProperties": {}
}
read_campaign_audience
Read the authenticated operator's durable reviewed-audience filters, completeness, cutoff, progress and assignment/reconciliation counts. Stale or partial work is never a complete audience. Read live membership per item through list_campaign_audience_items.
outreach / read-only
Input schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"operation_id": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"required": [
"operation_id"
],
"additionalProperties": false
}
Output schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {},
"additionalProperties": {}
}
list_campaign_audience_items
Read a bounded cursor page of the persisted deduplicated audience: saved-person preview, membership before review, per-item assignment outcome/reason, reconciliation and current persisted active membership. Page until is_done for the entire reviewed cohort.
outreach / read-only
Input schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"operation_id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"cursor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 25
}
},
"required": [
"operation_id"
],
"additionalProperties": false
}
Output schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {},
"additionalProperties": {}
}
find_more_people_at_company
Discover and save additional current people at an existing company. Defaults to Palantir owners, senior data/analytics/transformation owners, CIO, CTO and head of product. Bounded to ten candidates with employer checks and duplicate protection. Returns durable progress; candidate discovery is separate from saved-email readiness. Poll get_company_people_discovery.
people
Input schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"company_id": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"required": [
"company_id"
],
"additionalProperties": false
}
Output schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"discovery_id": {
"type": "string"
},
"status": {
"type": "string"
}
},
"required": [
"discovery_id",
"status"
],
"additionalProperties": {}
}
get_company_people_discovery
Read bounded durable company-scoped discovery progress, actual new people, existing matches, unresolved gaps and saved-email readiness. Completed means processing finished, not contact-ready enrichment success.
people / read-only
Input schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"discovery_id": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"required": [
"discovery_id"
],
"additionalProperties": false
}
Output schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"discovery_id": {
"type": "string"
},
"status": {
"type": "string"
}
},
"required": [
"discovery_id",
"status"
],
"additionalProperties": {}
}
assign_outreach
Assign one campaign person for a channel and variation. Defaults to the calling admitted operator; an explicit operator must be verified and admitted under the same rules as the app. Outreach policy blocks ineligible people. Creates an assignment and reserved attempt; sends no messages.
outreach
Input schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"campaign_id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"channel": {
"type": "string",
"enum": [
"email",
"linkedin"
]
},
"variation": {
"type": "string",
"enum": [
"manual_email",
"connection_request",
"inmail_message"
]
},
"operator_user_id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"person_id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"contact_point_id": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"required": [
"campaign_id",
"channel",
"variation",
"person_id"
],
"additionalProperties": false
}
Output schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {},
"additionalProperties": {}
}
reassign_outreach
Reassign an existing nonterminal assignment to a verified, admitted operator using the app's authorization rules. Requires an admitted caller. Sends no messages.
outreach
Input schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"assignment_id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"operator_user_id": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"required": [
"assignment_id",
"operator_user_id"
],
"additionalProperties": false
}
Output schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {},
"additionalProperties": {}
}
take_outreach
Take an existing nonterminal assignment as the calling admitted operator, using the same authorization and lifecycle checks as the app. Refuses while another operator has it prepared to launch; ask them to finish or cancel, or use reassign_outreach for an explicit hand-over. Sends no messages.
outreach
Input schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"assignment_id": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"required": [
"assignment_id"
],
"additionalProperties": false
}
Output schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {},
"additionalProperties": {}
}
bulk_assign_outreach
Assign up to 10 saved members of a targeted campaign per call, defaulting to the calling operator. Returns page items with assigned/assignment_id, skipped/reasons (including unchanged outreach policy), or failed/error. Removed members are skipped. Continue with continue_cursor as cursor and the same target arguments until is_done. Membership is read live in stable person order, not a frozen audience. Each item commits independently; interruption can leave partial writes. Replaying a page rechecks policy and skips already-active assignments. Sends no messages.
outreach
Input schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"campaign_id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"channel": {
"type": "string",
"enum": [
"email",
"linkedin"
]
},
"variation": {
"type": "string",
"enum": [
"manual_email",
"connection_request",
"inmail_message"
]
},
"operator_user_id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"cursor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 10
}
},
"required": [
"campaign_id",
"channel",
"variation"
],
"additionalProperties": false
}
Output schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {},
"additionalProperties": {}
}
bulk_update_campaign_memberships
Remove or restore an explicitly selected set of targeted-campaign members, the bulk counterpart of the app's per-row Remove and Restore. Changes membership status only: drafts, runs, draft revisions, assignments, attempts and accepted send evidence are never deleted, so a removal is reversible by restoring the same people. Processes at most 10 people per call in independent transactions, returning removed/restored, skipped with reasons (person not a member, or membership already in that state), or failed with error per person; one failure never aborts the rest of the page. Continue with continue_cursor as cursor and unchanged campaign_id, person_ids and operation until is_done; changing the selection invalidates the cursor. Retry is safe because already-applied people are skipped, but interruption can leave partial progress. Restoring re-enrolls exactly as the app does, which requeues automatic drafts for anyone whose drafts are missing or stale for the current campaign revision, so generated campaigns may incur model costs; surviving current drafts are reused. Nothing is sent.
outreach
Input schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"campaign_id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"person_ids": {
"minItems": 1,
"maxItems": 500,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"operation": {
"type": "string",
"enum": [
"remove",
"restore"
]
},
"cursor": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "null"
}
]
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 10
}
},
"required": [
"campaign_id",
"person_ids",
"operation"
],
"additionalProperties": false
}
Output schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {},
"additionalProperties": {}
}
generate_campaign_drafts
Generate drafts for explicitly selected campaign people through the same generation path as the app. Generated campaigns use the LLM; deterministic campaigns render exact copy without an LLM. Processes at most 10 people per call, sequentially, with per-person accepted/already_current/already_running/failed outcomes and persisted run IDs/status. Continue using continue_cursor with unchanged campaign, people and operation until is_done. is_done means the selection has been visited, not that asynchronous drafting finished. Retry reuses current/running drafts; no forced regeneration. Each person commits independently, so interruption can leave partial progress. Use operation read with a fresh cursor to poll the latest run and current draft revisions for each selected person, including failed/stale results, without writing or starting generation. Readback is live latest state, not a frozen run snapshot. Nothing is sent.
outreach
Input schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"campaign_id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"person_ids": {
"minItems": 1,
"maxItems": 500,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"operation": {
"type": "string",
"enum": [
"generate",
"read"
]
},
"cursor": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "null"
}
]
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 10
}
},
"required": [
"campaign_id",
"person_ids",
"operation"
],
"additionalProperties": false
}
Output schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {},
"additionalProperties": {}
}
set_outreach_contact
Set or repair the contact for a nonterminal outreach assignment through the app's canonical assignment-contact mutation. The assignment determines the contact kind (email or LinkedIn); the contact is manual and unverified. Preserves app authorization and policy evaluation, updates the assignment and active attempt, and invalidates obsolete Gmail confirmation identity. Returns canonical assignment/attempt readback. Does not transmit a message.
outreach
Input schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"assignment_id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"value": {
"type": "string",
"minLength": 1,
"maxLength": 2048
}
},
"required": [
"assignment_id",
"value"
],
"additionalProperties": false
}
Output schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {},
"additionalProperties": {}
}
save_outreach_draft_revision
Save edited subject/body as a revision of a generated draft variant through the same mutation as the app, returning the persisted revision and revision ID. Identical current copy is reused. Preserves admission, draft-state and channel-length validation. Deterministic message-set drafts are immutable here; use the existing recipient override workflow for recipient-specific edits. Nothing is prepared or sent.
outreach
Input schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"variant_id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"subject": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"body": {
"type": "string"
}
},
"required": [
"variant_id",
"body"
],
"additionalProperties": false
}
Output schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {},
"additionalProperties": {}
}