Inspiration

What it does

How we built it

Challenges we ran into## Inspiration

Every nonprofit struggles with the same invisible problem: volunteer turnover caused by poor onboarding. New volunteers arrive excited, get handed a PDF handbook, and within weeks they're gone — confused, unsupported, and never fully integrated. Small NGOs have no budget for dedicated HR or onboarding coordinators. The knowledge lives in one person's head, and when that person is unavailable, new volunteers are stuck.

Onboard was built to solve this. If Slack is already where nonprofit teams communicate, why not make it where volunteers learn too?

What it does

Onboard is a Slack-native AI volunteer onboarding agent for nonprofits. It gives every new volunteer instant, intelligent support — no waiting, no digging through documents.

Key features:

  • Ask anything: Volunteers mention @Onboard with any question and get accurate, handbook-sourced answers instantly
  • MCP-powered doc retrieval: Uses ChromaDB vector search to semantically retrieve the most relevant handbook sections for each question
  • Real-Time Search (RTS): Searches the workspace for relevant past conversations to enrich answers with live organizational context
  • Progress tracking: Every volunteer's questions are logged by topic, building a personal onboarding profile visible via /mystats
  • Daily check-in DMs: APScheduler sends personalized spaced-repetition review questions every morning based on each volunteer's weak topics
  • App Home dashboard: A persistent home tab shows each volunteer's onboarding progress, topics covered, and recent questions
  • Block Kit UI: Every response uses structured Slack Block Kit — no walls of text, just clean interactive cards

How we built it

Built with Python using the Slack Bolt SDK in Socket Mode. ChromaDB handles semantic vector search over the volunteer handbook (MCP layer). The Slack Search API provides real-time workspace context. Groq's llama-3.3-70b-versatile powers the AI responses. SQLite tracks per-volunteer progress. APScheduler handles the daily check-in job. Everything runs as a single Python application — no external hosting required for development.

Tech stack: Python, Slack Bolt SDK, ChromaDB, Sentence Transformers, Groq API, SQLite, APScheduler, Slack Block Kit, Slack Real-Time Search API

Challenges we ran into

The Slack search API requires user-level OAuth tokens rather than bot tokens — discovering this mid-build required adding a new OAuth scope and user token flow. ChromaDB chunking strategy needed significant tuning; the initial approach split by paragraph which caused the RAG to miss program-specific content. Switching to section-header-based chunking fixed retrieval accuracy dramatically. Socket Mode simplified development but required careful token management across the sandbox environment.

Accomplishments we're proud of

All three hackathon technologies — MCP server integration, Real-Time Search API, and Slack AI capabilities — are genuinely used and each serves a distinct purpose in the architecture. The spaced repetition daily check-in system is the most novel feature: it turns passive Slack usage into an active learning loop for volunteers.

What we learned

Building natively in Slack changes the UX calculus entirely. Block Kit forces you to design for scannability, not reading. The constraint made the product better. We also learned that for nonprofit use cases, the impact story needs to be concrete — "reduces volunteer turnover" is measurable in a way that "improves onboarding" is not.

What's next for Onboard

Multi-org support so a single Onboard instance can serve multiple NGO workspaces. Integration with Google Drive to automatically index volunteer handbooks without manual upload. Analytics dashboard for NGO coordinators showing volunteer engagement and knowledge gaps across the whole team.

Accomplishments that we're proud of

What we learned

What's next for Onboard — AI Volunteer Onboarding Agent

Built With

  • apscheduler
  • chromadb
  • groq
  • mcp
  • python
  • real-time-search-api
  • sentence-transformers
  • slack-block-kit
  • slack-bolt-sdk
  • sqlite
Share this project:

Updates