Skip to content

Index company knowledge across tools with Onyx for AI search

pattern

Company knowledge is scattered across Zendesk, Linear, Slack, GitHub, and docs with no unified search

ragknowledge-baseonyxsearchenterprise
15 views

Problem

Company knowledge lives in dozens of disconnected tools. Support answers are in Zendesk, engineering context is in Linear and GitHub, decisions happen in Slack threads, and documentation sits in Notion or Confluence. When someone needs to find information, they must search each tool individually, often missing relevant context that lives in a different silo. Traditional keyword search fails to surface semantically related content across these boundaries.

This fragmentation causes:

  • Duplicated answers to the same questions across different channels
  • Lost institutional knowledge buried in Slack threads
  • New team members unable to find existing solutions
  • Engineers asking the same questions that support has already documented

Solution

Deploy Onyx (onyx.app) to index all your knowledge sources and provide AI-powered semantic search across the entire company.

Step 1: Deploy Onyx with Docker

git clone https://github.com/onyx-dot-app/onyx.git
cd onyx/deployment/docker_compose
docker compose -f docker-compose.dev.yml up -d

Step 2: Connect your data sources in the Onyx admin panel

Navigate to http://localhost:3000/admin/connectors
Add connectors for each knowledge source:

- Zendesk: API token + subdomain for tickets and help articles
- Linear: OAuth token for issues and project documents
- Slack: Bot token with channels.history scope
- GitHub: Personal access token for repos, issues, and PRs
- Notion/Confluence: Integration token for documentation pages

Step 3: Create a Slack channel for AI-powered questions

1. Add the Onyx Slack bot to your workspace
2. Create a #ask-ai channel
3. Configure the bot to respond in that channel
4. Team members ask questions in natural language:

  "When does the McDonald's contract expire?"
  "What was the decision on the new auth provider?"
  "How do I configure the staging environment?"

Step 4: Use the API for programmatic access

import requests

response = requests.post(
    "http://localhost:3000/api/query",
    json={
        "query": "What is the refund policy for enterprise customers?",
        "filters": {
            "source_type": ["zendesk", "notion"],
        },
    },
    headers={"Authorization": "Bearer your-api-key"},
)

results = response.json()
for doc in results["documents"]:
    print(f"[{doc['source']}] {doc['title']}: {doc['snippet']}")

Why It Works

Onyx indexes documents from each connected source into a unified vector store. When a user asks a question, Onyx performs semantic search across all indexed content, retrieves the most relevant passages, and uses an LLM to synthesize an answer with citations. Because it searches semantically rather than by keyword, it can find answers even when the question uses different terminology than the source document. Self-hosting means sensitive company data stays within your infrastructure.

Context

  • Onyx is open source and can be self-hosted, unlike Glean which is a paid SaaS competitor
  • Indexing runs on a schedule; new content is typically searchable within hours
  • The Slack integration is the highest-leverage setup because it meets people where they already ask questions
  • For law firms or document-heavy organizations, Onyx can index contracts and policy documents for natural language querying
  • Pair with Retool to build custom admin dashboards on top of the Onyx search API
About this share
Contributormblode
Repositorymblode/shares
CreatedFeb 10, 2026
View on GitHub