@vruum/skills 0.4.3 → 0.4.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +20 -1
- package/package.json +3 -3
- package/skills/pipeline-fill/SKILL.md +132 -0
package/README.md
CHANGED
|
@@ -6,11 +6,29 @@ Pairs with the Vruum MCP server at [https://api.vruum.ai/mcp](https://api.vruum.
|
|
|
6
6
|
|
|
7
7
|
## Install
|
|
8
8
|
|
|
9
|
+
### Claude Code / Cursor / VS Code Copilot / Cline
|
|
10
|
+
|
|
11
|
+
Add the Vruum MCP server as a connector. Slash commands appear automatically — you don't need this npm package.
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
claude mcp add --transport http --scope user vruum https://api.vruum.ai/mcp
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
### Claude Desktop / Claude.ai (Cowork)
|
|
18
|
+
|
|
19
|
+
Install the Vruum plugin via the official plugin directory — bundles the connector and slash commands in one step:
|
|
20
|
+
|
|
21
|
+
[github.com/vruum-gtm/skills/releases/latest/download/vruum-plugin.zip](https://github.com/vruum-gtm/skills/releases/latest/download/vruum-plugin.zip)
|
|
22
|
+
|
|
23
|
+
Download and upload via **Settings → Customize → Plugins → "+"**.
|
|
24
|
+
|
|
25
|
+
### Codex CLI / ChatGPT / other harnesses
|
|
26
|
+
|
|
9
27
|
```bash
|
|
10
28
|
npx @vruum/skills install
|
|
11
29
|
```
|
|
12
30
|
|
|
13
|
-
Detects
|
|
31
|
+
Detects Codex CLI (`~/.codex/skills/`). For other harnesses:
|
|
14
32
|
|
|
15
33
|
```bash
|
|
16
34
|
npx @vruum/skills install --target /path/to/skills/dir
|
|
@@ -23,6 +41,7 @@ npx @vruum/skills install --target /path/to/skills/dir
|
|
|
23
41
|
- `/engagement-triage` — Review and approve your pending LinkedIn engagement drafts and demand-gen content posts. Use when: triage engagements, review engagement queue, review warming comments, review nurture reactions, review marketing comments, review content drafts, check engagement queue.
|
|
24
42
|
- `/enrich-prospect` — Deep prospect diarization — synthesize everything known about a person into a structured intelligence profile. Use when: enrich prospect, deep research, profile this person, who is this person, research prospect, diarize prospect, prospect briefing.
|
|
25
43
|
- `/outreach-triage` — Review and approve your pending outreach drafts across LinkedIn and email. Use when: triage, review queue, morning review, check messages, approve outreach, what needs review.
|
|
44
|
+
- `/pipeline-fill` — Fill your outreach pipeline by importing new Sales Navigator prospects. Pre-filters results against ICP before import to save research credits. Use when: fill pipeline, import prospects, daily imports, need more prospects.
|
|
26
45
|
- `/vruum-skills-upgrade` — Upgrade @vruum/skills to the latest npm version and re-sync ~/.vruum/. Use when: upgrade vruum skills, update vruum, pull latest vruum skills, or when the preamble reports UPGRADE_AVAILABLE.
|
|
27
46
|
<!-- generated:skills-end -->
|
|
28
47
|
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vruum/skills",
|
|
3
|
-
"version": "0.4.
|
|
4
|
-
"description": "Vruum AI skills for Claude Code, Codex CLI, and any AI assistant with a skill directory. Pairs with the Vruum MCP server at https://api.vruum.ai/mcp.",
|
|
3
|
+
"version": "0.4.5",
|
|
4
|
+
"description": "Vruum AI skills for Claude Code, Claude Desktop, Codex CLI, and any AI assistant with a skill directory. Slash commands for outreach triage, engagement triage, pipeline filling, prospect enrichment, and reply diagnosis. Pairs with the Vruum MCP server at https://api.vruum.ai/mcp.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
@@ -36,5 +36,5 @@
|
|
|
36
36
|
"outreach",
|
|
37
37
|
"gtm"
|
|
38
38
|
],
|
|
39
|
-
"contentHash": "
|
|
39
|
+
"contentHash": "b0e043a4560fc5d2eda1f7238a08f58d8d1865c97b28442574d6c509eb74e53a"
|
|
40
40
|
}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: pipeline-fill
|
|
3
|
+
description: >-
|
|
4
|
+
Fill your outreach pipeline by importing new Sales Navigator prospects.
|
|
5
|
+
Pre-filters results against ICP before import to save research credits. Use
|
|
6
|
+
when: fill pipeline, import prospects, daily imports, need more prospects.
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Auto-update check
|
|
10
|
+
|
|
11
|
+
Before starting, run `~/.vruum/bin/vruum-skills-update-check` (path relative to this repo). Interpret output:
|
|
12
|
+
- `UPGRADE_AVAILABLE <old> <new>` → mention the available upgrade in one line and offer `/vruum-upgrade`. Then continue.
|
|
13
|
+
- `JUST_UPGRADED <old> <new>` → acknowledge in one line, then continue.
|
|
14
|
+
- Empty → proceed silently.
|
|
15
|
+
|
|
16
|
+
Never block skill execution on this check.
|
|
17
|
+
|
|
18
|
+
# Pipeline Fill
|
|
19
|
+
|
|
20
|
+
You are a pipeline filling orchestrator. Your job is to efficiently import the right number of prospects from configured Sales Nav saved searches, with smart pre-filtering to avoid wasting research credits on poor fits.
|
|
21
|
+
|
|
22
|
+
## Why this skill exists
|
|
23
|
+
|
|
24
|
+
Filling your pipeline manually (preview search → evaluate each profile → dismiss mismatches → import fits → assign to segment → start outreach) takes an hour or more per day. This skill automates it with smart pre-filtering so research credits go only to prospects that actually fit your ICP.
|
|
25
|
+
|
|
26
|
+
## Subagent architecture
|
|
27
|
+
|
|
28
|
+
This skill uses the custom agent `vruum-pipeline-filter` defined at `~/.claude/agents/vruum-pipeline-filter.md`. That agent has:
|
|
29
|
+
- Full Vruum MCP access via `mcpServers` (can call preview_sales_nav_search, mcp_dismiss_sales_nav_profiles, import_from_sales_nav)
|
|
30
|
+
- Complete filtering instructions baked into its system prompt
|
|
31
|
+
|
|
32
|
+
### MCP access requirements
|
|
33
|
+
|
|
34
|
+
Subagents can only access Vruum MCP if `vruum-local` is configured as a user-scoped HTTP MCP server in `~/.claude.json`. Cloud MCP servers (`claude.ai Vruum`) are NOT inherited by subagents.
|
|
35
|
+
|
|
36
|
+
To set up: `claude mcp add --transport http --scope user vruum-local https://api.vruum.ai/mcp` (one-time, requires OAuth).
|
|
37
|
+
|
|
38
|
+
### Dispatch methods (in order of preference)
|
|
39
|
+
|
|
40
|
+
1. **Agent tool** (primary): Spawn subagents via the Agent tool. Subagents inherit local MCP servers from `~/.claude.json` and can call Vruum tools directly. Use `run_in_background=true` for parallelism.
|
|
41
|
+
|
|
42
|
+
2. **CLI dispatch**: `claude --agent vruum-pipeline-filter --allowedTools "mcp__vruum-local__*,mcp__claude_ai_Vruum__*" -p "<prompt>" --output-format text --max-turns 20`. Use if Agent tool subagents can't reach MCP.
|
|
43
|
+
|
|
44
|
+
3. **Inline**: For well-targeted searches where pre-filtering adds little value, skip the subagent and import directly.
|
|
45
|
+
|
|
46
|
+
## Pre-fill checks
|
|
47
|
+
|
|
48
|
+
Before importing for any segment, check T1 send capacity:
|
|
49
|
+
1. How many people are already in "new" stage (queued but not yet contacted)?
|
|
50
|
+
2. What is the daily connection limit for the segment?
|
|
51
|
+
3. If the backlog already exceeds 3+ days of sends, skip importing — they have enough inventory.
|
|
52
|
+
|
|
53
|
+
This prevents piling up prospects that won't get touched for days.
|
|
54
|
+
|
|
55
|
+
## Workflow
|
|
56
|
+
|
|
57
|
+
### Step 1: Check what needs filling
|
|
58
|
+
|
|
59
|
+
Call `manage_sales_nav_searches` with `action="list"` to see configured Sales Nav saved searches + segment mappings, and `get_outreach_stats` to see queue depth per segment. Present a numbered table:
|
|
60
|
+
|
|
61
|
+
```
|
|
62
|
+
Pipeline status:
|
|
63
|
+
|
|
64
|
+
1. DFW CFOs — 12/30 (18 needed, search healthy)
|
|
65
|
+
2. Austin VPs — 28/30 (2 needed)
|
|
66
|
+
3. Houston CTOs — 0/20 (20 needed, search drying up ⚠️)
|
|
67
|
+
4. NYC Partners — 0/40 (40 needed)
|
|
68
|
+
|
|
69
|
+
Which segments to fill? (all / 1,3,4 / skip 2)
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
**Table rules:**
|
|
73
|
+
- One row per segment, numbered sequentially
|
|
74
|
+
- Show current/target counts and how many are needed
|
|
75
|
+
- Flag searches that are drying up (⚠️) or accounts near capacity
|
|
76
|
+
- Mark segments already at target with ✓ and don't number them
|
|
77
|
+
|
|
78
|
+
**Wait for the user's response.** They can reply with:
|
|
79
|
+
- "all" — fill every segment that needs it
|
|
80
|
+
- Segment numbers: "1, 3, 4" or "1 and 4"
|
|
81
|
+
- Exclusions: "skip 2"
|
|
82
|
+
- Natural language: "just the CFO ones", "skip anything under 10 needed"
|
|
83
|
+
|
|
84
|
+
Parse their response and only fill the selected segments.
|
|
85
|
+
|
|
86
|
+
### Step 2: Fill selected segments
|
|
87
|
+
|
|
88
|
+
For each selected segment, for each active pipeline source mapping:
|
|
89
|
+
|
|
90
|
+
#### 2a. Preview and filter via subagent
|
|
91
|
+
|
|
92
|
+
Dispatch a subagent via the Agent tool to handle the full preview → filter → import flow. The subagent prompt should include:
|
|
93
|
+
- Search name or ID
|
|
94
|
+
- Segment ID or name
|
|
95
|
+
- Number of profiles to import
|
|
96
|
+
- Instructions to call `preview_sales_nav_search`, evaluate profiles against ICP, dismiss poor fits, and import the good ones with `auto_enroll=true`
|
|
97
|
+
|
|
98
|
+
**Parallelism:** Each search/segment mapping is independent. Spawn multiple subagents in parallel using `run_in_background=true`.
|
|
99
|
+
|
|
100
|
+
#### 2b. Fallback for simple cases
|
|
101
|
+
|
|
102
|
+
If the search is well-targeted (title + location filters match the segment ICP closely), skip the subagent and import directly:
|
|
103
|
+
|
|
104
|
+
```
|
|
105
|
+
import_from_sales_nav(search="DFW CFOs", count=50, segment="dfw-cfos", auto_enroll=true)
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
Use the subagent only when the search is broad enough that pre-filtering saves meaningful cost.
|
|
109
|
+
|
|
110
|
+
### Step 3: Report results
|
|
111
|
+
|
|
112
|
+
After the fill completes, present a summary:
|
|
113
|
+
|
|
114
|
+
"Pipeline fill complete:
|
|
115
|
+
- DFW CFOs: Previewed 45 profiles, approved 32, dismissed 13. Imported 18 new.
|
|
116
|
+
- Austin VPs: 2 more imported.
|
|
117
|
+
- Houston CTOs: Search drying up — returned only 7 profiles. Consider broadening the search or creating a new one.
|
|
118
|
+
Total: 27 imported, 13 dismissed, ~$3.40 saved by pre-filtering."
|
|
119
|
+
|
|
120
|
+
## Shared search deduplication
|
|
121
|
+
|
|
122
|
+
Multiple segments may use the same Sales Nav saved search (e.g. "Real Estate Team Owners" and "Real Estate Team Owners (No Warming)" both pull from the same search). **Never import from the same saved search in parallel across different segments.** Run them sequentially so the first import's profiles are already in the system (and deduped) before the second import starts. Otherwise the same person can get imported into two segments concurrently, which corrupts warming state.
|
|
123
|
+
|
|
124
|
+
Before dispatching subagents, group segment fills by their saved search ID. Within each group, dispatch sequentially. Different saved searches can still run in parallel.
|
|
125
|
+
|
|
126
|
+
## Notes
|
|
127
|
+
|
|
128
|
+
- Each mapping is independent. If one fails (expired LinkedIn session, rate limit), others still run.
|
|
129
|
+
- The 5-minute cooldown on automated pipeline fills prevents duplicate imports if the skill runs twice in quick succession.
|
|
130
|
+
- Pre-filtering saves ~$0.10-0.20 per dismissed profile (LinkedIn research + company research + match analysis costs).
|
|
131
|
+
- If a search returns fewer profiles than needed, flag it as "drying up" so the user knows to create a new search or broaden targeting.
|
|
132
|
+
- If subagent MCP connections fail, fall back to inline: preview in the main session, filter manually, import directly. This typically means `vruum-local` isn't in `~/.claude.json`.
|