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.
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
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.
Cross-tool deduplication
When the same information lives in Notion and Confluence, Stacklink surfaces the canonical version and links to both.
Permission-aware results
Results respect your existing access controls. Engineers see engineering docs. HR sees HR docs. No data leaks across teams.
Real-time index updates
When someone edits a Google Doc, the index updates within minutes. Always current, never stale.
Search analytics
See what your team is searching for and what they're not finding. Identify documentation gaps before they slow people down.
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
Matches the literal token. Good for symbols, ids, env-vars.
- L184-L186platform/billing/invoice.ts
const ref = invoice.legacy_id ?? invoice.id; - L41platform/billing/reconcile.ts
if (row.legacy_id) seen.add(row.legacy_id); - L97platform/billing/dunning.ts
logger.warn({ legacy_id: row.id }); - L92support-bot/router.ts
return resolveCustomer(input.legacy_id);
Semantic recall
Same intent · renamed equivalents
Matches the idea. Surfaces renamed-but-equivalent code in sibling repos.
- L18-L52platform/migration/backfill.ts
export async function portOldCustomerIds(batch) { ... - L210-L244data/pipelines/customers.py
def map_pre_v2_account_ref(row): ... - L118-L140services/billing-go/cmd/migrate.go
func RewriteLegacyHandles(ctx context.Context) ... - L7platform/admin/rollback.ts
// The migration helper — keep until Q4.
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.
billing/invoice.ts@abcd123:L184-L186Mon 09:14
abcd123
feat(billing): legacy_id helpers
Mon 14:02
d91f704
fix: null-guard reconcile
Tue 11:47
— rewritten —
force-push: rebased onto main
Tue 12:01
7c1be20
new tip after rewrite
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.
service_accountServiceAccountservice_account_idSolid edges are co-references with high confidence. The dashed edge is a candidate match — surfaced, never auto-applied.
Index freshness
A merge becomes searchable without a manual re-crawl. The push you just merged is queryable while CI is still running.
First-result feel
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