Install
$ agentstack add skill-anysiteio-agent-skills-anysite-lead-generation ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
anysite Lead Generation
Professional lead generation and prospecting using the anysite MCP server. Find prospects on LinkedIn, discover verified emails, extract contacts from websites, and build comprehensive lead lists for sales, recruiting, and business development.
Overview
The anysite Lead Generation skill helps you:
- Find qualified prospects on LinkedIn using advanced search filters
- Enrich profiles with work history, education, and skills
- Discover email addresses through LinkedIn email finding
- Extract contact information from company websites
- Research companies to identify target accounts
- Build prospect lists formatted for CRM import
This skill provides comprehensive lead generation capabilities with the added benefit of zero configuration and immediate execution through anysite MCP.
Supported Platforms
- LinkedIn (Primary): People search, profile enrichment, email discovery, company research, employee listings
- Web Scraping: Contact extraction from websites, sitemap parsing, general web data
- Instagram: Business account discovery and profile analysis (supplementary)
- Y Combinator: Startup company and founder research (supplementary)
v2 API Overview
All data fetching uses the universal execute() tool with four parameters: source, category, endpoint, params. Supporting tools:
execute(source, category, endpoint, params)- Fetch data. Returns first page of items +cache_key.get_page(cache_key, offset, limit)- Load additional pages from a previous execute() result using the returnedcache_keyandnext_offset.query_cache(cache_key, conditions, sort_by, aggregate, group_by)- Filter, sort, count, or aggregate already-fetched data without a new API call.export_data(cache_key, format)- Export a full dataset as CSV, JSON, or JSONL. Returns a download URL.discover(source, category)- Inspect available endpoints and their accepted params (use when unsure about params).
Error Handling
v2 responses may include an llm_hint field with human-readable guidance when something goes wrong (e.g., invalid params, rate limits). Always check for llm_hint in the response and follow its advice before retrying.
Quick Start
Step 1: Identify Your Lead Source
Choose the appropriate data source based on your prospecting goal:
| Goal | v2 Call | Use Case | |------|---------|----------| | Find prospects by title/company | execute("linkedin", "search", "search_users", {...}) | B2B prospecting, targeted outreach | | Enrich existing leads | execute("linkedin", "user", "get", {"user": ...}) | Add work history, education, skills | | Find verified emails | execute("linkedin", "email", "find", {"user": ...}) | Email outreach campaigns | | Extract website contacts | execute("webparser", "parse", "parse", {"url": ...}) | Get emails/phones from contact pages | | Research target companies | execute("linkedin", "search", "search_companies", {...}) | Account-based marketing (ABM) | | Find company employees | execute("linkedin", "search", "search_users", {...}) + company filter | Multi-threading into accounts |
Step 2: Execute Data Collection
Use anysite MCP v2 tools directly to gather lead data:
Example: Find Sales VPs in San Francisco
Tool: mcp__anysite__execute
Parameters:
- source: "linkedin"
- category: "search"
- endpoint: "search_users"
- params: {"title": "VP Sales", "location": "San Francisco Bay Area", "count": 25}
Example: Enrich a LinkedIn Profile
Tool: mcp__anysite__execute
Parameters:
- source: "linkedin"
- category: "user"
- endpoint: "get"
- params: {"user": "linkedin.com/in/johndoe", "with_experience": true, "with_education": true, "with_skills": true}
Example: Find Email Address
Tool: mcp__anysite__execute
Parameters:
- source: "linkedin"
- category: "email"
- endpoint: "find"
- params: {"user": "johndoe"}
Example: Extract Contacts from Website
Tool: mcp__anysite__execute
Parameters:
- source: "webparser"
- category: "parse"
- endpoint: "parse"
- params: {"url": "https://company.com/contact", "extract_contacts": true, "strip_all_tags": true}
Step 3: Process and Analyze Results
After execute() returns data with a cache_key, use v2 post-processing:
- Filter results:
query_cache(cache_key, conditions=[{"field": "title", "operator": "contains", "value": "VP"}]) - Sort results:
query_cache(cache_key, sort_by=[{"field": "follower_count", "order": "desc"}]) - Count results:
query_cache(cache_key, aggregate=[{"function": "count", "field": "*"}]) - Get more pages:
get_page(cache_key, offset=next_offset, limit=10)
Also review the returned data for:
- Profile completeness: Work history, education, skills presence
- Contact quality: Email deliverability, phone format
- Relevance scoring: Title match, company fit, location alignment
- Enrichment opportunities: Missing data that can be filled
Step 4: Format Output
Choose your preferred output format:
Chat Summary (Default)
- Displays top prospects with key details
- Includes actionable next steps
- Shows data quality metrics
CSV Export (via v2 export_data)
Tool: mcp__anysite__export_data
Parameters:
- cache_key:
- format: "csv"
Returns a download URL. Ready for CRM import (Salesforce, HubSpot, etc.)
JSON Export (via v2 export_data)
Tool: mcp__anysite__export_data
Parameters:
- cache_key:
- format: "json"
Returns a download URL. Structured data for custom integration.
Common Workflows
Workflow 1: LinkedIn B2B Prospecting
Scenario: Find 50 qualified prospects at SaaS companies in specific roles
Steps:
- Search for prospects
Tool: mcp__anysite__execute
Parameters:
- source: "linkedin"
- category: "search"
- endpoint: "search_users"
- params: {"keywords": "SaaS software cloud", "title": "Head of Marketing, VP Marketing, CMO", "location": "United States", "company_keywords": "software", "count": 50}
- Enrich top prospects (for first 10-20 results)
For each prospect from step 1:
Tool: mcp__anysite__execute
Parameters:
- source: "linkedin"
- category: "user"
- endpoint: "get"
- params: {"user": "", "with_experience": true, "with_education": true}
- Find email addresses
For each qualified prospect:
Tool: mcp__anysite__execute
Parameters:
- source: "linkedin"
- category: "email"
- endpoint: "find"
- params: {"user": ""}
- Export to CRM
Tool: mcp__anysite__export_data
Parameters:
- cache_key:
- format: "csv"
Import the CSV to your CRM system and set up outreach sequences.
Expected Output:
- 50 prospects with LinkedIn profiles
- 10-20 enriched profiles with complete work history
- 5-15 verified email addresses
- CSV file ready for CRM import
Workflow 2: Account-Based Marketing (ABM)
Scenario: Find decision-makers at specific target companies
Steps:
- Research target companies
Tool: mcp__anysite__execute
Parameters:
- source: "linkedin"
- category: "search"
- endpoint: "search_companies"
- params: {"keywords": "", "industry": "", "employee_count": ["51-200", "201-500"], "location": "", "count": 20}
- Get company details
For each target company:
Tool: mcp__anysite__execute
Parameters:
- source: "linkedin"
- category: "company"
- endpoint: "get"
- params: {"company": ""}
- Find employees at target companies
For each target company:
Tool: mcp__anysite__execute
Parameters:
- source: "linkedin"
- category: "search"
- endpoint: "search_users"
- params: {"company_keywords": "", "title": "VP, Director, Head of, Chief", "count": 10}
- Enrich decision-makers
For each decision-maker:
Tool: mcp__anysite__execute
source: "linkedin", category: "user", endpoint: "get", params: {"user": ""}
Tool: mcp__anysite__execute
source: "linkedin", category: "email", endpoint: "find", params: {"user": ""}
- Filter and analyze with query_cache
Tool: mcp__anysite__query_cache
Parameters:
- cache_key:
- conditions: [{"field": "title", "operator": "contains", "value": "VP"}]
- sort_by: [{"field": "name", "order": "asc"}]
- Create ABM campaign
- Group prospects by company
- Identify multi-threading opportunities
- Build company-specific messaging
Expected Output:
- 20 target companies with full profiles
- 50-100 decision-makers across all companies
- 20-40 verified email addresses
- Account map showing org structure
Workflow 3: Website Contact Extraction
Scenario: Extract contact information from a list of company websites
Steps:
- Get company websites
From LinkedIn company search or existing list
Tool: mcp__anysite__execute
Parameters:
- source: "linkedin"
- category: "company"
- endpoint: "get"
- params: {"company": ""}
Extract: company website URLs
- Parse contact pages
For each website:
Tool: mcp__anysite__execute
Parameters:
- source: "webparser"
- category: "parse"
- endpoint: "parse"
- params: {"url": "https://company.com/contact", "extract_contacts": true, "strip_all_tags": true}
Alternative pages to try:
- /contact
- /about/contact
- /about/team
- /about
- Parse team pages (if available)
Tool: mcp__anysite__execute
Parameters:
- source: "webparser"
- category: "parse"
- endpoint: "parse"
- params: {"url": "https://company.com/team", "extract_contacts": true}
- Get sitemap (for comprehensive coverage)
Tool: mcp__anysite__discover
Parameters:
- source: "webparser"
- category: "parse"
(Use discover to find the sitemap endpoint and its params, then execute accordingly)
Identify pages likely to contain contacts:
- /contact, /team, /about, /leadership
- Deduplicate and validate
- Remove duplicate emails
- Validate email formats
- Match emails to LinkedIn profiles if possible
Expected Output:
- Contact emails from 60-80% of websites
- Phone numbers where available
- Social media links
- Team member names and titles
Workflow 4: Recruiter Candidate Sourcing
Scenario: Find qualified candidates for open positions
Steps:
- Define candidate profile
Required skills, titles, experience level, location
- Search for candidates
Tool: mcp__anysite__execute
Parameters:
- source: "linkedin"
- category: "search"
- endpoint: "search_users"
- params: {"keywords": "Python React AWS", "title": "Software Engineer, Senior Engineer", "location": "Remote", "count": 100}
- Get more results with pagination
If response includes next_offset:
Tool: mcp__anysite__get_page
Parameters:
- cache_key:
- offset:
- limit: 50
- Enrich candidate profiles
For promising candidates:
Tool: mcp__anysite__execute
source: "linkedin", category: "user", endpoint: "get", params: {"user": "", "with_experience": true, "with_education": true, "with_skills": true}
- Find contact information
Tool: mcp__anysite__execute
source: "linkedin", category: "email", endpoint: "find", params: {"user": ""}
- Filter candidates with query_cache
Tool: mcp__anysite__query_cache
Parameters:
- cache_key:
- conditions: [{"field": "location", "operator": "contains", "value": "Remote"}]
- sort_by: [{"field": "follower_count", "order": "desc"}]
- Build candidate pipeline
- Score candidates on skills match
- Prioritize by years of experience
- Create outreach sequence
Expected Output:
- 100 potential candidates
- 30-50 fully enriched profiles
- 20-30 email addresses
- Scored and prioritized candidate list
MCP Tools Reference
Primary Tools
LinkedIn People Search
v2 Call: execute("linkedin", "search", "search_users", {...})
Search for LinkedIn users by various criteria.
Parameters (passed in params):
keywords(optional): General keywords for searchtitle(optional): Job title keywords (e.g., "VP Sales", "Software Engineer")company_keywords(optional): Company name keywordslocation(optional): Location (city, state, country)school_keywords(optional): School/university keywordsfirst_name(optional): First namelast_name(optional): Last namecount(default: 10): Number of results to return
Returns: List of user profiles with name, title, location, profile URL, and URN. Includes cache_key for pagination and filtering.
Use Cases:
- Find prospects by title and location
- Discover employees at target companies
- Search for alumni from specific schools
- Build prospect lists for outreach
Pagination: If next_offset is returned, call get_page(cache_key, next_offset, limit) for more results.
LinkedIn Profile Details
v2 Call: execute("linkedin", "user", "get", {"user": ...})
Get comprehensive profile information for a LinkedIn user.
Parameters (passed in params):
user(required): LinkedIn username or full profile URLwith_education(default: true): Include education historywith_experience(default: true): Include work experiencewith_skills(default: true): Include skills
Returns: Complete profile with work history, education, skills, certifications, and more
Use Cases:
- Enrich prospect data before outreach
- Qualify leads based on work history
- Research candidate backgrounds
- Understand prospect's career path
Email Finding
v2 Call: execute("linkedin", "email", "find", {"user": ...})
Search for email addresses associated with LinkedIn profiles.
Parameters (passed in params):
user(required): LinkedIn username or profile URL
Returns: Email addresses associated with the LinkedIn profile
Use Cases:
- Find verified emails for prospects
- Enrich contact databases
- Build email outreach lists
Company Search
v2 Call: execute("linkedin", "search", "search_companies", {...})
Search for LinkedIn companies by various criteria.
Parameters (passed in params):
keywords(optional): Company name or description keywordslocation(optional): Company locationindustry(optional): Industry typeemployee_count(optional): Array of employee count ranges (e.g., ["51-200", "201-500"])count(required): Number of results to return
Returns: List of companies with name, industry, size, location, and URN. Includes cache_key.
Use Cases:
- Identify target accounts for ABM
- Research competitors
- Build company prospect lists
- Market segmentation analysis
Company Details
v2 Call: execute("linkedin", "company", "get", {"company": ...})
Get detailed information about a LinkedIn company.
Parameters (passed in params):
company(required): Company identifier or LinkedIn URL
Returns: Company profile with description, industry, size, specialties, website
Use Cases:
- Research target accounts
- Understand company positioning
- Extract company websites for further research
- Qualify accounts before prospecting
Company Employee Stats
v2 Call: discover("linkedin", "company") to find the employee stats endpoint, then execute(...) with the discovered endpoint and params.
Get employee statistics and insights for a company.
Use Cases:
- Track hiring velocity (company growth)
- Identify growing departments
- Assess company size and scale
- Competitive intelligence on hiring
Supporting Tools
Web Contact Extraction
v2 Call: execute("webparser", "parse", "parse", {"url": ...})
Extract content and contact information from web pages.
Parameters (passed in params):
url(required): Webpage URLextract_contacts(default: false): Extract emails, phones, social linksstrip_all_tags(default: true): Remove HTML tagsonly_main_content(default: true): Extract only main content area
Returns: Page content, contacts (emails, phones), links
Use Cases:
- Extract contacts from company websites
- Get email addresses from contact pages
- Find phone numbers and add
…
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: anysiteio
- Source: anysiteio/agent-skills
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.