Stacklink
Stacklink

Use Case

One search bar for your entire company

Stop switching between 12 tabs. Ask a question in plain English and get the answer — with the source doc — in seconds.

Read-only accessEU hostedEncrypted in transit & at rest

Unified access

Search across Drive, Notion, GitHub, Confluence, and OneDrive from a single interface.

Semantic understanding

Our AI understands what you mean, not just what you type. Find results even when you can't remember the exact words.

Source citations

Every answer links back to the original document, message, or page — so you can verify and dive deeper.

The average knowledge worker spends 9.3 hours per week searching for information. Stacklink gives that time back.

Capabilities

How it works for enterprise ai search

01

Natural language queries

Ask questions the way you'd ask a colleague. "What's our refund policy?" returns the exact policy doc with the relevant section highlighted.

02

Cross-tool deduplication

When the same information lives in Notion and Confluence, Stacklink surfaces the canonical version and links to both.

03

Permission-aware results

Results respect your existing access controls. Engineers see engineering docs. HR sees HR docs. No data leaks across teams.

04

Real-time index updates

When someone edits a Google Doc, the index updates within minutes. Always current, never stale.

05

Search analytics

See what your team is searching for and what they're not finding. Identify documentation gaps before they slow people down.

06

Keyboard-first design

Cmd+K to search, arrow keys to navigate, Enter to open. Built for people who live in their keyboard.

Inside the index

Three details staff engineers ask about before they trust it.

The pitch is hybrid recall, a symbol graph, and permalinks that survive history rewrites. Here is what each of those actually looks like when you run a query.

One query — where do we still rely on the old customer reference? — split into two recall passes.

Keyword recall

Exact symbol · 4 callsites

token

Matches the literal token. Good for symbols, ids, env-vars.

  • platform/billing/invoice.ts
    const ref = invoice.legacy_id ?? invoice.id;
    L184-L186
  • platform/billing/reconcile.ts
    if (row.legacy_id) seen.add(row.legacy_id);
    L41
  • platform/billing/dunning.ts
    logger.warn({ legacy_id: row.id });
    L97
  • support-bot/router.ts
    return resolveCustomer(input.legacy_id);
    L92

Semantic recall

Same intent · renamed equivalents

idea

Matches the idea. Surfaces renamed-but-equivalent code in sibling repos.

  • platform/migration/backfill.ts
    export async function portOldCustomerIds(batch) { ...
    L18-L52
  • data/pipelines/customers.py
    def map_pre_v2_account_ref(row): ...
    L210-L244
  • services/billing-go/cmd/migrate.go
    func RewriteLegacyHandles(ctx context.Context) ...
    L118-L140
  • platform/admin/rollback.ts
    // The migration helper — keep until Q4.
    L7

02 · Permalinks

A force-push rewrites history. The reference still resolves.

We pin every match to the commit SHA at index time, plus the line range. When the branch tip moves — even violently — the permalink keeps pointing at the lines you read.

Permalinkbilling/invoice.ts@abcd123:L184-L186
  1. Mon 09:14

    abcd123

    feat(billing): legacy_id helpers

  2. Mon 14:02

    d91f704

    fix: null-guard reconcile

  3. Tue 11:47

    — rewritten —

    force-push: rebased onto main

  4. Tue 12:01

    7c1be20

    new tip after rewrite

  5. now

    7c1be20

    branch tip

The permalink stays bound to abcd123 — the SHA captured at index time.

The rewrite changes the branch tip. Your reference doesn’t change with it.

03 · Symbol graph

Three spellings. One cluster.

The graph reconciles names across languages — a camel-case Go struct, a snake-case TypeScript field, a column on a migration. One concept, one cluster, jumped between repos without regex.

  • 01Edges are inferred, not declared. No annotation work.
  • 02Renames preserve the cluster — old SHA still navigable.
  • 03One click jumps to any node’s commit-pinned permalink.
cluster · service-account
3 nodes · 3 edges
service_account
TypeScript
ServiceAccount
Go
service_account_id
SQL

Solid edges are co-references with high confidence. The dashed edge is a candidate match — surfaced, never auto-applied.

Index freshness

Webhook-drivendelta-indexed

A merge becomes searchable without a manual re-crawl. The push you just merged is queryable while CI is still running.

First-result feel

Streamingtyped-ahead

Exact-match results appear first; meaning-based candidates fold in before the dropdown opens.

Ready to unify your knowledge?

Join the waitlist to be first in line when we launch.

No credit card requiredSetup in 5 minutes