Virtuals Protocol Acp
Virtual-Protocol/openclaw-acp
Hire specialised agents to handle any task — data analysis, trading, content generation, research, on-chain operations, 3D printing, physical goods, gift delivery, and more.
Agent skill
by growthenginenowoslawski in growthenginenowoslawski/coldoutboundskills
Produces a copy-ready sentence about a company's funding round, and the list-building filters that select companies which have ever raised or raised recently.
$ npx skills add growthenginenowoslawski/coldoutboundskills --skill playbook-fundraising -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install growthenginenowoslawski/coldoutboundskills playbook-fundraising --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/growthenginenowoslawski/coldoutboundskills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/playbooks/playbook-fundraising .claude/skills/playbook-fundraising && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "playbook-fundraising" agent skill from https://github.com/growthenginenowoslawski/coldoutboundskills/tree/main/skills/playbooks/playbook-fundraising into .claude/skills/playbook-fundraising/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "playbook-fundraising", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/growthenginenowoslawski/coldoutboundskills/tree/main/skills/playbooks/playbook-fundraisingType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add growthenginenowoslawski/coldoutboundskills --skill playbook-fundraising -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install growthenginenowoslawski/coldoutboundskills playbook-fundraising --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/growthenginenowoslawski/coldoutboundskills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/playbooks/playbook-fundraising .agents/skills/playbook-fundraising && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "playbook-fundraising" agent skill from https://github.com/growthenginenowoslawski/coldoutboundskills/tree/main/skills/playbooks/playbook-fundraising into .agents/skills/playbook-fundraising/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "playbook-fundraising", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add growthenginenowoslawski/coldoutboundskills --skill playbook-fundraising -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install growthenginenowoslawski/coldoutboundskills playbook-fundraising --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/growthenginenowoslawski/coldoutboundskills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/playbooks/playbook-fundraising .cursor/skills/playbook-fundraising && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "playbook-fundraising" agent skill from https://github.com/growthenginenowoslawski/coldoutboundskills/tree/main/skills/playbooks/playbook-fundraising into .cursor/skills/playbook-fundraising/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "playbook-fundraising", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/growthenginenowoslawski/coldoutboundskills.git --path skills/playbooks/playbook-fundraising--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add growthenginenowoslawski/coldoutboundskills --skill playbook-fundraising -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install growthenginenowoslawski/coldoutboundskills playbook-fundraising --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/growthenginenowoslawski/coldoutboundskills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/playbooks/playbook-fundraising .gemini/skills/playbook-fundraising && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "playbook-fundraising" agent skill from https://github.com/growthenginenowoslawski/coldoutboundskills/tree/main/skills/playbooks/playbook-fundraising into .gemini/skills/playbook-fundraising/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "playbook-fundraising", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install growthenginenowoslawski/coldoutboundskills playbook-fundraisingInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add growthenginenowoslawski/coldoutboundskills --skill playbook-fundraising -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/growthenginenowoslawski/coldoutboundskills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/playbooks/playbook-fundraising .github/skills/playbook-fundraising && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "playbook-fundraising" agent skill from https://github.com/growthenginenowoslawski/coldoutboundskills/tree/main/skills/playbooks/playbook-fundraising into .github/skills/playbook-fundraising/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "playbook-fundraising", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add growthenginenowoslawski/coldoutboundskills --skill playbook-fundraising -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install growthenginenowoslawski/coldoutboundskills playbook-fundraising --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/growthenginenowoslawski/coldoutboundskills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/playbooks/playbook-fundraising .opencode/skills/playbook-fundraising && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "playbook-fundraising" agent skill from https://github.com/growthenginenowoslawski/coldoutboundskills/tree/main/skills/playbooks/playbook-fundraising into .opencode/skills/playbook-fundraising/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "playbook-fundraising", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
playbook-fundraisingProduces a copy-ready sentence about a company's funding round, and the list-building filters that select companies which have ever raised or raised recently.
Playbook Fundraising is an agent skill from growthenginenowoslawski/coldoutboundskills. Produces a copy-ready sentence about a company's funding round, and the list-building filters that select companies which have ever raised or raised recently. Triggers on "raised a round", "recently funded", "companies that raised", "Series A list", "VC backed", "post funding outreach", "who just raised". Outputs fundingline, a COMPLETE sentence including the leading "Saw" and the trailing period, so an empty value renders as nothing at all.
Its SKILL.md is about 4.7k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files (for example `clay-table.md` and `clay-workflow.md`).
It sits in Business, Finance & HR, covering Fundraising and pitch decks. The repository describes itself as: Open-source Claude Code skills for cold email and outbound sales. Grade campaigns, export Prospeo searches, scrape Google Maps — all from Claude Code. The licence is MIT.
7 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 25c5d85. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md.
From the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
crunchbase.comFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Playbook Fundraising loads about 4.7k tokens when it runs. Until then it costs about 117 tokens; SKILL.md has 2,412 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from growthenginenowoslawski/coldoutboundskills at commit 25c5d85, republished under its MIT licence (© growthenginenowoslawski). 2,412 words, ~4,659 tokens.
.claude/skills/playbook-fundraising/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.All rules here are best practice, not law. Override any of them when the campaign calls for it; note the best practice once and move on.
Use when: the angle depends on the prospect having money to spend or a mandate to grow — either a TAM filtered to funded companies, or a first line that names their round.
Do not use when: you want headcount growth or open roles as the signal (playbook-hiring-surge).
If you want the round as a pure list filter and no copy at all, you only need lane A in §3.
One-line output: funding_line = "Saw you raised $52M in the Series B." — the whole sentence
lives in the variable. §2's downstream gate explains why that matters more than it looks.
Three separate questions get called "fundraising", and they route to different sources. Do not mix them up: one is a solved free problem and one is not solved at all.
funding_line. This is the main deliverable and the tested path.Not covered: valuation claims, investor-name personalization, and anything reported only as a rumor.
| Field | Type | Required? |
|---|---|---|
domain (bare, lowercase, no www, no scheme) | string | yes |
company_name | string | no, used only for the abstain log and QA |
| Field | Type | Example | Max | Null? |
|---|---|---|---|---|
funding_line | string | Saw you raised $52M in the Series B. | 90 | no, use the abstain value |
funding_clause | string | you raised $52M in the Series B | 80 | no, use "" |
funding_evidence_url | string | a funding-round URL | 300 | no, use "" |
funding_confidence | enum | high / low | 4 | no |
Abstain value: "". funding_confidence is low whenever the line is empty.
8/10 rows usable (80%), where "usable" counts a correct abstain on a company that genuinely has no recent round.
Read the second number too: only 2/10 rows produced a non-empty line, because the test set was adversarial — three bootstrapped companies and three whose last round is years old. On a list already filtered through lane A with a 365-day funding window, every row has a funding event by construction, so the non-empty rate is governed by the equity-stage filter and the 12-month window rather than by source coverage. That rate was not measured. Measure it on your first real campaign before letting copy depend on the variable being present.
Two fields, two different jobs. Keep them straight.
funding_clause is what the model writes: lowercase first letter, no trailing period, under
80 characters, 5th-grade reading level, no em dashes. It must read grammatically inside
Saw <funding_clause>.funding_line is what gets pushed: deterministic code wraps the clause into
"Saw " + funding_clause + ".". When the clause is "", the line is "" too. The model never
writes this field, a formula does, so the wrapping cannot be forgotten or hallucinated.⚠️ Spintax is a RANDOM chooser, not a conditional.
{Saw {{funding_line}}. |} picks one of its branches at random on every row, with no knowledge of
whether the variable is populated. On rows that abstain it renders Saw . about half the time,
and on rows that DO have a line it throws the personalization away about half the time.
Spintax can never be used as an if-populated gate for any variable, in this playbook or any other. This generalizes past fundraising and is probably the single most useful thing in this file.
There are exactly two mechanisms that work. Pick one per campaign:
funding_line carries the leading "Saw" and the trailing period. The body line is just
{{funding_line}} on its own line. An empty variable renders nothing, so an abstaining row
simply loses that sentence and the rest of the email is untouched.
QA step: after upload, preview one abstaining lead and confirm the paragraph collapses
cleanly without leaving a double blank line.Only exclude abstaining rows entirely when the campaign angle is the round.
The usual word-level spintax block for wording variety is unrelated and still required. Spintax is for wording variety, never for conditional content.
| # | Source | Cost | Call | Hit rate |
|---|---|---|---|---|
| 1 | A people/company search API's funding filter | FREE | add a company_funding.stage array of equity stages to your ICP filters; for recency add a funding_date of 365 or 180 | 76% of a US software 50-500 segment had raised at any stage, 65% at an equity stage |
Equity stage set: Pre seed, Seed, Series unknown, Series A through Series E-J, Angel,
Corporate round, Convertible note, Equity crowdfunding.
| # | Source | Cost | What it does | Result |
|---|---|---|---|---|
| 1 | Company lookup by domain, read the funding block | FREE | {"filters":{"company":{"websites":{"include":["acme.com"]}}},"page":1} with a browser User-Agent | 6/10 domains returned a funding record, 9/10 resolved to the correct company |
| 2 | domain-equality guard (code) | FREE | assert the returned company.domain equals the requested domain | removed 1 wrong company out of 10. Mandatory, never skip |
| 3 | equity-stage and 12-month filter (code) | FREE | drop Secondary market, Private equity, Debt financing, Grant, Undisclosed, Non equity assistance, all Post IPO *, Product crowdfunding. Then require the newest survivor to be ≤12 months old | removed 3 misleading "latest rounds" out of 6. Mandatory |
| 4 | Model phrasing | CHEAP, $0.22/1k | §6. Wording only, never arithmetic or eligibility | 2/2 eligible rows produced clean copy |
⛔ There is no step 5. If the lookup returned no company record at all, the row abstains and the line is empty, which is the correct outcome for a signal you cannot evidence. Do not add a paid company-enrichment fallback: it costs roughly 8 credits per company and does not carry funding fields anyway.
| # | Source | Cost | Reality |
|---|---|---|---|
| 1 | A funding-signals feed | cheap, per record | dates ran through yesterday, so freshness is real. But only 9 of 25 rows carried a clean company name, and none carried a domain |
| 2 | Model cleanup plus domain resolution | CHEAP | read company name + source URL + round type + amount, return {company_name, is_closed_round, is_acquisition}, then resolve name→domain |
| 3 | A web-research "find all" API | EXPENSIVE | not tested. Write a stated reason into the run notes before firing it, and cap the run |
| 4 | A funding database's UI export, by hand | expensive (seat) | reliable but manual. One-off urgent lists only, never a recurring campaign |
total_count = 1. The index lags 3 to 4 months.Unfunded, and
one labelled Acqui-Hired. Entity search ranks on static attributes and has no event-date
awareness, so a date-bounded objective degrades into "companies that look fundable".total_funding as a copy fact. One company came back at $550.9M where the press reported
$452M, because these totals fold in debt facilities and secondary sales.raised_at as a copy fact. Off by 15 days for one company, one month for another, two
months for a third.VERDICT: PASS 8/10 (80% usable) | claims 8/8 (100% correct) | chain = company lookup by domain → domain-equality guard → equity-stage + 12-month filter → model line writer | p50 3.0s/row | ~$0.22/1k.
This is a claim-bearing playbook, so it carries two bars: 70% usable AND 90% claim correctness.
The 90% is coverage correctness, not coverage — scored as true claims / rows where a claim was emitted. A company that never raised, correctly abstained on, is a correct outcome and leaves the
denominator entirely. It is not a miss. The bar binds on truthfulness when the signal exists,
because a fabricated round is the one failure nobody can fix after it sends.
Both misses above were coverage misses (no record for one domain; a two-month date error pushed one round outside the window), not false claims — which is why claim correctness is 8/8.
⚠️ Lane A's end-to-end list quality was not graded. Lane C is untested end to end and must not be described as working.
clay-table.md — the 7-column build.clay-workflow.md — the CLI-buildable version.Model: the one this prompt was graded on. Params: max_completion_tokens=3000 (never
max_tokens on a reasoning model), no temperature, response_format={"type":"json_object"},
flex tier for batch.
⚠️ No prompt-cache discount applies here. The static prefix is ~520 tokens and caching engages
at 1,024+. cached_tokens was 0 on all 20 measured calls. Do not budget for a cache discount.
The prompt's JSON key is funding_line because that is byte-for-byte what was graded — but it holds
the clause. Code wraps it into the pushed sentence. Do not edit the key to "fix" the naming;
that silently changes the tested prompt.
You write one short clause about a funding round for a cold email.
You will be given a JSON record for one company. Every fact in it has already been
checked. Your only job is wording. Do not do arithmetic and do not add facts.
Return JSON only, exactly these keys:
{"funding_line": "...", "evidence_url": "...", "confidence": "high|low"}
Rules:
- If eligible is false, return "" for funding_line and "low" for confidence. Nothing else.
- The clause must read grammatically inside this sentence: "Saw <funding_line>."
- Start with a lowercase letter. No trailing period. No em dashes. No quote marks.
- 5th-grade reading level. Under 80 characters.
- Use amount exactly as written in the record. Never change the number.
- If stage is not empty, name it. If stage is empty, say "round" instead.
- Never name a month, a season, a year, or a date. Never say "recently".
- Never mention total funding, valuation, or investors.
- Copy evidence_url from the record. Set confidence to the value in the record.
Examples:
Input: {"company":"Attio","amount":"$52M","stage":"Series B","eligible":true,"evidence_url":"https://www.crunchbase.com/funding_round/attio-series-b","confidence":"high"}
Output: {"funding_line":"you raised $52M in the Series B","evidence_url":"https://www.crunchbase.com/funding_round/attio-series-b","confidence":"high"}
Input: {"company":"Deel","amount":"$300M","stage":"","eligible":true,"evidence_url":"https://www.crunchbase.com/organization/deel","confidence":"high"}
Output: {"funding_line":"you closed a $300M round","evidence_url":"https://www.crunchbase.com/organization/deel","confidence":"high"}
Input: {"company":"Northwind Labs","amount":"","stage":"Series A","eligible":true,"evidence_url":"https://www.crunchbase.com/organization/northwind-labs","confidence":"high"}
Output: {"funding_line":"you closed the Series A","evidence_url":"https://www.crunchbase.com/organization/northwind-labs","confidence":"high"}
Input: {"company":"Acme Widgets","amount":"","stage":"","eligible":false,"evidence_url":"","confidence":"low"}
Output: {"funding_line":"","evidence_url":"","confidence":"low"}
PER-ROW DATA (appended last, as the user message)
<the eligibility record>Verifier pass: not needed, and deliberately so. The usual reason to add one is that the model might hallucinate a date or an amount. Here it is structurally incapable of it: eligibility, the 12-month arithmetic, the stage filter and the rounding all happen in code before the call, and the prompt forbids dates, totals, valuations and investors outright. The only facts in play are a stage string and a pre-formatted amount string, both copied verbatim. Spend the verifier budget on lane C instead, where headline parsing genuinely can invent a round.
Truncation guard: finish_reason=length with empty content means retry, never abstain. A
reasoning model burns reasoning tokens before emitting content and can hit the ceiling on a trivial
prompt. Retry up to 3 times.
What an unlocked prompt looks like: the v1 of this prompt scored 4/10 and shipped
you closed the Series E-J back in October and you have raised north of $550M to date. Both are
exactly the failures the locked rules now forbid.
| Symptom | Cause | Fix |
|---|---|---|
| Lookup returns a completely different company | A website filter matches other listed websites too, so a vendor that lists your target as a customer wins the match. Observed live, with a total count of 1 and no warning | Assert the returned domain equals the requested domain. There is often no strict-domain filter available — a company_domain filter 400s |
| A first line calls a secondary sale a fundraise | The funding-events array includes Secondary market rows, sometimes with a large recent amount. One company had a $300,000,000 secondary | Filter to the equity stage set before sorting for the latest event. Existing shareholders selling is not money the company raised, and a founder will notice |
| A first line calls a PE minority stake a fundraise | Databases record a PE firm's purchase of a stake as a Private equity round | Exclude Private equity by default. Buying shares from existing holders is not money into the company, so calling it a raise is a false claim. Toggleable per campaign for a PE-adjacent offer; note the override |
Copy contains Series E-J | That is a database bucket label for late-stage rounds, not a real round name | Blank it and fall back to the word "round". Same for Series unknown |
| The month in the copy is wrong | raised_at is systematically early. Measured: off 15 days, one month, and two months on three companies | Never put a month or a date in the line. The locked prompt forbids it |
| The total raised does not match the press | Database totals fold in debt facilities and secondary sales | Never quote total funding. Quote the round amount, which checked out exactly on 4 of 4 |
| A company that clearly raised gets an empty line | No record at that domain, or the round is newer than the index (3 to 4 month lag) | Expected. Abstain is correct, and the whole-sentence variable renders as nothing. Do not "fix" it by loosening the guard |
An email goes out reading Saw . | Somebody wrapped the clause in spintax as an if-populated gate | Spintax is a random chooser. Use the whole-sentence variable or split at upload |
| A recency filter returns HTTP 400 | Some APIs return 400 with NO_RESULTS instead of an empty list | Treat 400 + NO_RESULTS as zero matches, not an outage. A client that raises on any 400 looks broken |
| A "last 30 days" list is full of acquisitions and rumors | Funding feeds mix in acquisitions, VC fund closes (a firm raising its own fund), and rumors ("in talks to", "reportedly raising") | The cleanup step must return is_closed_round and is_acquisition, and you must filter on both |
| A "last 30 days" amount is absurd | Headline parsing produced $600,000,000,000 from an article about AI budgets, and 0.261 USD tagged as debt | Require the amount to reconcile with the linked article, or drop the amount and name only the round |
Empty model response with finish_reason=length | Reasoning overran the ceiling | Retry up to 3 times. Never record it as an abstain |
| Vendor timeout mid-batch | Transient | Retry once, then mark the row error and exclude it from any hit-rate denominator. An API error is never a data verdict |
limit: 200 call spends 200
credits.© growthenginenowoslawski, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 2 other files in skills/playbooks/playbook-fundraising of growthenginenowoslawski/coldoutboundskills.
Open the folder on GitHubat commit 25c5d85
Playbook Fundraising next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Playbook Fundraising this skillgrowthenginenowoslawski/coldoutboundskills | 753 | — | ~4.7k | Automated safety check: Pass | MIT | |
| Virtuals Protocol AcpVirtual-Protocol/openclaw-acp | 168 | 1 repos | ~6.4k | Automated safety check: Pass | None | |
| Yc Applypedronauck/skills | 634 | — | ~1.3k | Automated safety check: Pass | None | |
| Storyline Buildersruthir28/enterprise-ai-skills | 148 | 1 repos | ~1.9k | Automated safety check: Pass | MIT | |
| Startup Pitchferdinandobons/startup-skill | 1.2k | — | ~6.4k | Automated safety check: Pass | MIT | |
| Dd SourcingAbilityai/trinity | 636 | — | ~664 | Automated safety check: Pass | Apache-2.0 |
Virtual-Protocol/openclaw-acp
Hire specialised agents to handle any task — data analysis, trading, content generation, research, on-chain operations, 3D printing, physical goods, gift delivery, and more.
pedronauck/skills
Prepare, review, and package Y Combinator application answers and founder-video notes using the live form and verified founder facts.
sruthir28/enterprise-ai-skills
McKinsey-style storyline framework for building presentation decks.
ferdinandobons/startup-skill
Build investor-ready pitch scripts in multiple formats (10-min, 5-min, 2-min, 1-min elevator, investor email).
Abilityai/trinity
Document sources properly for due diligence reports. An agent skill from Abilityai/trinity.
sanqiufong/slides-from-anything
Single-file horizontal-swipe HTML deck in the style of Replit Slides's landing-page template gallery.
growthenginenowoslawski/coldoutboundskills
Diagnostic audit for a running cold email program. An agent skill from growthenginenowoslawski/coldoutboundskills.
growthenginenowoslawski/coldoutboundskills
Conversational intake for cold email campaigns. An agent skill from growthenginenowoslawski/coldoutboundskills.
growthenginenowoslawski/coldoutboundskills
META skill — build the largest possible qualified lead list for any request, end to end.
growthenginenowoslawski/coldoutboundskills
Autonomous cold email campaign launcher. An agent skill from growthenginenowoslawski/coldoutboundskills.
growthenginenowoslawski/coldoutboundskills
Use the Blitz API to find decision-makers at specific companies when you already have a list of company domains.
growthenginenowoslawski/coldoutboundskills
Compare reply rates, bounce rates, and positive reply rates broken down by inbox type (SMTP / Gmail / Outlook) for a Smartlead account.
Categories
Produces a copy-ready sentence about a company's funding round, and the list-building filters that select companies which have ever raised or raised recently. Playbook Fundraising is an agent skill from growthenginenowoslawski/coldoutboundskills. Produces a copy-ready sentence about a company's funding round, and the list-building filters that select companies which have ever raised or raised recently.
Playbook Fundraising fits situations like: recently funded; companies that raised; post funding outreach; who just raised.
Run `npx skills add growthenginenowoslawski/coldoutboundskills --skill playbook-fundraising -a claude-code`. Or copy the skill folder (skills/playbooks/playbook-fundraising in growthenginenowoslawski/coldoutboundskills) into .claude/skills/playbook-fundraising in your project. Claude Code loads it when a task matches its description.
Run `npx skills add growthenginenowoslawski/coldoutboundskills --skill playbook-fundraising -a codex`. Or copy the skill folder (skills/playbooks/playbook-fundraising in growthenginenowoslawski/coldoutboundskills) into .agents/skills/playbook-fundraising in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add growthenginenowoslawski/coldoutboundskills --skill playbook-fundraising -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/playbook-fundraising, .gemini/skills/playbook-fundraising, .github/skills/playbook-fundraising and .opencode/skills/playbook-fundraising in your project.
SKILL.md names no scripts, command-line tools or credentials: Playbook Fundraising is instructions for the agent only.
SKILL.md names 1 domain. In commands or code: crunchbase.com; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Playbook Fundraising is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 4.7k tokens (SKILL.md is roughly 19k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Playbook Fundraising: Virtuals Protocol Acp (Virtual-Protocol/openclaw-acp, 168 stars), Yc Apply (pedronauck/skills, 634 stars), Storyline Builder (sruthir28/enterprise-ai-skills, 148 stars) and Startup Pitch (ferdinandobons/startup-skill, 1.2k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
growthenginenowoslawski (a GitHub user) maintains it in growthenginenowoslawski/coldoutboundskills, which has 753 GitHub stars. The repository holds 49 skills in this directory. The repository was last updated on October 5, 2026.
Source: growthenginenowoslawski/coldoutboundskills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.