AI-Powered Company Knowledge Base Search in Mobile Applications
Corporate mobile tool with AI search is a different class of problem compared to a user-facing chatbot. Thousands of employees, confidential data, roles and permissions, documents from different systems (Confluence, SharePoint, Notion, Jira), content freshness. Simply plugging in RAG isn't enough.
Data Sources and Their Characteristics
Corporate knowledge base rarely lives in one place:
- Confluence — articles, regulations, technical documentation. REST API, webhooks for changes
- SharePoint / OneDrive — Word, Excel, PDF documents. Microsoft Graph API
- Notion — notes, projects, databases. Notion API
- Jira / Linear — tickets, comments, task descriptions
- Internal Wiki — often legacy with non-standard APIs
Each source needs a separate connector: authorization, document fetching, change tracking (delta sync), old vector deletion.
Most difficult — delta sync. Can't re-index all 50,000 documents every night. Only fetch changed docs since last sync. Confluence and Notion support webhooks — preferred. SharePoint — Microsoft Graph change notifications.
Access Control: The Hardest Part
Employee shouldn't access documents through AI search that they can't access directly. Legally and technically critical.
Two approaches:
Permission-aware indexing. Store document ACL (Access Control List) in vector metadata during indexing. Filter by user's permissions during search.
# During indexing
metadata = {
"document_id": doc_id,
"allowed_users": ["user_1", "user_5"], # or
"allowed_groups": ["engineering", "hr"], # or
"visibility": "public"
}
During search, pass user groups as filter. Problem: when document permissions change, must update metadata for all related chunks — expensive operation.
Query-time permission check. Search top-50 candidates without filter, then check each one's permissions through original system (Confluence API, SharePoint), return only allowed. Slower (N+1 API calls), but permissions always current.
For production, recommend hybrid: rough filtering by groups during search + fast permission check for top-10 results.
Mobile UI for Corporate Search
Corporate user primarily wants to understand where answer came from and when document was updated. UI must show:
- AI answer with citations (highlighted text snippets from documents)
- Source cards: system icon (Confluence/Notion/SharePoint), document name, author, update date, "Open original" button
- Confidence score (not a number, but "High/Medium/Low" relevance)
- "Didn't find answer" button for support ticket creation
Search should handle typos and imprecise phrasing — achieved by combining vector search (resilient to rephrase) and fuzzy BM25 (resilient to typos).
Content Freshness: TTL and Re-indexing
Stale answer is worse than no answer. If regulation changed but index didn't — AI gives wrong instruction. Mechanisms:
-
TTL for chunks: documents older than N days marked stale, priority lowered via metadata filter
{"updated_at": {"$gte": threshold}} - Webhooks from sources: immediate re-indexing on change
- Scheduled resync: daily checksum check for changes without webhooks
On mobile — show source's last update date next to each result.
Usage Analytics
Corporate tool requires analytics: what questions asked, which have no answers, which documents most used. Helps knowledge editors fill gaps.
Log each search: query, found sources, user rating (thumbs up/down). Admin dashboard with "found answer / didn't find" top questions.
Implementation Timeline
Inventory data sources and APIs → design permission schema → develop connectors and delta sync → ingestion pipeline → search with permission filtering → mobile UI → analytics → pilot with employee group → full rollout.
MVP with one source (e.g., Confluence only), basic search, mobile app — 5–7 weeks. Full system with 3–5 sources, permissions, analytics — 3–5 months.







