Add Hosted Key
simstudioai/sim
Add hosted API key support to a tool so Sim provides the key (metered and billed to the workspace) when a user has not brought their own.
Agent skill
by growthenginenowoslawski in growthenginenowoslawski/coldoutboundskills
This skill should be used when searching for people/leads using the Prospeo Search Person API.
$ npx skills add growthenginenowoslawski/coldoutboundskills --skill prospeo-search-api -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install growthenginenowoslawski/coldoutboundskills prospeo-search-api --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/prospeo-search-api .claude/skills/prospeo-search-api && 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 "prospeo-search-api" agent skill from https://github.com/growthenginenowoslawski/coldoutboundskills/tree/main/skills/prospeo-search-api into .claude/skills/prospeo-search-api/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "prospeo-search-api", 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/prospeo-search-apiType 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 prospeo-search-api -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install growthenginenowoslawski/coldoutboundskills prospeo-search-api --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/prospeo-search-api .agents/skills/prospeo-search-api && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "prospeo-search-api" agent skill from https://github.com/growthenginenowoslawski/coldoutboundskills/tree/main/skills/prospeo-search-api into .agents/skills/prospeo-search-api/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "prospeo-search-api", 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 prospeo-search-api -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install growthenginenowoslawski/coldoutboundskills prospeo-search-api --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/prospeo-search-api .cursor/skills/prospeo-search-api && 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 "prospeo-search-api" agent skill from https://github.com/growthenginenowoslawski/coldoutboundskills/tree/main/skills/prospeo-search-api into .cursor/skills/prospeo-search-api/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "prospeo-search-api", 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/prospeo-search-api--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 prospeo-search-api -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install growthenginenowoslawski/coldoutboundskills prospeo-search-api --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/prospeo-search-api .gemini/skills/prospeo-search-api && 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 "prospeo-search-api" agent skill from https://github.com/growthenginenowoslawski/coldoutboundskills/tree/main/skills/prospeo-search-api into .gemini/skills/prospeo-search-api/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "prospeo-search-api", 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 prospeo-search-apiInstalls 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 prospeo-search-api -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/prospeo-search-api .github/skills/prospeo-search-api && 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 "prospeo-search-api" agent skill from https://github.com/growthenginenowoslawski/coldoutboundskills/tree/main/skills/prospeo-search-api into .github/skills/prospeo-search-api/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "prospeo-search-api", 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 prospeo-search-api -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 prospeo-search-api --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/prospeo-search-api .opencode/skills/prospeo-search-api && 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 "prospeo-search-api" agent skill from https://github.com/growthenginenowoslawski/coldoutboundskills/tree/main/skills/prospeo-search-api into .opencode/skills/prospeo-search-api/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "prospeo-search-api", 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.
prospeo-search-apiThis skill should be used when searching for people/leads using the Prospeo Search Person API.
Prospeo Search API is an agent skill from growthenginenowoslawski/coldoutboundskills. This skill should be used when searching for people/leads using the Prospeo Search Person API. It provides the correct API format, filter types, rate limiting patterns, and state-by-state crawling techniques to overcome the 25K result limit. Use when building lead lists, searching by job title/industry/location, or integrating with Prospeo.
Its SKILL.md is about 2.4k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Backend & APIs, covering Rate limiting. 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.
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 (its code samples are typescript and bash).
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:
api.prospeo.ioFrom URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
PROSPEO_API_KEYFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Prospeo Search API loads about 2.4k tokens when it runs. Until then it costs about 90 tokens; SKILL.md has 262 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). 262 words, ~2,366 tokens.
.claude/skills/prospeo-search-api/SKILL.md (or your agent's skills folder).This skill documents how to use the Prospeo Search Person API for finding leads with filters.
Use this skill when:
Endpoint: POST https://api.prospeo.io/search-person
Authentication: X-KEY header with API key
Rate Limits:
Result Limits:
POST /search-person
Headers: {
'Content-Type': 'application/json',
'X-KEY': process.env.PROSPEO_API_KEY
}
Body: {
page: number, // 1-1000
filters: ProspeoSearchFilters
}interface ProspeoSearchFilters {
// Location (use "State, United States #US" format)
person_location_search?: {
include?: string[]; // e.g., ["California, United States #US"]
exclude?: string[];
};
// Job titles
person_job_title?: {
include?: string[]; // e.g., ["CEO", "Founder"]
exclude?: string[];
match_only_exact_job_titles?: boolean;
};
// Company size
company_headcount_custom?: {
min?: number; // e.g., 11
max?: number; // e.g., 500
};
// Industry
company_industry?: {
include?: string[]; // e.g., ["Information Technology"]
exclude?: string[];
};
// Technology stack
company_technology?: {
include?: string[]; // e.g., ["Salesforce", "HubSpot"]
exclude?: string[];
};
// Contact requirements
person_contact_details?: {
email?: string[]; // ["VERIFIED"] for verified emails only
mobile?: string[];
operator?: string;
};
// Duplicate control
person_duplicate_control?: {
hide_people_from_all_my_lists?: boolean;
hide_people_already_exported_before?: boolean;
};
// Funding (use this for "recently raised Series X" targeting)
company_funding?: {
// Days since last funding round. Valid values: 90, 180, 270, 365, or null (None).
// Maps to UI dropdown "Select last funding round date".
funding_date?: 90 | 180 | 270 | 365 | null;
// Last funding round amount (bucketed enum range).
// Valid bucket values: "<100K", "100K-500K", "500K-1M", "1M-5M", "5M-10M",
// "10M-25M", "25M-50M", "50M-100M", "100M-500M", "500M+", "Max"
last_funding?: { min?: string; max?: string } | null;
// Total funding raised across all rounds (same bucketed enum range as last_funding).
total_funding?: { min?: string; max?: string };
// Funding stage checkboxes. Valid values:
// "Pre seed", "Seed", "Series unknown", "Series A", "Series B",
// "Series C", "Series D", "Series E-J",
// "Grant", "Angel", "Private equity", "Debt financing",
// "Non equity assistance", "Post IPO equity", "Undisclosed",
// "Post IPO debt", "Product crowdfunding", "Equity crowdfunding",
// "Corporate round", "Convertible note", "Secondary market",
// "Initial coin offering", "Post IPO secondary"
stage?: string[];
};
// Company filters
company_name?: { include?: string[]; exclude?: string[] };
company_domain?: { include?: string[]; exclude?: string[] };
company_revenue_custom?: { min?: number; max?: number };
company_founding_year?: { min?: number; max?: number };
}interface ProspeoSearchApiResponse {
error: boolean;
message?: string;
results?: ProspeoSearchResult[];
pagination?: {
current_page: number;
total_page: number;
total_count: number;
per_page: number; // Always 25
};
}
interface ProspeoSearchResult {
person: {
person_id: string;
first_name?: string;
last_name?: string;
full_name?: string;
current_job_title?: string;
linkedin_url?: string;
email?: string;
email_status?: string;
phone?: string;
location?: {
city?: string;
state?: string;
country?: string;
};
job_history?: Array<{
title?: string;
company_name?: string;
current?: boolean;
}>;
};
company?: {
company_id?: string;
name?: string;
domain?: string;
linkedin_url?: string;
industry?: string;
headcount?: number;
headcount_range?: string;
technologies?: string[];
location?: { city?: string; state?: string; country?: string };
};
}For US-wide searches exceeding 25K results, split by state:
const US_STATES_BY_SIZE = [
'California', 'Texas', 'Florida', 'New York', 'Illinois', 'Pennsylvania',
'Ohio', 'Georgia', 'North Carolina', 'Michigan', 'New Jersey', 'Virginia',
'Washington', 'Arizona', 'Massachusetts', 'Tennessee', 'Indiana', 'Missouri',
'Maryland', 'Wisconsin', 'Colorado', 'Minnesota', 'South Carolina', 'Alabama',
'Louisiana', 'Kentucky', 'Oregon', 'Oklahoma', 'Connecticut', 'Utah', 'Iowa',
'Nevada', 'Arkansas', 'Mississippi', 'Kansas', 'New Mexico', 'Nebraska',
'Idaho', 'West Virginia', 'Hawaii', 'New Hampshire', 'Maine', 'Montana',
'Rhode Island', 'Delaware', 'South Dakota', 'North Dakota', 'Alaska',
'Vermont', 'Wyoming'
];
// Format for location filter
function formatStateLocation(state: string): string {
return `${state}, United States #US`;
}
// Replace "United States #US" with state-specific location
function createStateFilters(baseFilters, state) {
const stateFilters = JSON.parse(JSON.stringify(baseFilters));
stateFilters.person_location_search.include =
stateFilters.person_location_search.include.map(loc =>
loc === 'United States #US' ? formatStateLocation(state) : loc
);
return stateFilters;
}// Token bucket rate limiter
class TokenBucket {
private tokens: number;
private lastRefill: number;
private maxTokens = 5;
private refillRate = 2.0; // tokens per second
async acquire(): Promise<void> {
this.refill();
if (this.tokens >= 1) {
this.tokens -= 1;
return;
}
const waitMs = Math.ceil(((1 - this.tokens) / this.refillRate) * 1000);
await this.sleep(Math.max(waitMs, 500));
this.refill();
this.tokens -= 1;
}
}// Retry on 429 with exponential backoff
if (status === 429 && retryCount < 5) {
const backoffMs = Math.min(2000 * Math.pow(2, retryCount), 60000);
await sleep(backoffMs);
return searchPeople(filters, page, retryCount + 1);
}const filters: ProspeoSearchFilters = {
person_location_search: {
include: ['United States #US']
},
person_job_title: {
include: ['CEO', 'CTO', 'VP Engineering', 'Head of Engineering'],
match_only_exact_job_titles: false
},
company_headcount_custom: {
min: 11,
max: 500
},
company_industry: {
include: ['Information Technology', 'Software']
},
person_contact_details: {
email: ['VERIFIED']
}
};
const service = new ProspeoSearchService();
const { results, summary } = await service.searchWithStateSplitting(filters, {
maxTotalContacts: 10000,
maxContactsPerState: 5000
});Target marketing leaders at US software companies (50–200 employees) that raised Series A in the last 180 days:
const filters: ProspeoSearchFilters = {
person_location_search: { include: ['United States #US'] },
person_job_title: {
include: [
'CMO', 'Chief Marketing Officer',
'VP Marketing', 'Vice President Marketing',
'Head Marketing', 'Director Marketing',
'Growth', 'VP Growth', 'Head Growth'
]
},
company_headcount_custom: { min: 50, max: 200 },
company_industry: {
include: ['Software Development', 'Computer Software', 'Information Technology & Services']
},
company_funding: {
funding_date: 180,
stage: ['Series A']
},
person_contact_details: { email: ['VERIFIED'] }
};Set funding_date to 90 / 180 / 270 / 365 for tighter or looser recency windows.
Use null (or omit) to ignore recency and match any company currently at the given stage.
/prospeo-full-export — the search + paginated export scripts built on these filters/list-expander scripts/pull.ts — the same filters, used for wide TAM pulls/list-builder — orchestrates both as one lane of a larger list buildPROSPEO_API_KEY=your_api_key_hereThis is a reference skill — no direct next step. Used by /prospeo-full-export and /auto-research-public to build the actual search.
Return to the skill that sent you here.
/prospeo-full-export — the main consumer of this reference/auto-research-public — also uses Prospeo search via phase-prospeo.ts© growthenginenowoslawski, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in skills/prospeo-search-api of growthenginenowoslawski/coldoutboundskills.
Open the folder on GitHubat commit 25c5d85
Prospeo Search API 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 |
|---|---|---|---|---|---|---|
| Prospeo Search API this skillgrowthenginenowoslawski/coldoutboundskills | 753 | — | ~2.4k | Automated safety check: Pass | MIT | |
| Add Hosted Keysimstudioai/sim | 30k | — | ~3.6k | Automated safety check: Pass | Apache-2.0 | |
| Upstash Ratelimit TSupstash/ratelimit-js | 2k | — | ~313 | Automated safety check: Pass | MIT | |
| Repo2skillzhangyanxs/repo2skill | 246 | — | ~3.6k | Automated safety check: Pass | None | |
| Better Auth Security Best PracticesEpicenterHQ/epicenter | 4.8k | — | ~896 | Automated safety check: Pass | Custom licence | |
| Dload Fetch Toolphp-internal/dload | 105 | — | ~1.1k | Automated safety check: Pass | BSD-3-Clause |
simstudioai/sim
Add hosted API key support to a tool so Sim provides the key (metered and billed to the workspace) when a user has not brought their own.
upstash/ratelimit-js
Lightweight guidance for using the Redis Rate Limit TypeScript SDK, including setup steps, basic usage, and pointers to advanced algorithm, features, pricing, and traffic‑protection docs.
zhangyanxs/repo2skill
Convert GitHub/GitLab/Gitee repositories into comprehensive OpenCode Skills using embedded LLM calls with multiple mirrors and rate limit handling
EpicenterHQ/epicenter
Better Auth security hardening: rate limits, secrets, CSRF, trusted origins, cookies, sessions, OAuth tokens, and audit logging.
php-internal/dload
Get a CLI tool — native binary or PHAR — from a GitHub release into a project folder with dload (vendor/bin/dload).
itsmostafa/aws-agent-skills
AWS API Gateway for REST and HTTP API management. An agent skill from itsmostafa/aws-agent-skills.
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
This skill should be used when searching for people/leads using the Prospeo Search Person API. Prospeo Search API is an agent skill from growthenginenowoslawski/coldoutboundskills. This skill should be used when searching for people/leads using the Prospeo Search Person API.
Prospeo Search API fits situations like: building lead lists; searching by job title/industry/location; integrating with Prospeo.
Run `npx skills add growthenginenowoslawski/coldoutboundskills --skill prospeo-search-api -a claude-code`. Or copy the skill folder (skills/prospeo-search-api in growthenginenowoslawski/coldoutboundskills) into .claude/skills/prospeo-search-api in your project. Claude Code loads it when a task matches its description.
Run `npx skills add growthenginenowoslawski/coldoutboundskills --skill prospeo-search-api -a codex`. Or copy the skill folder (skills/prospeo-search-api in growthenginenowoslawski/coldoutboundskills) into .agents/skills/prospeo-search-api 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 prospeo-search-api -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/prospeo-search-api, .gemini/skills/prospeo-search-api, .github/skills/prospeo-search-api and .opencode/skills/prospeo-search-api in your project.
Going by SKILL.md and its folder, Prospeo Search API needs credentials named PROSPEO_API_KEY. Our summary lists: A credential in PROSPEO_API_KEY.
SKILL.md names 1 domain. In commands or code: api.prospeo.io; 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.
Prospeo Search API is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.4k tokens (SKILL.md is roughly 9.5k 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 Prospeo Search API: Add Hosted Key (simstudioai/sim, 30k stars), Upstash Ratelimit TS (upstash/ratelimit-js, 2k stars), Repo2skill (zhangyanxs/repo2skill, 246 stars) and Better Auth Security Best Practices (EpicenterHQ/epicenter, 4.8k 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.