Overview
What it is
Seleqt is an outbound sales platform for sales teams and agencies. Users build lead lists from LinkedIn, Sales Navigator, Recruiter or CSV, enrich contacts with emails and phones, and run AI research on each lead to qualify it. They then launch multi-step LinkedIn and email campaigns that branch on conditions. Replies from both channels land in one inbox, and interested leads move to a deals board or a CRM.
I designed and built most of it as the technical co-founder: the Django backend, the React frontend, the campaign scheduler, the public API, billing and the white-label agency mode. I wrote about 104K lines of its code.
The company grew from 0 to 65 paying customers and was acquired by a strategic buyer in December 2025. Its contact enrichment ran on Synce, which was part of Seleqt and has its own page here.
Why it’s interesting
- A constraint-based scheduler fits every action into per-account gaps under daily limits, sending windows, time zones and step delays, with limits shared across campaigns on one LinkedIn account.
- Campaign branches are event-driven on top of a time-driven queue: conditions are checked at run time, and an invite acceptance found by a 30-minute sync plans the YES branch immediately.
- AI lead qualification scrapes several sources, retrieves chunks from ChromaDB, answers with structured output, then runs a second call that checks the answer against its own explanation.
- Enrichment is split across two services with a billing boundary: Seleqt debits and refunds credits, and Synce runs the provider waterfall and calls back on a webhook.
- A public REST API with hashed keys, Redis rate limiting and webhooks, plus a white-label agency mode with per-agency Stripe accounts.
- 65
- paying customers
- Acquired
- by a strategic buyer, Dec 2025
- ~104K
- lines of code I wrote
- 5
- CRM and sheet integrations
company records
git blame
HubSpot, Pipedrive, Monday, Attio, Google Sheets
Architecture
How it fits together
Try it
Watch the research agent enrich leads
Salespeople add a question as a column, like "last funding round" or "CRM in use", and an AI agent answers it for every lead from fresh web sources, with a certainty and a self-check. Companies here are invented.
Screens
A closer look
Lead list with AI columns. Found emails and phones sit beside AI research columns: a 1-5 ICP fit score and a yes/no hiring signal per lead.
1 / 10Tap a screenshot to enlarge it.
Features
Everything it does
Lead lists
- Multiple sources — Import from LinkedIn search, Sales Navigator, Recruiter, post engagers, groups or CSV.
- Duplicate cleanup — Preview and run duplicate removal across lists and campaigns.
- Excluded domains — A per-workspace blocklist that stops prospects at enrichment time.
- Export — Export prospects and companies to CSV, or add them to a list or campaign.
Enrichment and AI research
- Contact finding — Find email, phone, website, or enrich a LinkedIn profile, with an email waterfall.
- Custom research columns — Prompts with chosen sources return text, boolean, number or score answers.
- Explained answers — Each answer carries an explanation, a certainty value and cited sources, and can be edited.
- AI snippets — Message segments are filled per lead from research answers.
- Cost preview — Each job shows its cost before it runs, and running jobs can be cancelled.
Campaigns
- Visual flow builder — Step and condition nodes: invite, message, visit, InMail, like post, email, send to CRM.
- Conditions — Branch on accepted invite, already connected, or has email.
- Sending settings — Time zone, per-weekday windows, daily limits and sender accounts per campaign.
- Messages — Variables, fallback text, A/B variants, attachments, signatures and templates.
- Campaign control — Pause, resume, relaunch leads, and apply an edited flow to a running campaign.
Inbox and deals
- Unified inbox — LinkedIn and email replies with read state, archive, flags, labels and saved filters.
- Reply tools — AI-drafted replies, notes, reminders and an executed-actions timeline per prospect.
- Reply classification — Replies are labeled interested, not interested or neutral, with an email notification.
- Kanban boards — Drag-and-drop stages, bulk actions and a table view.
Integrations and API
- CRMs — HubSpot, Pipedrive, Monday, Attio and Google Sheets with field mapping and OAuth.
- Public REST API — Lead lists, enrichment (sync or async), campaigns, analytics and import/export.
- Webhooks — Incoming messages and enrichment results are posted to a customer URL.
- Chrome extension — Connects a LinkedIn account in one click and imports profiles from a list page.
Agencies and billing
- White-label — Agency brand, colors, custom domain and 13 feature flags per agency.
- Client management — Client organizations, impersonation, credits and subscriptions.
- Stripe billing — Subscriptions, credit purchases, a portal and seat-based extra accounts.
- Workspaces and teams — Workspace switching, invites, trials and referral codes.
Tech stack
What it's built with, and why
Frontend
- React 18 + Vite + TypeScript
- The single-page app: lists, flow builder, inbox, deals, settings and agency pages.
- Tailwind 4
- Styling, with agency brand colors applied at runtime for white-label.
- TanStack Query + Zustand
- Server state for lists and campaigns; small stores for WebSocket, chat and branding.
- TipTap, Chart.js, dnd
- Message editor, analytics charts and kanban drag and drop.
Backend
- Django 5 + DRF
- Viewsets for the app and the public API, middleware for keys and subscriptions.
- Channels + Daphne
- WebSocket events for new messages, enrichment progress and credits.
- django-q2
- One scheduled action per planned campaign step.
- Celery + django-cron
- Long enrichment and AI tasks, plus credit top-ups, LinkedIn sync and trial expiry.
Data
- MySQL
- 54 models and 181 migrations, with composite indexes on planned actions.
- Redis
- Task broker, API rate-limit counters and the Channels layer.
- ChromaDB
- Stores scraped chunks for retrieval during AI research.
AI
- OpenAI
- Structured-output research answers, a consistency check, reply classification and message generation.
- Gemini
- Message draft generation and organization descriptions.
Payments & integrations
- Unipile
- Sends and receives LinkedIn and email, links accounts, delivers webhooks.
- Stripe
- Platform billing plus one Stripe account per agency.
- CRM interface
- HubSpot, Pipedrive, Monday, Attio and Google Sheets behind one service factory.
- Brevo, PostHog
- Transactional email and product analytics.
Tooling
- Django TestCase
- A 23-test scheduler suite, plus planning logs and campaign export/import commands.
- Mintlify
- 40 pages of public API documentation.

