Project Overview
What Is Epok Advisor?
Epok Advisor is a web application for Epok Advice, a consulting business run by Kendra Thompson that helps financial advisors improve their practices.
The platform guides advisors through a structured engagement process — from intake questionnaires through facilitated workshops to AI-enriched report delivery — with a growing knowledge base that improves every engagement.
Live at: https://epok-advisor.netlify.app Repo: https://github.com/bunswoDS/epok-advisor (private, auto-deploys to Netlify on push)
Core Value Proposition
- For Kendra: A streamlined, repeatable process to manage advisor engagements, run workshops, and deliver high-quality reports — with AI assistance at every step
- For Advisors: A guided experience that feels personal and produces actionable, well-researched advice
- For the System: A growing knowledge base of industry information that improves over time as more advisors go through the process
What's Built
Engagement Management
- Create and manage advisor engagements with a 6-step milestone tracker (Intake → Discovery → Workshops 1-3 → Complete)
- Tabbed engagement detail view: Overview, Documents, Questionnaires, Analysis
- Engagement-scoped documents and folders
- Member management with role-based access
Knowledge Base
- Hierarchical folder system with nested folders, document tagging, and search
- TipTap WYSIWYG markdown editor with rich view/edit and raw markdown toggle
- Content versioning: draft → published → archived lifecycle
- Inbox folder for new/unfiled content
- "File to Engagement" workflow to move KB docs into engagement scope with milestone tagging
- Auto-embed on publish for AI search
Questionnaires
- Template builder with versioned question sets (text, textarea, select, multi-select, scale, yes/no)
- Response collection tied to engagements with respondent types (interviewer, client, agent)
- AI-assisted answer filling from engagement context
AI Features
- Chat Panel: Slide-out panel with RAG-powered chat (Claude Sonnet default, GPT-4o available)
- Document Embeddings: OpenAI text-embedding-3-small with pgvector HNSW index, cosine similarity search
- Analysis Tab: Per-engagement AI analysis with @-mention prompt editor for document references, streaming LLM execution, and iterative refinement
- Agent Tools: 12+ tools for searching KB, reading/creating documents, managing engagements — accessible via REST API, MCP, and the chat panel
External Integrations
- Otter.ai → Zapier → Ingest API: Auto-ingests meeting summaries and transcripts into KB Inbox
- Email: Resend-powered notifications (questionnaire requests, document sharing, content updates)
- Google Docs Export: OAuth-connected per-user Google Docs creation with folder picker
- Gamma Export: Send documents to Gamma as presentations, documents, or webpages via their API
- Copy/Export Menu: Markdown, plain text, rich text clipboard copy + Gamma + Google Docs
External API & AI Agent Access
- REST API (
/api/v1/tools): Execute any agent tool via HTTP — used by ChatGPT Actions - MCP Server (
/api/mcp): JSON-RPC 2.0 endpoint for Claude desktop/mobile - OAuth 2.1: Full authorization server with dynamic client registration, PKCE — connects ChatGPT and Claude natively
- API Keys:
epok_sk_...format, SHA-256 hashed, manageable from admin UI - OpenAPI Spec: Auto-generated at
/api/v1/openapi.json
Key Concepts
- Engagement — One advisor going through the Epok process, with milestones, documents, questionnaires, and analyses
- Milestone — A step in the engagement lifecycle (Intake, Discovery, Workshop 1-3, Complete) with corresponding tags for document classification
- Knowledge Base — Global library of themes, data points, templates, prompts, and reference material organized in folders with tags
- Content Document — A versioned markdown document, either global (KB) or engagement-scoped, with folder placement and tag classification
- Analysis — An AI-generated document produced from a prompt that references engagement documents, with streaming LLM execution and refinement
- Questionnaire — A versioned template of structured questions, with responses tied to specific engagements
Who Uses This System?
| Role | Description |
|---|---|
| Super Admin (Kendra, Ben) | Full access — manages engagements, KB, questionnaires, users, AI analysis, exports |
| Associate | Assigned to specific engagements — can edit engagement content, process notes, draft reports |
| Client Primary (Advisor) | Portal access to their engagement — fills questionnaires, views published content, uploads docs |
| Client Member | Same as Client Primary but cannot invite others |
| AI Agents (ChatGPT, Claude) | Access tools via REST API or MCP — search KB, read/write documents, manage engagements |