Callers is an AI-powered call center platform that enables organizations to manage voice calls, chat campaigns, and customer contacts through automated AI agents. The platform integrates with multiple AI providers (OpenAI, Anthropic), voice and telephony carriers (Twilio, Jambonz), speech services (Deepgram, Google TTS), and vector search (Qdrant) to deliver intelligent, automated customer interactions.
Core capabilities include AI-driven call handling (automated voice conversations powered by LLMs and text-to-speech), campaign management (outbound call and chat campaigns with contact list targeting), a knowledge base (vector-search-backed retrieval that feeds AI agents during live conversations), workflow orchestration (configurable call flows and automation via Temporal), and multi-organization support (tenant-based architecture with role-based access control).
Project structure: The codebase is a monorepo managed by Nx, written entirely in TypeScript, and uses pnpm as the package manager. The applications layer includes a Remix/React frontend (Vite, file-based routing, Tailwind CSS, Radix UI), a main NestJS REST API, a core backend with WebSocket support, an authentication service, a third-party integrations API, dedicated webhook handlers for Twilio and Jambonz voice carriers, a trigger and workflow engine, and several background workers handling call queuing, chat processing, shared tasks, notification delivery, and search indexing.
Domain libraries each follow a consistent internal structure: service → repository → DTO → entity → exception. Business domains cover calls, campaigns, contacts, organizations, GPT integration, the knowledge base, workflows, and users. Infrastructure libraries handle data access (Prisma over MongoDB), the frontend HTTP layer (api-client), shared utilities and types, JWT-based authentication guards, Kafka, Redis, and Temporal.
Data flow: The frontend (Remix) communicates through the api-client library to the NestJS API and backend, which delegates to domain libraries for business logic, ultimately persisting through the data-access layer (Prisma to MongoDB). Kafka handles event streaming between services, Temporal orchestrates workflows, Redis manages caching and state, and JWT secures authentication.
Tech stack summary: Remix, React, Vite, Tailwind CSS, and Radix UI on the frontend; NestJS with WebSockets on the backend; MongoDB via Prisma for persistence; Redis for caching and state; Kafka for messaging; Temporal for workflow orchestration; OpenAI and Anthropic for LLM capabilities; Twilio, Jambonz, Deepgram, and Google TTS for voice and speech; Qdrant for vector search; and Nx with pnpm for monorepo management.