Back to the catalog

saleshandy

Saleshandy prospecting and enrichment for Claude Code — natural-language ICP search and one-shot lead enrichment, wired through the Saleshan

Open source Open in the app JSON README (API)

About

Saleshandy prospecting and enrichment for Claude Code — natural-language ICP search and one-shot lead enrichment, wired through the Saleshandy MCP server.

Details

Kind
Plugins
Topic
No topic detected
Publisher
saleshandy
Origin
marketplace
Category
ferramentas
Last push
2026-05-11T07:38:09Z
Repository state
ativo
License
MIT
Added
2026-08-30 01:48:58
Updated
2026-08-30 01:48:58
Origin id
saleshandy/saleshandy-plugin/saleshandy

README

# Saleshandy Plugin for Claude Code

This plugin brings Saleshandy prospecting and enrichment into Claude Code. It connects to Saleshandy's hosted MCP server at `https://mcp.saleshandy.com/mcp`. You sign in via your browser once; there are no API keys to manage.

You don't have to memorize commands. Just describe what you want in plain language, and Claude routes the request to the right Saleshandy workflow automatically.

## What's in the box

The plugin ships **two workflows**, each available via natural language *or* an explicit slash command.

### Discover and enroll

Describe an ideal customer profile and Claude searches Lead Finder, optionally enriches the matches, and (if you want) enrolls them into a sequence step.

Just say things like:
- *"Find HR managers at 51–200 employee SaaS companies in the EU"*
- *"Get me 20 fintech CTOs with phones"*
- *"Show me marketing directors at Series B startups"*

Or invoke explicitly with `/saleshandy:discover-and-enroll <ICP description> [--phone]`.

### Enrich leads

Paste a LinkedIn URL, a company domain, or "Name at Company". Claude reveals the verified email (and optionally phone).

Just say things like:
- *"Enrich https://linkedin.com/in/<linkedin-handle>"*
- *"What's the email for <name> at <company.com>?"*
- *"Look up <company.com> — include phones"*

Or invoke explicitly with `/saleshandy:enrich-leads <linkedin_url | domain | "Name at company.com"> [--phone]`.

## Prerequisites

- A [Saleshandy](https://www.saleshandy.com) account (free signup; you'll authenticate via your browser the first time you run a workflow).
- Lead Finder credits on that account — enrichment is metered (~1 credit per email reveal, ~7 credits per email + phone reveal, ~0.1 credit per company enrichment).
- A recent version of Claude Code (skills require a current build; update with `claude update` if your install is older than a few weeks).

## Install

Inside Claude Code, add the Saleshandy marketplace and install the plugin:

```text
/plugin marketplace add saleshandy/saleshandy-plugin
/plugin install saleshandy@saleshandy-plugin
```

Or do it in one step from your shell:

```bash
claude plugin marketplace add saleshandy/saleshandy-plugin
claude plugin install saleshandy@saleshandy-plugin
```

To pin a specific release, append a tag to the marketplace URL:

```text
/plugin marketplace add https://github.com/saleshandy/saleshandy-plugin.git#v1.0.0
```

### Updating

Once installed, pull the latest published version with:

```text
/plugin marketplace update saleshandy-plugin
```

### Local development

If you're working on the plugin from a checkout, point the marketplace at the directory:

```text
/plugin marketplace add /absolute/path/to/saleshandy-plugin
/plugin install saleshandy@saleshandy-plugin
```

## Authentication

The hosted MCP server uses OAuth 2.0 (RFC 9728 + RFC 7591 dynamic client registration). The first time you trigger a Saleshandy workflow (whether by natural language or by typing a `/saleshandy:*` command):

1. Claude Code discovers the OAuth endpoints from the MCP server and registers itself as a client.
2. Your browser opens Saleshandy's sign-in page.
3. You sign in and approve the `mcp:read` scope.
4. Claude Code stores the token in its local config.

Subsequent runs reuse the token. To revoke access, sign out of Saleshandy or remove the stored credentials from Claude Code's auth UI.

## How it behaves

The plugin is conservative about anything that changes Saleshandy state. `add_leads_to_sequence` always shows a preview and waits for an explicit confirmation from you. The model does not pick the sequence or the step — those are always your choices.

- Sage search is capped at 1 call per turn and 6 per conversation. `discover-and-enroll` does not fan out to find more results; it surfaces `payload.resultUrl` so you can refine in the Saleshandy web app.
- Enrichment jobs are async (30 seconds to a few minutes). The plugin returns the `requestId` and asks you to check back rather than blocking. The 15-second cooldown on `get_enrichment_status` is respected.
- Lead Finder results and enrichment fields are displayed only when the API actually returns them. Missing fields are omitted, not filled in.
- **Personal email reveals are not supported.** Enrichment only returns verified *work* emails. If you ask for a personal/gmail/non-work email, the plugin will not attempt it and will direct you to request it at [my.saleshandy.com/v2/leads/people/total](https://my.saleshandy.com/v2/leads/people/total) instead.

## Layout

```
saleshandy-plugin/
├── .claude-plugin/
│   ├── plugin.json          # plugin manifest
│   └── marketplace.json     # marketplace catalog (this repo IS the marketplace)
├── commands/                # explicit slash-command surface
│   ├── enrich-leads.md
│   └── discover-and-enroll.md
├── skills/                  # natural-language surface (model-invoked)
│   ├── discover-and-enroll/
│   │   └── SKILL.md
│   └── enrich-leads/
│       └── SKILL.md
├── .mcp.json                # registers the hosted Saleshandy MCP server (OAuth auto-discovery)
├── CONTRIBUTING.md
├── LICENSE
└── README.md
```

## Troubleshooting

- **OAuth flow doesn't open a browser** — Claude Code's MCP OAuth requires a recent version with HTTP transport + dynamic client registration support. Update Claude Code if the flow stalls.
- **`401` after sign-in** — your Saleshandy session may have expired. Re-trigger a Saleshandy workflow and Claude Code will re-authenticate.
- **"Tool not found: mcp__saleshandy__..."** — the MCP server isn't reachable. Check that `https://mcp.saleshandy.com/mcp` is accessible from your network.
- **Sage search returns 0 results, refining doesn't help** — that's the answer. The plugin won't auto-retry. Use the `payload.resultUrl` from the response to refine in the Saleshandy web app.
- **Enrichment stuck at `in-progress` forever** — large batches can take a few minutes. Note the `requestId` and check back; don't keep re-running the command.

## Contributing

Found a bug or have a feature request? Open an issue on [GitHub](https://github.com/saleshandy/saleshandy-plugin/issues). For development and release workflow, see [CONTRIBUTING.md](./CONTRIBUTING.md).

## License

MIT — see [LICENSE](./LICENSE).

More