A little more personal.
A lot more connected.
One campaign. Two connected sources. A coordinated email swarm.
Make your message matter.
Write once. Personalize for every candidate.
Edit HTML version
Plain-text edits do not automatically replace your HTML. Use Text → HTML or edit both.Your subject line
nwangwuisrael@gmail.com
nwangwujeremy@gmail.com
Two sources. One audience.
The second project continues the first. Duplicate addresses receive one campaign copy.
fkndpskocoatskwzrqwjmcvphfhozzfcipkfmsbvImport a CSV using your configured source column names. This replaces the source read for this draft.
Using both Supabase sources.
Source columns & eligibility mapping
Verify these names against each database. No source schemas have been assumed verified.
Your pace. Your limits.
Provider quotas always apply, even when your campaign limit is higher.
Runs at minute 17, UTC. A 45-minute session leaves about 15 minutes before the next opportunity. GitHub can delay jobs.
Not loadedA swarm, working together.
Enable approved accounts, confirm their real quotas, and let each worker take its turn.
| Provider | Enabled | Quotas verified | Monthly cap | Daily cap | Hourly cap | Contact cap | Recorded usage / remaining |
|---|
Blank daily/hourly/contact fields mean no local cap of that type. Enabled providers need a finite monthly cap. Account limits and credentials may still make a provider unavailable.
Advanced provider transport configuration
Use documented SMTP hosts or JSON API mappings. Never paste keys/passwords here.
Every run, accounted for.
Provider acceptance is tracked separately from inbox delivery.
Dashboard requests
Connect to see campaign requests and audience results.
GitHub workflow jobs
No jobs loaded.
Suppress a recipient
Applies across campaigns. Already submitted messages cannot be recalled.
A secure connection.
Sign in to the second Supabase project. Sending credentials never enter this dashboard.
Use an existing confirmed, allowlisted admin account. No signup or login email is sent by this interface. Your session stays in memory and ends when this page reloads.
Your frontend is ready for Vercel.
- Apply both queue migrations to project 01.
- Apply the dashboard migration and deploy
swarm-controlto project 02. - Set admin emails, allowed origin, queue key and scoped GitHub token as Edge Function secrets.
- Add the sending and control secrets to GitHub.
- Add the public Supabase key here or in
public/config.js.
Live sending is locked by backend and GitHub settings. Deploying the page never sends email.
Open repository ↗