원클릭으로
pipeline-review
Pipeline review and next-action planner. Pulls all prospects from a specified CRM pipeline stage, analyzes
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Pipeline review and next-action planner. Pulls all prospects from a specified CRM pipeline stage, analyzes
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Generate a YouTube title shortlist for a new video using two parallel lenses, topic-based and pattern-based. Pulls the LAST 20 to 25 uploads from a locked comp set of competitor channels plus Ben's own channel (recent only, never all-time-popular), clusters them by subject and by structure, weights what is overperforming right now, then produces two labeled angle sets. Reasons about the video first, lets the fresh data reshape the angle, and never forces the topic into an irrelevant template. Uses reliable recent-upload pulls, not the unreliable vidiq_outliers endpoint. Use whenever Ben says "title ideation", "title angles", "title brainstorm", "give me title options", "what should I call this video", "title shortlist", or shares a rough video idea / transcript / reference videos and asks for titles.
Turn a task you just finished into a small, reliable, single-purpose skill by reverse-engineering the process from the conversation you already had. Also improves or audits an existing skill. Use this AFTER you have done a piece of knowledge work in a chat (research, a draft, an analysis, a prep doc) and want to lock the process in as a skill. Triggers include "build a skill from this", "turn this into a skill", "make a skill out of what we just did", "skill-ify this", "build a skill", "improve this skill", "audit my skill", "why does my skill suck", "make my skill smaller", or when the user finishes a repeatable task and wants to reuse it. Built for knowledge workers, not just engineers. For skills you have NOT done yet (only an idea), hand off to process-interviewer instead.
Repurpose research, YouTube videos, blog articles, guides, or raw insights into high-performing LinkedIn posts that match Ben's exact tone of voice and writing style. STEP-BY-STEP and interactive: never output a complete post immediately, and at each step give suggestions, wait for the user's decision, then proceed. Pairs with /research upstream and /visual downstream. Use when the user shares a YouTube link, blog URL, transcript, insight, or idea and wants a LinkedIn post, or says "LinkedIn post", "LinkedIn content", "write a post", "repurpose for LinkedIn", or "turn this into a post".
Iterative newsletter writing workflow for Ben Van Sprundel's audience. Use when Ben wants to write a newsletter from research, an insight, an idea, or a YouTube video transcript. This is a CREATIVE, STEP-BY-STEP process. Never output a complete newsletter immediately. Each step requires suggestions, user decision, then progression to next step. Pairs with /research upstream and /image downstream. Triggers: newsletter, write newsletter, email content, repurpose video, insight to newsletter.
Run deep, internet-enabled research on any topic to gather the raw material for content. First step of the content pipeline — feeds /linkedin and /newsletter. Automates prompt enhancement through clarifying questions, saves parameters for reproducibility, and executes web-enabled deep research. Use when the user asks to research a topic, gather sources, investigate a subject, or build the foundation for a post or newsletter.
Generate on-brand visuals and infographics for LinkedIn posts and newsletters using Nano Banana MCP (Gemini AI image generation). Final step of the content pipeline. Follows a guided flow. Analyze the content, suggest visualizable concepts, propose visualization approaches, then generate on-brand visuals. USE THIS SKILL WHEN user says "create a visual", "make a visual", "generate an infographic", or wants a graphic to go with a post or newsletter. Modular architecture with lazy-loaded reference files for each phase.
| name | pipeline-review |
| description | Pipeline review and next-action planner. Pulls all prospects from a specified CRM pipeline stage, analyzes |
Pull every prospect from a target pipeline stage, cross-reference their full email history and meeting transcripts, and produce a concise action-oriented summary sent via Slack.
This skill is read-only -- it pulls data and delivers insights but never creates, updates, or deletes CRM records. If the user wants CRM changes (moving stages, deleting duplicates), list the recommendations clearly so they can act on them manually.
A Slack message (sent to the user or a channel they specify) that fits in roughly 15 lines or fewer. The message packs the maximum useful information into a tight, skimmable format:
The message is concise and skimmable -- no emojis, no walls of text. A busy founder should be able to scan it in under 60 seconds and know exactly what to do today.
Use AskUserQuestion to collect what you need. Combine into 1-2 calls max.
Question 1 -- Which pipeline and stage? "Which CRM list/pipeline should I review, and which stage(s) do you want me to focus on?"
list-lists to show them the options.Question 2 -- Where should I send the summary? "Where do you want the pipeline summary sent? I can DM you on Slack or post it to a channel."
Question 3 -- Any prospects to skip or special instructions? "Should I review ALL prospects in those stages, or skip any? Anything specific you want me to flag?"
After collecting answers, confirm your understanding before pulling data.
Read references/CONNECTORS.md for connector-specific patterns. The general flow:
list-lists (Attio) or equivalent to locate the target pipelinelist-list-attribute-definitions to identify the stage field slug, deal value field, and other entry-level attributeslist-attribute-definitions on the parent object (usually "people") to understand where email, phone, name liveCRM APIs paginate (typically 50 records max per request), and stage filtering can be unreliable depending on the CRM.
Recommended approach -- full scan with local filtering:
Rather than relying on server-side stage filters (which can fail silently or have inconsistent syntax), pull ALL entries from the list in paginated batches and filter locally. This is more reliable and avoids missing prospects due to filter syntax issues.
offset = 0
all_target_entries = []
while has_more:
batch = list-records-in-list(list=TARGET_LIST, limit=50, offset=offset)
for entry in batch:
if entry.stage in TARGET_STAGES:
all_target_entries.append(entry)
offset += 50
Save entry-level data as you go: entry_id, parent_record_id, stage, deal value, priority, forecast, close date, notes, agreement stage.
Important: Count your results and sanity-check with the user. If they say "I see 10 prospects" but you only found 4, you missed some. Go back and re-scan.
Duplicate detection: While scanning, track parent_record_id occurrences. If the same record appears more than once in the same stage, that's a duplicate entry. Log these for the CRM hygiene section.
Collect all unique parent_record_id values from the entries, then batch-fetch person records:
get-records-by-ids(object="people", record_ids=[...])
Extract for each prospect:
For every prospect that needs deep analysis (not stages where the user only wants a summary), search for all email threads using their email address:
search-emails-by-metadata(participant_email_addresses=["prospect@company.com"], limit=10)
This returns email metadata: subject, summary, snippet, sender, sent_at. For the most recent 2-3 emails, pull full content with get-email-content if the summary alone doesn't tell you enough about the current state.
Key things to extract from emails:
Run email searches in parallel where possible -- don't do them one at a time.
Check which transcription tools are available:
fireflies_search with the prospect's name or email, then fireflies_get_summary for the most recent call(s)search-call-recordings-by-metadata with speaker_person_record_ids or related_record_idsFor each prospect, pull the summary of their most recent 1-2 calls. You need:
If no transcription tool is connected, skip this step and note it in the output. The email analysis alone is still valuable.
If a transcription service rate-limits you, fall back to email analysis for the remaining prospects and note the limitation.
For each prospect, synthesize the CRM data, emails, and call transcripts into a clear picture:
Sales cycle status:
Next action:
Priority tier:
This is a critical part of the review. Scan the data you've already collected and flag:
Duplicates: Same parent_record_id appearing multiple times in the same stage. List which entries are duplicates and recommend keeping the earliest one (or the one with the most data) and deleting the rest.
No-shows: Prospects who had meetings booked but evidence suggests they didn't attend or cancelled. Signals include:
Gone cold / Lost: Prospects where all communication has dried up. Signals include:
Unqualified: Prospects who show signs of being a poor fit. Signals include:
The Slack message must be concise enough to scan in under 60 seconds. Aim for roughly 15 lines total. This is a hard constraint -- if you have 20 prospects, you can't give each one 4 lines. Compress.
The way to achieve this: each prospect gets ONE line. Use a tabular/compact format. Put the detailed CRM hygiene recommendations at the bottom in 2-3 lines.
PIPELINE REVIEW -- [Stage Name] ([count] prospects, $[total value])
[PRIORITY] [Name] | [email] | [phone] | $[value] -- [1-line status + next action]
[PRIORITY] [Name] | [email] | [phone] | $[value] -- [1-line status + next action]
...
CRM CLEANUP NEEDED:
- Duplicates: [names] (delete extra entries)
- No-shows: [names] (move to No Show)
- Lost: [names] (move to Lost)
- Unqualified: [names] (move to Unqualified)
If the user asked about multiple stages, separate them with a blank line and a stage header. But keep the same compact format.
For stages the user only wants a summary of (like "Meeting Booked" with no call history), just list names with contact info and any notable flags -- don't do the full status analysis.
Use short labels inline with each prospect line:
[HOT] -- respond today[WARM] -- follow up this week[--] -- monitoring, no urgent action[RISK] -- going coldslack_search_users"I see more prospects than you found" This almost always means the pagination or filtering missed some. Re-scan ALL entries without any server-side filter and count matches manually. The full-scan approach described in Step 2 prevents this.
"No emails found for a prospect" Check if the email address in the CRM is correct. Some prospects use a different email for scheduling vs. correspondence. Try searching by name in Fireflies if email search returns nothing.
"Fireflies has no calls for this prospect" The meeting may be under a colleague's name. Try searching by the prospect's company name or by the date range when the deal was active.
Rate limits or timeouts CRM and email APIs may rate-limit. If you hit limits, add small delays between requests. For Fireflies, the search endpoint can be slow -- be patient and retry on timeout. If rate-limited, fall back to email-only analysis for the remaining prospects rather than stalling the entire review.