Plugs into the stack you already run on.
Read-only by default, ACL-mirrored at retrieval: the permissions you grant in Slack or Drive are exactly the permissions Pulse uses, and never one byte more. Writes are a separate one-time consent per connector, and every write waits in an approval queue first.
Day-one connectors. Read-only by default, ACL-mirrored.
Each connector ingests a defined event stream, never the full export. Confidence-scored extraction lifts decisions, commitments, and features into the process graph.
Slack
Threads, channel posts, DMs (with explicit per-DM consent), and pinned messages as importance signals. Decision extraction runs on every thread; commitments lifted from “I’ll have it Friday.”
GitHub
PRs, line-anchored review comments, commits, CI workflow runs, releases. Connects as a GitHub App, so sync uses a per-install token that survives the person who connected it leaving. PR review verdicts feed Decision Memory; stuck-PR detector and CI failure clusters pull from here.
Notion
Pages, databases, comments, and database schemas. Notion's API doesn't expose per-page permissions, so connect only workspaces whose pages are safe to surface workspace-wide.
Linear
Issues, comments, sub-issues, projects, cycles. Feature-archeology threads PRs to Linear issues; Pulse drafts new tickets and status transitions through this connector.
Google Drive
Docs, sheets, slides, comments, revision history. PDFs and Office docs extracted to text. Drive `/changes` watch keeps Pulse fresh in seconds, not hours.
Jira
Issues, comments, sub-tasks, sprints, attachments. For teams running both Jira and Linear, Pulse de-duplicates the feature timeline.
Google Calendarread scope onlylive
Events, attendees, RSVP responses, conferencing links (Meet/Zoom). Powers pre-meeting briefings, RSVP-aware cadence drift detection, OOO awareness.
eventsattendeesrsvp_statusconferencing_urlavailabilityopen in demoConfluencespace-scoped oauthlive
Spaces, pages, page-level + inline comments, page restrictions. Per-page restrictions (own + inherited) mirror into Pulse's ACL rows and are enforced at retrieval.
pagesspacesinline_commentspage_restrictionsattachmentsopen in demoMeeting transcriptsapi key paste-and-golive
Granola (webhook) and Fireflies (paste an API key in Admin → Connectors). Pulse pulls decisions out of every transcript, and incremental sync keeps the gap to minutes.
decisionscommitmentsaction_itemsopen in demoGitLaboauth + refreshlive
Projects, issues, merge requests, MR/issue notes, wikis, and source code. Mirrors GitHub: MR descriptions feed decisions, code is searchable, self-managed instances connect via a base URL.
issuesmerge_requestsnoteswikiscodeopen in demoAsanaoauth + refreshlive
Tasks, projects, and comment stories with assignees and due dates. Commitments and project status lift straight from task notes; member-scoped per project.
taskscommentsattachmentsgoalsassigneesdue_datesopen in demoDropboxoauthlive
Files from your account (PDF, Word, Excel) extracted to text. Syncs incrementally, and files you delete disappear from Pulse too. Installer-scoped.
pdf_office_extractionfilesdeletionsopen in demoTrelloapi key + token pastelive
Boards, cards, card comments, and checklists. Paste an API key + user token; board membership scopes what each person sees.
cardscommentschecklistsattachmentsboardsopen in demoMonday.comoauthlive
Boards, items, column values, and updates over GraphQL. Each item renders to searchable text; board subscribers scope access.
itemscolumnsupdatesdocsopen in demoAirtablepersonal access tokenlive
Bases, tables, and records rendered to text using the schema's field labels. Connect with a read-scoped personal access token.
recordsrecord_commentstablesschema_labelsopen in demoMirooauth + refreshlive
Whiteboard text, sticky notes, text, cards, frames, concatenated per board, so brainstorm and workshop context becomes searchable.
sticky_notestextcardsframesopen in demoZoomuser oauthlive
Cloud-recording transcripts routed through the same meeting pipeline as Fireflies/Granola, decisions and action items, automatically.
transcriptsai_summariesdecisionsaction_itemsopen in demoSalesforceexternal client app oauthlive
Nine objects via SOQL, accounts through Chatter, email, and Knowledge articles, rendered to text. External Client App OAuth using your My Domain; installer-scoped to start.
accountsopportunitiescontactscasestasksnoteschatteremailsknowledgeopen in demoStriperestricted keylive
Customers, subscriptions, invoices, disputes, and seat counts as revenue signals. A per-customer page rolls up billing history; disputes feed the churn radar same-day. Admin-scoped because revenue is sensitive.
customerssubscriptionsinvoicesdisputesseatsmrr_statusopen in demoApolloapi keylive
Saved contacts and accounts for sales context, credit-capped so a sync never runs up a bill. Sequence enrollment ships as a separate approval-gated action.
contactsaccountsopen in demoZohoper-data-center oauthlive
CRM (accounts through cases and notes), WorkDrive files, Books invoices, and owner-private Mail, one connection per data center, all searchable customer context.
accountscontactsdealscasesnotesworkdrive_filesbooks_invoicesmail_privateopen in demoMicrosoft 365entra id oauthlive
OneDrive files, owner-private Outlook mail, Teams channel messages, Outlook Calendar into meetings, and the org chart, all via Microsoft Graph delta sync with self-renewing subscriptions. SharePoint site libraries are on the roadmap.
onedriveoutlook_mail_privateteams_messagescalendarorg_chartpdf_office_extractionopen in demoCanvaoauth + pkcelive
Designs and decks exported to PDF and parsed, so “find the QBR deck” actually works.
designsdeckspdf_extractionopen in demoGmailadmin domain-wide delegationlive
Workspace email via one admin connection: every mailbox syncs by SSO email, and each message stays private to its owner. (gmail.readonly is a restricted scope, CASA assessment applies to published apps.)
emailthreadsper_user_privateopen in demoClayinbound webhook (push)live
Enriched rows pushed in via a webhook, add a Clay HTTP-action that POSTs each row to your Pulse URL.
enriched_rowsopen in demo
Pulse, in every AI client you already use.
Two paths into every AI client. Load a SKILL.md tarball in any Skills-compatible tool, or point an MCP client straight at Pulse for live, permission-scoped queries with no bundle to refresh. Both live today, ACL-enforced on every call.
// claude_desktop_config.json
{
"mcpServers": {
"pulse": {
"url": "https://YOUR_PULSE_HOST/api/mcp",
"headers": {
"Authorization": "Bearer pk_live_..."
}
}
}
}
// generate the bearer token at /app/admin/api-keys
// then restart Claude Desktop. twenty-seven tools appear in the picker
// (fifteen read + seven capture + three personal-memory + two propose).
// or grab the SKILL.md tarball:
// curl -fsSL https://YOUR_PULSE_HOST/api/skills/export \
// -H "Authorization: Bearer pk_live_..." -o pulse-skills.tar.gzTwo ways to wire Pulse into your own systems.
REST API + webhooks for programmatic actions. BYOK for the privacy-first. Two paths to wire Pulse into the systems you already run.
REST API + webhooks
Fire a playbook, draft a Slack DM, request a search, get notified when an action executes. Bearer auth with your existing API key.
View API docs →BYOK · Bring your own LLM key
Route every Claude call through your own Anthropic API key, AWS Bedrock account, or Azure OpenAI deployment, on the Enterprise plan. Encrypted at rest with AES-256-GCM, decrypted only at request time. All three are self-serve from the BYOK admin.
Configure BYOK →Your AI conversations, searchable alongside your team’s work.
Claude Code sessions, Cursor chats, ChatGPT history, and Claude.ai conversations are all searchable in Ask. Every chat is private to you. No one else in the workspace can see it. No OAuth, no cloud sync; Pulse reads local files directly or takes your official export ZIP. Captured conversations land at /app/captured; opt-in auto-capture for Claude Code (a SessionEnd hook or background daemon) pushes sessions in privately as they close, while Cursor history syncs via a manual export. A quick-peek summary lives in the Operations · Captured tab.
Claude Code
Local JSONL
Sessions stored under ~/.claude/projects. Sync with the included CLI script.
Cursor
cursor-history
Export with npx cursor-history, then push via the API with visibility=private.
ChatGPT
Export ZIP
Download from Settings → Data controls → Export. Upload at /app/admin/import.
Claude.ai
Export ZIP
Download from Settings → Privacy → Export. Upload at /app/admin/import.
Source chips in Ask answers show (ai · claude-code) so you can always tell personal chat history from workspace knowledge.
The same private inbox also takes web clips from the browser extension and transcribed voice memos, both author-only by default, at /app/captured.
Benchmarks against other teams, without sharing data.
Pulse Network is opt-in benchmarking. An owner turns it on per area. Your number is worked out inside your own workspace, then blurred by a small, measured amount of random noise before it’s combined with anyone else’s. Only that blurred number ever leaves. Your raw data never does.
In this example you ship at 9w and companies your size ship at 7w. In the product, the number you see is your workspace’s real number; the comparison band is the only figure that comes from other teams.
Opt in per area.
An owner turns on each of the five areas (shipping velocity, decision cadence, support response, review cycle time, meeting load) independently. If you don't opt in, your workspace simply isn't included.
Blurred before it's shared.
A small, measured amount of random noise is added to each workspace's number before anything is combined, and a band is only published once enough workspaces have opted in. This is differential privacy, the standard used for exactly this.
Percentile bands only.
Only percentile bands (p25, p50, p75, p90) and a sample count are stored, with no link back to any workspace. There's nothing to reverse-engineer one team's real number from.
Auto-pause when too few opt in.
A comparison only appears once at least 5 workspaces have opted in. Until then you see your own number with a 'pending join' badge.
Connect three tools. Get a working brain by lunch.
Slack, GitHub, Notion is enough to bootstrap. The rest fills in over the first week.