Open-Source Cold Email & Warmup Platform
Warmbly is the open-source platform for cold email: warm your mailboxes, send campaigns, and triage every reply. Run it on our cloud or self-host the whole thing.
Connect your own Claude, ChatGPT or Cursor to the Re:Vault stack: 26 tools over sourcing, queue, conversations and numbers. The price pays for a checked reason behind every message, a profile kept ins
MarketingPythonGitHub @dostrovcevOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
29 Claude Skills for an AI agent that runs B2B outbound on LinkedIn and email. Each rule carries the number from a live engine.
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
29 Claude Skills and 3 scripts for an AI agent that runs B2B outbound on LinkedIn and email.
We run our own outbound with an agent on autopilot. When it makes a mistake, we write down the rule it was missing, together with the number that showed us the mistake. This repo is that rulebook, with our client data removed.Read the full README ↗29 Claude Skills and 3 scripts for an AI agent that runs B2B outbound on LinkedIn and email.
We run our own outbound with an agent on autopilot. When it makes a mistake, we write down the rule it was missing, together with the number that showed us the mistake. This repo is that rulebook, with our client data removed.
A few of the numbers inside:
skills/
├── targeting-* 5 who you write to, and why this week
├── first-touch-* 5 the invite, the note, the first message
├── writing-* 5 what the text reads like to a human
├── replies-* 4 triage, live threads, silence
├── sending-* 4 pace, refusals, keeping profiles alive
├── learning-* 4 weekly readout, A/B splits, checks
└── meetings-* 2 brief before, reminder before
scripts/ 3 batch checks the model should not eyeball
| Group | Skill | The rule |
|---|---|---|
| targeting | targeting-sales-hiring-signal | A job post is a reason to write only when they hire in sales |
targeting-fact-with-source | One fact, with its source, or no message | |
targeting-named-person-not-inbox | A shared inbox is not a contact. Find the names yourself | |
targeting-reason-can-be-context | The reason to write can be context. Zero events is a valid answer | |
targeting-exclude-existing-customers | Exclude existing customers from their own export, before the first send | |
| first-touch | first-touch-straight-to-the-point | Say what you sell in the first message, and keep it short |
first-touch-invite-note-by-account-type | Invite notes from Premium accounts only | |
first-touch-message-after-accept | The first message after accept states intent and adds something new | |
first-touch-booking-link-once | The booking link goes into a thread once | |
first-touch-no-negation | Say it as a statement. Name no conflict | |
| writing | writing-stamp-is-frequency | A cliche is measured by how often it repeats across a batch |
writing-paragraphs-not-walls | Paragraphs, with a blank line between them | |
writing-de-ai-final-pass | Final pass: make it read like one person wrote it | |
writing-weekday-matches-date | A weekday next to a date is checked against the calendar | |
writing-claim-needs-ground | Every claim travels with its ground | |
| replies | replies-triage | Sort every reply before anyone answers it |
replies-discovery-not-pitch | A live thread is questions first, product second | |
replies-follow-up-after-silence | After silence, ask about timing. Skip the goodbye | |
replies-48h-sla | No lead waits more than 48 hours when the ball is ours | |
| sending | sending-spread-the-day | Spread the day across the working window |
sending-refusal-costs-an-attempt | A refusal costs one attempt, not a day | |
sending-protect-real-profiles | Mechanics experiments run on disposable profiles only | |
sending-limits-from-vendor-docs | Limits come from the docs and your own measurements | |
| learning | learning-weekly-readout | Weekly readout: one change, and only on enough data |
learning-decision-needs-why | Every change logs why, what you expect, and what you rejected | |
learning-ab-split-key | Split by lead, lock the arm, keep the key smaller than a batch | |
learning-check-what-the-human-received | Check what the human received | |
| meetings | meetings-pre-call-brief | A brief before every external call |
meetings-reminder-hour-before | One short reminder, one hour before, in the channel you already use |
Scripts (Python 3.9+, standard library only):
scripts/sameness.py checks a batch for duplicates, repeated phrases and repeated endings.scripts/paragraphs.py splits a message into paragraphs, or --check fails on a wall of text.scripts/weekday_check.py fails when a weekday and a date disagree ("Monday, September 22").Claude Code, as a plugin:
/plugin marketplace add dostrovcev/outbound-agent-skills
/plugin install outbound-agent-skills@revault
Or copy the folders you want into ~/.claude/skills/ (all projects) or .claude/skills/ (one project). Claude picks a skill up from its description when the task matches.
In Claude.ai or the Claude app: zip a single skill folder and upload it under Settings, Capabilities, Skills.
Each skill has the same shape: the rule, why (with our number), steps, a pre-send checklist, and an example. If you pick two, start with writing-stamp-is-frequency and first-touch-invite-note-by-account-type: both work on the next batch you send.
The numbers come from our own sending across several LinkedIn profiles in 2026. Your market will give you different numbers. Keep the method, measure your own, and replace ours.
These rules run inside Re:Vault, an outbound engine: sourcing, sending across LinkedIn profiles, reply handling and a weekly readout. You can connect your own Claude to it and run it yourself, from $199 a month: re-vault.io/mcp.
MIT. Use it, fork it, change the numbers to yours. If a rule saves you a profile, tell us which one.