Noureddine RAMDI / Signal: an open-source AI sales intelligence platform with browser automation for enrichment

Created Mon, 04 May 2026 10:23:02 +0000 Modified Sat, 23 May 2026 20:41:27 +0000

jay-sahnan/signal

Signal is the kind of tool that surfaces when you want more control over your sales intelligence stack — especially if you’re tired of closed platforms that lock you into their AI keys and data silos. It watches the web for buying signals like funding news, hiring changes, and product launches, then enriches your company and contact data automatically with browser-driven scraping. Finally, it drafts personalized outreach and manages multi-step email sequences, all in a self-hosted package.

What signal does and how it’s built

Signal is an open-source AI sales intelligence platform focused on detecting actionable buying signals and automating outreach workflows. At its core, it monitors public and private data sources for trigger events that indicate potential sales opportunities — such as a company raising funding, hiring for key roles, or launching new products.

Under the hood, Signal is built with Next.js 16, leveraging React Server Components and the new App Router for a modern, performant frontend experience. Its backend data layer uses Supabase, which provides a Postgres database with Row Level Security (RLS) to enforce data access controls securely. This makes Signal suitable for single-tenant self-hosting where data isolation and security are important.

The AI capabilities are powered by Anthropic Claude, which handles natural language tasks like drafting personalized outreach messages based on the detected signals and enriched contact data.

For enrichment, Signal employs browser automation using Browserbase combined with Stagehand, which programmatically drives real browsers to scrape and validate company and contact information directly from web sources. This approach is closer to how commercial enrichment services like Clay work, but Signal gives you control over your LLM API keys and your data.

The system also uses QStash for reliable job scheduling and retries, ensuring that long-running enrichment or outreach jobs don’t get lost or duplicated. Email tracking and interaction are managed through AgentMail.

A recent architectural change involved migrating authentication from Supabase Auth to Clerk, which indicates a focus on improving developer experience and possibly more flexible user management out of the box.

The technical strengths and tradeoffs

The standout feature in Signal’s architecture is the signals engine, which allows users to author “recipes” that watch for specific buying triggers. These recipes can be customized to the sales context, making the signal detection highly configurable.

Browser automation for enrichment is both a strength and a tradeoff. It enables deep, real-time data collection from sources that traditional APIs or datasets might miss, reducing reliance on third-party enrichment providers. However, running headless browsers in production introduces complexity: resource consumption, stability concerns, and the need for robust error handling and retries.

The use of Supabase with Row Level Security is a solid choice for a self-hosted platform since it enforces data access policies at the database level, reducing the attack surface. The tradeoff here is that the system is designed as single-tenant, so scaling to multi-tenant SaaS scenarios would require significant rework.

Integrating Anthropic Claude for AI tasks ensures high-quality text generation but ties the platform to a specific LLM provider. While users control their own API keys, this dependency could be a limitation if pricing or availability changes.

The codebase is written in TypeScript, which improves maintainability and developer experience. The integration of QStash for job scheduling reflects a mature approach to handling asynchronous workflows that are critical in sales automation.

Overall, the code is surprisingly clean given the complexity of orchestrating multiple external services — from AI to browser automation and email tracking. The system’s modularity allows swapping components if needed, but the learning curve for setup and operation is non-trivial.

Quick start

You’ll need Node 20+, Docker, the Supabase CLI, a Supabase project (hosted or local), and an Anthropic API key.

git clone https://github.com/jay-sahnan/signal.git
cd signal
corepack enable      # activates the pinned pnpm version
pnpm install
pnpm setup           # interactive: prompts for required keys, runs migrations
pnpm dev             # http://localhost:3000

Prefer to configure by hand? Follow docs/setup.md.

Verdict

Signal is well-suited for engineering teams or startups that want an open-source alternative to commercial sales intelligence platforms like Clay but with full control over data and AI usage. Its approach to buying signal detection and enrichment via browser automation is technically sound and practical for teams comfortable managing a Next.js + Supabase stack.

The tradeoffs are clear: the system’s complexity and resource demands mean it’s not a zero-maintenance solution. Running browser automation at scale requires operational know-how. Also, being single-tenant limits multi-customer SaaS use cases out of the box.

Still, Signal fills a niche for self-hosted, AI-augmented sales workflows where privacy, customization, and extensibility matter. For teams willing to invest in setup and maintenance, it offers a transparent, code-first approach to sales automation.


→ GitHub Repo: jay-sahnan/signal ⭐ 215 · TypeScript