ProShort AI

Live

API KEY

CALL RECORDINGS

Transcription

ProShort AI gives agents authenticated access to your call recordings: search AI-analyzed sales calls, pull transcripts and summaries, and trace a claim back to the moment it was said.

  • Per-user credentials: each search runs on the actual user's ProShort key, scoped to what they can access.
  • Encrypted per-tenant vault: AES-256, resolved at request time, never in LLM context.
  • Scoped before every call: pre-call scope check, 90-day SIEM-exportable audit chain.
ProShort AI
agent · Acme Q3
Run
What did the customer say about pricing on the Acme calls this month?
S
proshortai_recordings_search
88ms
ProShort AI agent
3 Acme calls mention pricing. Main concern: annual commitment. Two asked for monthly, one for a pilot before committing.
Recordings: 3 matched
proshortai
3 calls
18:29
Message Claude...

Tools your sales agent reaches for in ProShort AI, scoped per user.

CALL ANY TOOL
Work call recordings end to end: search AI-analyzed calls, pull individual recordings, and read transcripts and summaries in bulk or one at a time.
proshortai_recordings_get
Recordings get
Retrieve full detail for a single ProShort meeting recording by its document_id (typically obtained from Search Recordings): title, scheduled time, platform, attendees, prospect company, AI-generated overview, transcript, and media URLs. Use the projections parameter to request only the fields you need and keep the response small : this matters especially for the (potentially large) transcript field.
Parameters
Name
Type
Required
Description
meeting_id
string
Required
The recording's unique identifier (document_id), e.g. as returned by Search Recordings or Bulk Get Recordings.
projections
string
Optional
Comma-separated list of fields to include in the response, to minimize payload size. Omit to receive all fields. Valid field names: document_id, event_title, source, scheduled_at, meeting_platform, meeting_participants, parties, prospect_company_name, transcript, thumbnail_url, gcp_public_url, overview.
proshortai_recordings_search
Recordings search
proshortai_recordings_get_v1
Recordings get v1
proshortai_recordings_bulk_get
Recordings bulk get
proshortai_recordings_get_v2
Recordings get v2
Build your Agent
Same auth pattern across LangChain, OpenAI, Anthropic, and Google ADK.
Python · LlamaIndex
import { ScalekitClient } from "@scalekit-sdk/node";
import { createReactAgent } from "@langchain/langgraph/prebuilt";

const sk = new ScalekitClient(env.SCALEKIT_ENV_URL, env.SCALEKIT_CLIENT_ID, env.SCALEKIT_CLIENT_SECRET);

// ProShort AI tools scoped to this user
const { tools } = await sk.tools.listScopedTools("user_123", {
  filter: { connectionNames: ["proshortai"], toolNames: [
    "proshortai_recordings_get",
    "proshortai_recordings_search",
    "proshortai_recordings_get_v1"] },
  pageSize: 100,
});

const agent = createReactAgent({ llm, tools });
await agent.invoke({ messages: [{ role: "user", content: "What did the customer say about pricing on the Acme calls this month?" }] });
import OpenAI from "openai";
import { ScalekitClient } from "@scalekit-sdk/node";

const sk = new ScalekitClient(env.SCALEKIT_ENV_URL, env.SCALEKIT_CLIENT_ID, env.SCALEKIT_CLIENT_SECRET);
const openai = new OpenAI();

const { tools } = await sk.tools.listScopedTools("user_123", {
  filter: { connectionNames: ["proshortai"] }, pageSize: 100,
});

const res = await openai.chat.completions.create({
  model: "gpt-5",
  messages: [{ role: "user", content: "What did the customer say about pricing on the Acme calls this month?" }],
  tools,
});

// Execute the tool call with the user's vaulted ProShort AI credential
await sk.tools.executeTool(res.choices[0].message.tool_calls[0], "user_123");
import Anthropic from "@anthropic-ai/sdk";
import { ScalekitClient } from "@scalekit-sdk/node";

const sk = new ScalekitClient(env.SCALEKIT_ENV_URL, env.SCALEKIT_CLIENT_ID, env.SCALEKIT_CLIENT_SECRET);
const anthropic = new Anthropic();

const { tools } = await sk.tools.listScopedTools("user_123", {
  filter: { connectionNames: ["proshortai"] }, pageSize: 100,
});

const msg = await anthropic.messages.create({
  model: "claude-sonnet-5",
  max_tokens: 1024,
  messages: [{ role: "user", content: "What did the customer say about pricing on the Acme calls this month?" }],
  tools,
});

// Tool call runs with the user's vaulted ProShort AI credential
await sk.tools.executeTool(msg.content, "user_123");
import { Agent } from "@google/adk/agents";
import { ScalekitClient } from "@scalekit-sdk/node";

const sk = new ScalekitClient(env.SCALEKIT_ENV_URL, env.SCALEKIT_CLIENT_ID, env.SCALEKIT_CLIENT_SECRET);

const { tools } = await sk.tools.listScopedTools("user_123", {
  filter: { connectionNames: ["proshortai"] }, pageSize: 100,
});

const agent = new Agent({
  name: "proshortai_agent",
  model: "gemini-2.5-pro",
  instruction: "Manage ProShort AI for the signed-in user.",
  tools,
});

await agent.run("What did the customer say about pricing on the Acme calls this month?");
Try these prompts
Copy any prompt into your agent. Each maps directly to a ProShort AI tool. Click to copy, paste into your agent, done.
Search calls
Copy the prompt
Copied
What did customers say about pricing this month?
Copy the prompt
Copied
Find calls where a competitor came up.
Copy the prompt
Copied
Which Acme calls discussed the security review?
Pull a recording
Copy the prompt
Copied
Summarize the last Acme call.
Copy the prompt
Copied
Get the transcript for recording 8821.
Copy the prompt
Copied
What objections came up on this call?
Roll up
Copy the prompt
Copied
Bulk-pull summaries for this week's calls.
Copy the prompt
Copied
What are the top objections across my calls?
Copy the prompt
Copied
Which calls have follow-ups I never sent?
SEE HOW AUTH WORKS
Your users connect once. Their ProShort AI credentials stay vaulted, every call is scope-checked, and every action is logged.
1
Authorize
Your user connects
ProShort AI
once. We tie it to their identity and the meetings they approved — no shared bot account, no org-wide access
Who:
user ‘A’
when:
Once per user
access:
Limited to user
2
Store
Their
ProShort AI
token lives in a vault scoped to them. User A's meetings are never reachable by an agent acting for user B, even on the same connection
vault:
encrypted
scope:
per-user
tokens:
auto-refreshed
3
Resolve
When your agent calls a
ProShort AI
tool, we fetch the right token server-side. It never touches your agent, never appears in the LLM context, never shows up in your logs
speed:
~40ms
check:
before every call
seen by:
nobody
4
Audit
Every
ProShort AI
tool call is logged — who triggered it, which meeting was fetched, what came back. 90 days of history, tied to the user who authorized it
history:
90 days
export:
SIEM-ready
logged:
every call
Test other agents
See the same per-user auth pattern across other transcription connectors.
People Ops and HR teams
New Hire Provisioning Agent
Open-source Python template. Creates or detects the hire in Deel, provisions their Workspace account, builds the Notion onboarding page, posts the welcome.
People Ops and HR teams
PTO & Leave Request Agent
Open-source Python template. Resolves the employee in Deel, validates against their real entitlement, submits the request for approval, blocks the calendar.
Engineering Teams
Incident Response Agent
Open-source Python template. Triggers the PagerDuty page, opens the Jira incident, notifies the on-call Slack channel, and drafts the Confluence postmortem.
GTM and RevOps Teams
Competitive intelligence briefing agent
Scans Gong calls for competitor mentions, matches each one to its Notion battlecard, and DMs every affected rep a single Slack digest per cycle. Every call runs as the PMM who owns the briefing, never a shared bot.
Test other agents
See the same per-user auth pattern across other transcription connectors.
SALES
Sales call prep agent
Read tomorrow's calls from Google Calendar, mine Granola notes and Attio history, and deliver each rep a prep brief in Slack.
SALES
Deal intelligence agent
Score Gong call risk with an LLM, cross-reference the Attio record, and DM each owner their at-risk deals in Slack.
Why Scalekit
Secure your agent's access. Connectors ship in minutes
01.
A shared key exposes every rep's calls
A shared ProShort key looks fine in a demo. In production it means one agent can read every recorded call, including deals the asker was never on. Scalekit resolves the credential of the actual user who triggered the agent, never a shared bot.
// shared token
audit → bot_service_account

// scalekit
audit → user_abc ✓
02.
Authentication is not authorization
03.
Multi-tenancy is architectural
04.
ProShort AI today. Ten connectors tomorrow.
“Our agents act across Salesforce, Gong, Google Drive, and more, on behalf of every customer. Scalekit behind the scenes meant we can keep adding tools without ever rebuilding how credentials or tool calling work.”
Venu Madhav Kattagoni
Head of Engineering / Von
FAQs
Frequently Asked Questions

Does the agent access ProShort AI as the user or as a shared key?
As the user. Each workspace member authorizes once and Scalekit resolves their credential at request time. Audit logs attribute every action to that user, not a shared service account.

Where is the ProShort AI API key stored?
In Scalekit's managed AES-256 token vault, namespaced per tenant. Refresh is automatic. Revocation is a single dashboard action. Tokens never appear in prompts, logs, or LLM context.

Can I limit what the agent is allowed to do in ProShort AI?
Yes. Pass a tool name filter to listScopedTools so the meeting notes agent only sees the subset you authorize. Pre-API-call scope checks block out-of-policy actions before the request reaches ProShort AI.

What happens when a user revokes ProShort AI access?
The connection is invalidated on the next tool call. Subsequent requests for that user fail closed with a clear error. Other users in the tenant remain unaffected. The event is logged for audit.

Does the agent respect ProShort AI permissions?
Yes. Every call runs as the authorizing user. Native roles, sharing settings, and scope restrictions in ProShort AI apply to each request, and actions log to the audit chain.

Start in your coding agent
Up and running in one command
Install the Scalekit skill in your editor of choice. Connector, auth, tools, prompt, all wired up
Claude Code REPL
/plugin marketplace add scalekit-inc/claude-code-authstack
/plugin install agentkit@scalekit-auth-stack
Cursor Code REPL
# ~/.cursor/mcp.json
{
""mcpServers"": {
""proshortai"": {
""url"": ""https://mcp.scalekit.com/proshortai"",
""headers"": { ""Authorization"": ""Bearer $SCALEKIT_TOKEN"" }
}
}
}
Codex Code REPL
# ~/.codex/config.toml
[mcp_servers.proshortai]
url = ""https://mcp.scalekit.com/proshortai""
auth_env = ""SCALEKIT_TOKEN""
Copilot Code REPL
# .vscode/mcp.json
{
""servers"": {
""proshortai"": {
""url"": ""https://mcp.scalekit.com/proshortai"",
""type"": ""http""
}
}
}