All projects

Active Development

Klass CRM - AI Assistant

Native macOS/iOS CRM with a multi-provider, safe tool-calling AI assistant

SwiftSwiftUISwiftDataApple IntelligenceClaude (Anthropic)OpenAI
Klass CRM - AI Assistant - abstract illustration

What it does

Klass CRM is a native macOS and iOS CRM I built for my own use - contacts, companies, interactions, and follow-up tracking. The AI assistant is a subsystem I designed from scratch and layered on top. It runs a full tool-calling loop: the model can read and modify CRM records, but any write operation requires explicit user confirmation before the tool call completes. No silent edits.

The tool-calling loop

The assistant uses a standard agentic loop: send the user message to the model, receive a response that may include tool calls, execute confirmed tools, send results back, repeat until the model produces a final text response. The confirmation step sits between receiving a tool call and executing it. The UI shows the user exactly what the model wants to do - create a contact, update a field, log an interaction - and the user approves or rejects each one. This is not common in AI assistant implementations but it's the right design for a CRM where incorrect writes are a real problem.

Multi-provider abstraction

A single provider protocol abstracts over Anthropic's API, OpenAI's API, and on-device Apple Intelligence. The concrete provider is selected at runtime from a settings screen. This means the same assistant code works across all three without changes to the tool-calling loop, message history management, or UI. It also made it easy to compare model quality across providers for CRM-specific tasks.

Why native

SwiftData makes it easy to build a CRM with relational-style queries, automatic persistence, and CloudKit sync across devices. The contact model is richer than what most cloud CRM APIs expose, and I have full control over the schema. The tradeoff is that it's macOS/iOS only - which is fine since that's where I work.

Stack

SwiftSwiftUISwiftDataApple IntelligenceClaude (Anthropic)OpenAI

Want something like this built?

This is the kind of system I build for clients. Tell me what you're trying to do, and I'll give you a straight answer on whether AI is the right tool.

Book a 30-minute call