Your workspace, as a live process graph.
Five stages, one tenant-scoped graph. Each stage is auditable. Each stage is permission-aware. Each stage is reversible.
Five stages, from raw event to drafted action.
Connector ingest
stage_01 · ingest_laneA read-only event stream from each connector lands in a tenant-scoped queue. Pulse never copies private content into shared infra. Per-tenant encryption keys; BYOK on the Scale tier.
// per-tenant ingest lane (read-only) stream slack.events → "pulsehq.ingest.slack" // 4.2k/min stream github.webhooks → "pulsehq.ingest.github" // 91/min stream notion.delta → "pulsehq.ingest.notion" // 38/min stream linear.events → "pulsehq.ingest.linear" // 17/min stream calendar.changes → "pulsehq.ingest.cal" // 6/min // retention: 30d hot · 365d cold (configurable) // encryption: per-tenant DEK · KMS-rotated · BYOK on Scale // rate limits: respected upstream · backoff on 429
- ▸Read-only, every connector. Pulse never writes back during ingest. Action surface is a separate, scoped credential.
- ▸ACL captured at the source event. A Slack message’s channel ACL travels with it through every downstream stage.
- ▸Idempotent re-ingest. Disconnect, reconnect, and Pulse picks up where it left off. No duplicate entities.
The structural choices, side by side.
Most enterprise-search products are built around a doc graph and a vendor-level trust contract. Pulse picks a different model on each axis.
Built on permission, not against it.
If you can’t see it in Slack, you can’t see it in Pulse. Three structural guarantees, not three policies.
Source-system ACLs, mirrored.
Pulse never expands access. A Slack DM you couldn’t see is invisible in retrieval, Pulse knows it exists, surfaces a request-access flow, never leaks the body.
Pre-decisional context, scoped.
Mark a thread or doc as confidential. Pulse helps you think but doesn’t remember, no embedding, no extraction, no surfacing to anyone else.
“Forget this” is a first-class action.
Mark anything forget and it’s purged from the index. Auditable that it was forgotten; gone from retrieval, gone from synthesis.
Every employee sees what Pulse knows.
A built-in dashboard at /me shows every entity Pulse has extracted about you. Exportable. Deletable for non-shared content.
tenant_id is a primary key, not a filter.
Cross-tenant query is a runtime impossibility, not a policy. Storage, embeddings, and KMS keys are partitioned. BYOK on Scale.
Every retrieval, every action, logged.
Configurable retention windows. Audit-log export as JSON or Parquet today; SIEM webhook streaming on the Enterprise roadmap.
The four bets that shape every surface.
Pulse looks the way it does because of these four structural choices. Each one constrains a hundred small decisions inside the product.
Permission-aware, never expanding.
Every retrieval, Ask, Search, briefings, agent drafts, passes through visibleDocumentIds() before it returns. We mirror Slack/GitHub/Notion ACLs into the graph at sync time and enforce them at retrieval time. There is no path that bypasses this filter.
Process graph, not doc graph.
Decisions, commitments, features, failure cases and bottlenecks are first-class entities, not pages waiting to be re-extracted at query time. The graph is the differentiator; the chat box on top is the easy part.
Memory ages on a curve.
Each topic category has a half-life. Pricing decays in 30 days; mission decays in 5 years. Retrieval respects the curve and an 'older than typical' caveat surfaces on the answer when the source is past its half-life.
Calm by default.
Pulse never paints individuals as the problem. Bottleneck detection is stage-level, not person-level. Briefings are role-curated, not all-staff. Agent actions wait for your nod and undo themselves on demand. The product is opinionated about restraint.
From signup to first agent action: about 30 minutes.
Fast enough to roll out mid-sprint, at 5 people or 500. The 30-minute founder interview is what makes Pulse work for software teams.
Connect Slack + GitHub
OAuth per workspace. Pulse starts read-only ingestion immediately. No data writes.
Founder interview
30-min conversational onboarding. Pulse learns your vocabulary, processes, and pain points.
First decisions extracted
Pulse surfaces 8–12 decisions from the last 90 days for confirmation. Edits welcome.
First drafted action
Detector loop runs overnight. First Slack-DM nudge or Linear ticket lands in the approval inbox.
30 minutes, not 30 days.
Bring three connectors and a half-hour conversation. Pulse will have a working model of your team before lunch.