prospector
This skill finds leads via https://api.exa.ai/search and https://api.apollo.io/api/v1/mixed_people/search, exports CSV to ~/Desktop, and can sync to https://api.attio.com. It instructs running python3 -c commands, writes ~/.config/prospector/config.json, and can append PROSPECTOR_EXA_API_KEY/PROSPECTOR_APOLLO_API_KEY/PROSPECTOR_ATTIO_API_KEY to shell profiles.
Prospector
A Claude Code skill for finding leads matching your ICP (Ideal Customer Profile).
Workflow: Define your ICP → Search companies via Exa → Enrich contacts via Apollo → Export to CSV (+ optional Attio sync)
Installation
-
Clone this repo:
git clone https://github.com/YOUR_USERNAME/prospector.git ~/.claude/skills/prospector -
Install the Python dependency:
pip install httpx -
Get API keys:
- Exa (required): https://exa.ai - Sign up for free tier
- Apollo (required): https://apollo.io - Sign up for API access
- Attio (optional): https://attio.com - If you want CRM sync
Usage
First-time Setup
Run the setup command to configure your API keys:
/prospector:setup
This will:
- Ask for your Exa API key and validate it
- Ask for your Apollo API key and validate it
- Optionally ask for your Attio API key
- Optionally set environment variables in your shell profile
- Save keys securely to
~/.config/prospector/config.json(chmod 600)
Finding Leads
Run the main command:
/prospector
You'll be asked:
- Industry - SaaS, Fintech, Healthcare, E-commerce, AI/ML, or Any
- Company Size - 1-10, 11-50, 51-200, 201-500, 500+, or Any
- Funding Stage - Pre-seed, Seed, Series A, Series B+, or Any
- Geography - United States, Europe, Global, or Any
- Keywords (optional) - Specific terms to look for
- Contact Count - 25, 50, or 100
Results are saved to your Desktop as prospector-leads-YYYY-MM-DD.csv.
CSV Output
The CSV includes:
company_name- Company namecompany_domain- Company website domaincompany_size- Employee count rangeindustry- Industry verticallocation- Contact's locationcontact_name- Full namecontact_title- Job titlecontact_email- Email addresscontact_linkedin- LinkedIn profile URLsource- Data source (exa+apollo)
Attio CRM Sync
If you configured Attio during setup, you'll be asked after each search if you want to sync the leads. This will:
- Create/update Companies in Attio (matched by domain to avoid duplicates)
- Create People linked to their companies
CLI Usage
You can also run the script directly:
cd ~/.claude/skills/prospector/scripts
python prospector.py \
--industry "SaaS" \
--size "51-200" \
--funding "Series A" \
--geography "United States" \
--keywords "AI automation" \
--count 50 \
--sync-attio
Configuration
Config is stored at ~/.config/prospector/config.json:
{
"exa_api_key": "your-exa-key",
"apollo_api_key": "your-apollo-key",
"attio_api_key": "your-attio-key"
}
The file is automatically set to chmod 600 (owner read/write only).
Environment Variables (Recommended)
You can set keys as environment variables instead of (or in addition to) the config file:
export PROSPECTOR_EXA_API_KEY="your-exa-key"
export PROSPECTOR_APOLLO_API_KEY="your-apollo-key"
export PROSPECTOR_ATTIO_API_KEY="your-attio-key" # optional
Environment variables take precedence over the config file.
API Usage
- Exa: ~1 API call per search (returns up to 100 companies)
- Apollo: ~1 API call per company (returns up to 3 contacts each)
- Attio: 1 API call per company + 1 per contact for sync
For 50 contacts, expect roughly:
- 1 Exa call
- 17-25 Apollo calls
- 17-25 Attio company calls + 50 Attio people calls (if syncing)
Troubleshooting
"Run /prospector:setup first"
- You haven't configured API keys yet. Run
/prospector:setup.
"Config has insecure permissions"
- Run
chmod 600 ~/.config/prospector/config.json
"Apollo enrichment failed"
- Apollo may not have data for that company, or you've hit rate limits.
- The skill continues with partial data.
"No companies found"
- Try broadening your ICP criteria (use "Any" for some filters).
License
MIT