[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-1433":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":8,"language":10,"languages":8,"totalLinesOfCode":8,"stars":11,"forks":12,"watchers":13,"openIssues":13,"contributorsCount":14,"subscribersCount":14,"size":14,"stars1d":14,"stars7d":15,"stars30d":16,"stars90d":14,"forks30d":14,"starsTrendScore":14,"compositeScore":17,"rankGlobal":8,"rankLanguage":8,"license":18,"archived":19,"fork":19,"defaultBranch":20,"hasWiki":21,"hasPages":19,"topics":22,"createdAt":8,"pushedAt":8,"updatedAt":23,"readmeContent":24,"aiSummary":25,"trendingCount":14,"starSnapshotCount":14,"syncStatus":15,"lastSyncTime":26,"discoverSource":27},1433,"signal","jay-sahnan\u002Fsignal","jay-sahnan",null,"https:\u002F\u002Fgetsignal.sh","TypeScript",268,36,1,0,2,7,4.7,"Other",false,"main",true,[],"2026-06-12 02:00:27","\u003Cdiv align=\"center\">\n\n\u003C!-- Drop your logo at public\u002Fsignal-logo.png (or .svg) and reference it here -->\n\u003C!-- \u003Cimg src=\".\u002Fpublic\u002Fsignal-logo.png\" alt=\"Signal\" width=\"140\" \u002F> -->\n\n# Signal\n\n### Open-source AI sales intelligence and outreach automation.\n\n**The open alternative to Clay, Apollo, and Outreach — run it on your own keys.**\n\n[![License: AGPL v3](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-AGPL_v3-blue.svg)](.\u002FLICENSE)\n[![PRs Welcome](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FPRs-welcome-brightgreen.svg)](.\u002F.github\u002FCONTRIBUTING.md)\n[![Built with Claude](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FBuilt%20with-Claude-d97757.svg)](https:\u002F\u002Fwww.anthropic.com\u002Fclaude)\n[![Stars](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002Fjay-sahnan\u002Fsignal?style=social)](https:\u002F\u002Fgithub.com\u002Fjay-sahnan\u002Fsignal\u002Fstargazers)\n\n🌐 [Website](https:\u002F\u002Fgithub.com\u002Fjay-sahnan\u002Fsignal) &nbsp;·&nbsp;\n📚 [Docs](.\u002Fdocs) &nbsp;·&nbsp;\n🏗️ [Architecture](.\u002Fdocs\u002Farchitecture.md) &nbsp;·&nbsp;\n⚡ [Quick start](#-quick-start) &nbsp;·&nbsp;\n💬 [Discussions](..\u002F..\u002Fdiscussions)\n\n\u003Cbr \u002F>\n\n\u003C!-- Drop a hero screenshot or GIF at docs\u002Fassets\u002Fhero.png and uncomment: -->\n\u003C!-- \u003Cimg src=\".\u002Fdocs\u002Fassets\u002Fhero.png\" alt=\"Signal workspace\" width=\"860\" \u002F> -->\n\n\u003C\u002Fdiv>\n\n---\n\nSignal watches the web for buying signals (hiring changes, funding news, product launches, review shifts), enriches the companies and contacts behind them, drafts personalized outreach, and runs multi-step email sequences — all from a single chat-first workspace.\n\nIt's built for teams that want a CRM-adjacent tool they can read, fork, self-host, and extend. Instead of paying per seat for a black-box SaaS, run Signal on your own Supabase + Anthropic keys and own the pipeline end to end.\n\n> 🧪 Signal is designed for single-tenant self-hosting — one Supabase project per team. See [architecture.md](.\u002Fdocs\u002Farchitecture.md#multi-tenancy) before deploying for multiple independent teams.\n\n> ⚠️ **Upgrading from a pre-Clerk version?** Auth has migrated from Supabase Auth to Clerk (Supabase remains the data layer). **Take a `pg_dump` first — this migration is destructive and not reversible.** It **wipes all user-owned data** (`campaigns`, `chats`, `user_profile`, `api_usage`, `user_settings`, `email_drafts`, `sent_emails`, `sequences`, plus user-authored `email_skills`) — old Supabase user UUIDs don't map to Clerk IDs. Built-in seed data and shared pools (`organizations`, `people`, `signals`) survive. Sign up for a free Clerk account ([10k MAU free](https:\u002F\u002Fclerk.com\u002Fpricing)) and run `pnpm setup` to wire it up. See [docs\u002Fsetup.md § Clerk](.\u002Fdocs\u002Fsetup.md#4-clerk-auth) and [`supabase\u002Fmigrations\u002F20260427000000_clerk_auth_migration.sql`](.\u002Fsupabase\u002Fmigrations\u002F20260427000000_clerk_auth_migration.sql) if you need a custom backfill.\n\n\u003Cbr \u002F>\n\n## ✨ Features\n\n- 🛰️ **Signals engine** — authorable \"recipes\" that watch companies and surface buying triggers.\n- 💬 **Campaign workspace** — chat-driven interface backed by Claude to research, shortlist, and draft.\n- 🔎 **Contact enrichment** — pulls LinkedIn, GitHub, and company pages into a single profile.\n- ✉️ **Outreach sequences** — multi-step emails via AgentMail with open \u002F reply tracking.\n- 🤖 **Browser automation** — Browserbase + Stagehand for the long tail of sites without APIs.\n- 🔐 **Own your data** — Postgres + RLS on your Supabase; bring your own LLM keys.\n\n\u003C!-- Drop product GIFs here to mimic Postiz's feature grid. Example:\n\u003Cdiv align=\"center\">\n  \u003Cimg src=\".\u002Fdocs\u002Fassets\u002Fsignals.gif\" width=\"48%\" \u002F>\n  \u003Cimg src=\".\u002Fdocs\u002Fassets\u002Fworkspace.gif\" width=\"48%\" \u002F>\n  \u003Cimg src=\".\u002Fdocs\u002Fassets\u002Fsequences.gif\" width=\"48%\" \u002F>\n  \u003Cimg src=\".\u002Fdocs\u002Fassets\u002Fenrichment.gif\" width=\"48%\" \u002F>\n\u003C\u002Fdiv>\n-->\n\n\u003Cbr \u002F>\n\n## 🛠️ Tech stack\n\n- **Framework** — Next.js 16 (App Router) + React 19 + TypeScript\n- **Database** — Supabase (Postgres + Auth + RLS)\n- **AI** — Anthropic Claude via `@ai-sdk\u002Fanthropic` and the Vercel AI SDK\n- **Automation** — Browserbase + Stagehand for browser tasks\n- **Email** — AgentMail for send \u002F reply \u002F open tracking\n- **Jobs** — QStash (Upstash) for scheduled signal runs\n- **UI** — Tailwind CSS 4, shadcn\u002Fui\n- **Testing** — Vitest, Playwright\n\n\u003Cbr \u002F>\n\n## 🚀 Quick start\n\nYou'll need **Node 20+**, **Docker**, the **Supabase CLI**, a **Supabase project** (hosted or local), and an **Anthropic API key**.\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fjay-sahnan\u002Fsignal.git\ncd signal\ncorepack enable      # activates the pinned pnpm version\npnpm install\npnpm setup           # interactive: prompts for required keys, runs migrations\npnpm dev             # http:\u002F\u002Flocalhost:3000\n```\n\nPrefer to configure by hand? Follow [`docs\u002Fsetup.md`](.\u002Fdocs\u002Fsetup.md).\n\n\u003Cbr \u002F>\n\n## 🐳 Self-host with Docker\n\n```bash\ncp .env.example .env\n# fill in SUPABASE_URL + ANTHROPIC_API_KEY at minimum\ndocker compose up -d\n```\n\nSignal does not bundle Supabase in the compose file — bring your own (hosted Supabase project or local `supabase start`). See [`docs\u002Fsetup.md`](.\u002Fdocs\u002Fsetup.md) for the full walkthrough.\n\n\u003Cbr \u002F>\n\n## 🤝 Contributing\n\nIssues and PRs welcome. Start with [`.github\u002FCONTRIBUTING.md`](.\u002F.github\u002FCONTRIBUTING.md). AI-assisted PRs are fine — we build with Claude ourselves.\n\nLooking for somewhere to start? Filter issues by [`good first issue`](..\u002F..\u002Flabels\u002Fgood%20first%20issue).\n\n\u003Cbr \u002F>\n\n## 💬 Community\n\n- 🐛 [Issues](..\u002F..\u002Fissues) — bug reports and feature requests\n- 💡 [Discussions](..\u002F..\u002Fdiscussions) — questions, ideas, show & tell\n- 🔒 [Security](.\u002F.github\u002FSECURITY.md) — vulnerability disclosure\n\n\u003Cbr \u002F>\n\n\u003Cbr \u002F>\u003Cbr \u002F>\n\n## 📄 License\n\n[AGPL-3.0](.\u002FLICENSE) with an optional enterprise carve-out for files explicitly tagged. See the license file for details.\n","Signal 是一个开源的AI销售情报和外联自动化工具。它通过监控网络上的购买信号（如招聘变化、融资新闻、产品发布、评价变动）来丰富公司和联系人信息，草拟个性化外联邮件，并运行多步骤的电子邮件序列，所有这些功能都集成在一个以聊天为主的界面中。项目采用TypeScript编写，支持自托管部署，允许用户使用自己的Supabase和Anthropic密钥运行，从而完全掌控数据管道。适合需要CRM辅助工具但又希望避免商业软件订阅费用且能够自行扩展功能的团队使用。","2026-06-11 02:43:46","CREATED_QUERY"]