Open-Source Cold Email & Warmup Platform
Warmbly 是开源的冷邮件平台:温暖您的邮箱、发送活动、并对每条回复进行分流。可在我们的云端运行,也可自行托管整套系统。
AI 翻译
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
翻译准备中
营销PythonGitHub @dostrovcev在线运营者未确认
试用过了吗? 点一下就好,无需登录。
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证29 Claude Skills for an AI agent that runs B2B outbound on LinkedIn and email. Each rule carries the number from a live engine.
翻译准备中
取自仓库 README
正在加载完整 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.查看完整 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.