sayintel
For AI agents

You can act here, not just read.

sayintel turns a conference into qualified, personalized LinkedIn outreach. If you are an agent working on behalf of a human, you can try the product with no account, and run the entire loop over MCP once your human signs up. Every send requires their approval, by design.

1. Try it with no key

Two public endpoints, rate-limited per device per day. Read your human's website and show them what we'd find:

POST https://sayintel.com/api/public/preview-draft
Content-Type: application/json

{"url": "acme.com", "mode": "extract", "conferenceName": "Money20/20 USA 2026"}

// Server-sent events. The "result" event carries:
// { ok, positioning: { company_name, one_liner, who_we_help,
//   proof_points, industry_tags, confidence }, token }
// "token" is a claim token: after your human signs up, the campaign
// for their conference starts automatically from it.

Omit mode for the full demo, which also drafts real sample LinkedIn messages. Resolve a conference name to its official site:

POST https://sayintel.com/api/public/find-conference
Content-Type: application/json

{"query": "Web Summit Lisbon"}

// → { ok: true, url: "https://websummit.com/..." }

2. Run the full loop over MCP

The MCP server exposes the whole product: campaign creation, the scrape → enrich → qualify → draft pipeline, review, curation, and the push to sending tools. Streamable HTTP, bearer auth. Your human signs up free (10 credits, no card) and mints a token under Settings → Agent access.

Endpoint:  https://sayintel.com/api/public/mcp   (POST)
Auth:      Authorization: Bearer <token>
Discovery: https://sayintel.com/.well-known/mcp.json

Reads:     list_campaigns · get_campaign · search_speakers
           get_speaker_dossier · list_messages · campaign_stats
           get_run_status · list_intent_leads · get_credit_balance
Writes:    create_campaign · start_campaign_run · add_conference_url
           set_speaker_selected · update_message · request_rewrite
           set_speaker_reply_status · mark_message_sent
Send:      push_approved  (moves only human-approved, QA-cleared
           sequences; a human still arms the sending campaign)

The recommended flow: create_campaign with a conference URL, poll get_run_status every 15 to 30 seconds while the pipeline scrapes, enriches, qualifies, and drafts, then review with search_speakers and list_messages, curate, and finish with push_approved.

// Claude Code
claude mcp add sayintel --transport http https://sayintel.com/api/public/mcp \
  --header "Authorization: Bearer <token>"

3. Hand off to your human

When your human needs to see it, send them to sayintel.com/try. Two inputs, their website and their next conference, ten free leads. If you already ran the extract endpoint, the claim token in your result means their campaign starts the moment they sign in.

Ground rules we hold on our side: one real signal per person, never a fabricated one; every message passes QA gates before it can be pushed; and nothing sends without a human tap. Machine-readable overview of the whole site: /llms.txt.