@anysiteio/agent-skills 1.3.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +61 -1
- package/.claude-plugin/plugin.json +5 -1
- package/README.md +27 -33
- package/bin/install.js +186 -135
- package/bundles.json +19 -0
- package/package.json +3 -2
- package/skills/anysite-audience-analysis/SKILL.md +110 -38
- package/skills/anysite-audience-analysis/references/PLATFORM_COVERAGE.md +38 -19
- package/skills/anysite-audience-analysis/references/TOOL_MAPPING.md +16 -11
- package/skills/anysite-brand-reputation/SKILL.md +105 -43
- package/skills/anysite-competitor-analyzer/SKILL.md +170 -111
- package/skills/anysite-competitor-intelligence/SKILL.md +201 -116
- package/skills/anysite-competitor-intelligence/references/ANALYSIS_PATTERNS.md +17 -13
- package/skills/anysite-content-analytics/SKILL.md +101 -33
- package/skills/anysite-crm-account-brief/SKILL.md +71 -0
- package/skills/anysite-crm-audit/SKILL.md +59 -0
- package/skills/anysite-crm-champions/SKILL.md +76 -0
- package/skills/anysite-crm-competitor-intel/SKILL.md +74 -0
- package/skills/anysite-crm-enrich/SKILL.md +84 -0
- package/skills/anysite-crm-lookalikes/SKILL.md +64 -0
- package/skills/anysite-crm-prospect/SKILL.md +90 -0
- package/skills/anysite-crm-score/SKILL.md +72 -0
- package/skills/anysite-crm-setup/SKILL.md +147 -0
- package/skills/anysite-crm-signals/SKILL.md +96 -0
- package/skills/anysite-influencer-discovery/SKILL.md +123 -71
- package/skills/anysite-lead-generation/SKILL.md +288 -256
- package/skills/anysite-lead-generation/references/LINKEDIN_STRATEGIES.md +79 -71
- package/skills/anysite-lead-generation/references/WEB_SCRAPING.md +121 -87
- package/skills/anysite-market-research/SKILL.md +117 -68
- package/skills/anysite-mcp/SKILL.md +128 -0
- package/skills/anysite-mcp-migration/SKILL.md +290 -0
- package/skills/anysite-person-analyzer/SKILL.md +86 -53
- package/skills/anysite-trend-analysis/SKILL.md +119 -55
- package/skills/anysite-vc-analyst/SKILL.md +12 -2
- package/skills/competitor-discovery/SKILL.md +350 -0
- package/skills/customer-pain-mining/SKILL.md +318 -0
- package/skills/positioning-map/SKILL.md +314 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# LinkedIn Lead Generation Strategies
|
|
2
2
|
|
|
3
|
-
Advanced strategies and best practices for LinkedIn prospecting using anysite MCP.
|
|
3
|
+
Advanced strategies and best practices for LinkedIn prospecting using anysite MCP v2.
|
|
4
4
|
|
|
5
5
|
## Boolean Search Operators
|
|
6
6
|
|
|
@@ -111,18 +111,22 @@ location:"United Kingdom"
|
|
|
111
111
|
**Search Strategy**:
|
|
112
112
|
```
|
|
113
113
|
Step 1: Find Companies
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
114
|
+
execute("linkedin", "search", "search_companies", {
|
|
115
|
+
"keywords": "B2B SaaS OR Enterprise Software",
|
|
116
|
+
"employee_count": ["201-500", "501-1000", "1001-5000"],
|
|
117
|
+
"industry": "Computer Software"
|
|
118
|
+
})
|
|
117
119
|
|
|
118
120
|
Step 2: Find Decision-Makers
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
121
|
+
execute("linkedin", "search", "search_users", {
|
|
122
|
+
"company_keywords": "<from step 1>",
|
|
123
|
+
"title": "VP OR SVP OR Chief OR Head of",
|
|
124
|
+
"keywords": "Sales OR Revenue OR GTM OR Business Development"
|
|
125
|
+
})
|
|
122
126
|
```
|
|
123
127
|
|
|
124
128
|
**Refinement**:
|
|
125
|
-
- Filter for companies with recent funding (check YC
|
|
129
|
+
- Filter for companies with recent funding (check YC data via `execute("yc", "search", "search", {"query": ...})`)
|
|
126
130
|
- Prioritize companies with 100+ LinkedIn followers
|
|
127
131
|
- Target specific verticals (HR Tech, Sales Tech, Marketing Tech)
|
|
128
132
|
|
|
@@ -133,24 +137,25 @@ Step 2: Find Decision-Makers
|
|
|
133
137
|
**Search Strategy**:
|
|
134
138
|
```
|
|
135
139
|
Step 1: Find Startups (Y Combinator)
|
|
136
|
-
|
|
137
|
-
-
|
|
138
|
-
- industries: <your target verticals>
|
|
140
|
+
execute("yc", "search", "search", {"query": "<your target verticals>"})
|
|
141
|
+
- Filter by recent batches (W24, S23, W23)
|
|
139
142
|
|
|
140
143
|
Step 2: Find Founders
|
|
141
|
-
|
|
142
|
-
|
|
144
|
+
execute("yc", "company", "get", {"slug": "<company_slug>"})
|
|
145
|
+
-> Extract founder LinkedIn profiles
|
|
143
146
|
|
|
144
147
|
Step 3: Find Early Team
|
|
145
|
-
|
|
146
|
-
|
|
148
|
+
execute("linkedin", "search", "search_users", {
|
|
149
|
+
"company_keywords": "<startup names from step 1>",
|
|
150
|
+
"title": "Head of OR VP OR Lead"
|
|
151
|
+
})
|
|
147
152
|
- Filter for <50 total employees
|
|
148
153
|
```
|
|
149
154
|
|
|
150
155
|
**Refinement**:
|
|
151
156
|
- Target companies that recently raised funding
|
|
152
157
|
- Focus on specific YC batches or industries
|
|
153
|
-
- Look for hiring signals (job postings, team growth)
|
|
158
|
+
- Look for hiring signals (job postings via `execute("linkedin", "job_search", "search_jobs", {...})`, team growth)
|
|
154
159
|
|
|
155
160
|
### Agency/Services
|
|
156
161
|
|
|
@@ -159,13 +164,17 @@ Step 3: Find Early Team
|
|
|
159
164
|
**Search Strategy**:
|
|
160
165
|
```
|
|
161
166
|
Step 1: Find Agencies
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
167
|
+
execute("linkedin", "search", "search_companies", {
|
|
168
|
+
"keywords": "Agency OR Services OR Consulting",
|
|
169
|
+
"employee_count": ["11-50", "51-200"],
|
|
170
|
+
"industry": "<specific agency type>"
|
|
171
|
+
})
|
|
165
172
|
|
|
166
173
|
Step 2: Find Owners/Principals
|
|
167
|
-
|
|
168
|
-
|
|
174
|
+
execute("linkedin", "search", "search_users", {
|
|
175
|
+
"title": "Owner OR Founder OR Principal OR Managing Director",
|
|
176
|
+
"company_keywords": "<agency names>"
|
|
177
|
+
})
|
|
169
178
|
```
|
|
170
179
|
|
|
171
180
|
**Refinement**:
|
|
@@ -228,16 +237,18 @@ Step 2: Find Owners/Principals
|
|
|
228
237
|
Example:
|
|
229
238
|
```
|
|
230
239
|
Parallel Batch 1:
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
240
|
+
execute("linkedin", "search", "search_users", {"location": "San Francisco", "count": 50})
|
|
241
|
+
execute("linkedin", "search", "search_users", {"location": "New York", "count": 50})
|
|
242
|
+
execute("linkedin", "search", "search_users", {"location": "Austin", "count": 50})
|
|
234
243
|
|
|
235
|
-
After review, Parallel Batch 2:
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
244
|
+
After review, Parallel Batch 2 (enrich top 10 from each using cache_key + query_cache to filter):
|
|
245
|
+
execute("linkedin", "user", "get", {"user": "<sf_prospect>"})
|
|
246
|
+
execute("linkedin", "user", "get", {"user": "<ny_prospect>"})
|
|
247
|
+
execute("linkedin", "user", "get", {"user": "<austin_prospect>"})
|
|
239
248
|
```
|
|
240
249
|
|
|
250
|
+
**Pagination**: When a search returns `next_offset`, use `get_page(cache_key, next_offset, limit)` to load more results without re-executing.
|
|
251
|
+
|
|
241
252
|
## Qualification Frameworks
|
|
242
253
|
|
|
243
254
|
### BANT Framework (Budget, Authority, Need, Timeline)
|
|
@@ -246,7 +257,7 @@ After review, Parallel Batch 2:
|
|
|
246
257
|
```
|
|
247
258
|
Check:
|
|
248
259
|
- Employee count (proxy for budget)
|
|
249
|
-
- Recent funding rounds (via YC
|
|
260
|
+
- Recent funding rounds (via YC data: execute("yc", "search", "search", {"query": ...}))
|
|
250
261
|
- Company description for "Enterprise" or "SMB"
|
|
251
262
|
```
|
|
252
263
|
|
|
@@ -262,8 +273,8 @@ Target titles:
|
|
|
262
273
|
**Need** - Problem awareness
|
|
263
274
|
```
|
|
264
275
|
Research:
|
|
265
|
-
- LinkedIn posts about challenges
|
|
266
|
-
- Job postings for relevant roles
|
|
276
|
+
- LinkedIn posts about challenges (execute("linkedin", "post", "search_posts", {"query": ...}))
|
|
277
|
+
- Job postings for relevant roles (execute("linkedin", "job_search", "search_jobs", {...}))
|
|
267
278
|
- Company growth signals
|
|
268
279
|
- Industry trends
|
|
269
280
|
```
|
|
@@ -284,7 +295,7 @@ Indicators:
|
|
|
284
295
|
**Situation** - Current state analysis
|
|
285
296
|
```
|
|
286
297
|
Research company:
|
|
287
|
-
- Recent news and LinkedIn posts
|
|
298
|
+
- Recent news and LinkedIn posts (execute("linkedin", "post", "get_user_posts", {"user": ...}))
|
|
288
299
|
- Company growth trajectory
|
|
289
300
|
- Team expansion signals
|
|
290
301
|
- Technology stack (from jobs)
|
|
@@ -336,13 +347,15 @@ Identify:
|
|
|
336
347
|
- **40-59**: Qualified
|
|
337
348
|
- **<40**: Nurture or discard
|
|
338
349
|
|
|
350
|
+
Use `query_cache()` to filter and sort by score after enrichment.
|
|
351
|
+
|
|
339
352
|
## Personalization Research
|
|
340
353
|
|
|
341
354
|
### Profile Intelligence
|
|
342
355
|
|
|
343
356
|
**Work History**:
|
|
344
357
|
```
|
|
345
|
-
|
|
358
|
+
execute("linkedin", "user", "get", {"user": "<username>", "with_experience": true})
|
|
346
359
|
|
|
347
360
|
Extract:
|
|
348
361
|
- Career progression (promotions, moves)
|
|
@@ -353,7 +366,7 @@ Extract:
|
|
|
353
366
|
|
|
354
367
|
**Education**:
|
|
355
368
|
```
|
|
356
|
-
|
|
369
|
+
execute("linkedin", "user", "get", {"user": "<username>", "with_education": true})
|
|
357
370
|
|
|
358
371
|
Look for:
|
|
359
372
|
- Alma mater (school connections)
|
|
@@ -364,7 +377,7 @@ Look for:
|
|
|
364
377
|
|
|
365
378
|
**Skills & Expertise**:
|
|
366
379
|
```
|
|
367
|
-
|
|
380
|
+
execute("linkedin", "user", "get", {"user": "<username>", "with_skills": true})
|
|
368
381
|
|
|
369
382
|
Identify:
|
|
370
383
|
- Technical skills (for product fit)
|
|
@@ -377,7 +390,7 @@ Identify:
|
|
|
377
390
|
|
|
378
391
|
**Company Profile**:
|
|
379
392
|
```
|
|
380
|
-
|
|
393
|
+
execute("linkedin", "company", "get", {"company": "<company>"})
|
|
381
394
|
|
|
382
395
|
Analyze:
|
|
383
396
|
- Company description (positioning)
|
|
@@ -388,7 +401,7 @@ Analyze:
|
|
|
388
401
|
|
|
389
402
|
**Recent Activity**:
|
|
390
403
|
```
|
|
391
|
-
|
|
404
|
+
execute("linkedin", "post", "get_user_posts", {"user": "<company_page>"})
|
|
392
405
|
|
|
393
406
|
Review:
|
|
394
407
|
- Announcement posts (expansion, funding, hiring)
|
|
@@ -399,7 +412,7 @@ Review:
|
|
|
399
412
|
|
|
400
413
|
**Team Growth**:
|
|
401
414
|
```
|
|
402
|
-
|
|
415
|
+
discover("linkedin", "company") -> find employee stats endpoint -> execute(...)
|
|
403
416
|
|
|
404
417
|
Track:
|
|
405
418
|
- Hiring velocity (growth rate)
|
|
@@ -440,29 +453,24 @@ Track:
|
|
|
440
453
|
|
|
441
454
|
**Method 1**: Direct Email Finding
|
|
442
455
|
```
|
|
443
|
-
|
|
444
|
-
```
|
|
445
|
-
|
|
446
|
-
**Method 2**: Database Lookup
|
|
447
|
-
```
|
|
448
|
-
get_linkedin_user_email_db(profile="linkedin.com/in/prospect")
|
|
456
|
+
execute("linkedin", "email", "find", {"user": "<prospect_username>"})
|
|
449
457
|
```
|
|
450
458
|
|
|
451
|
-
**Method
|
|
459
|
+
**Method 2**: Contact Info from Profile
|
|
452
460
|
```
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
461
|
+
execute("linkedin", "user", "get", {"user": "<username>", "with_experience": true})
|
|
462
|
+
-> Check profile for contact info section
|
|
463
|
+
-> May include email, phone, website
|
|
456
464
|
```
|
|
457
465
|
|
|
458
466
|
### Website Email Extraction
|
|
459
467
|
|
|
460
468
|
**Contact Page Pattern**:
|
|
461
469
|
```
|
|
462
|
-
|
|
463
|
-
url
|
|
464
|
-
extract_contacts
|
|
465
|
-
)
|
|
470
|
+
execute("webparser", "parse", "parse", {
|
|
471
|
+
"url": "https://company.com/contact",
|
|
472
|
+
"extract_contacts": true
|
|
473
|
+
})
|
|
466
474
|
|
|
467
475
|
Common contact pages:
|
|
468
476
|
- /contact
|
|
@@ -474,10 +482,10 @@ Common contact pages:
|
|
|
474
482
|
|
|
475
483
|
**Team/About Page Pattern**:
|
|
476
484
|
```
|
|
477
|
-
|
|
478
|
-
url
|
|
479
|
-
extract_contacts
|
|
480
|
-
)
|
|
485
|
+
execute("webparser", "parse", "parse", {
|
|
486
|
+
"url": "https://company.com/about/team",
|
|
487
|
+
"extract_contacts": true
|
|
488
|
+
})
|
|
481
489
|
|
|
482
490
|
Common team pages:
|
|
483
491
|
- /team
|
|
@@ -491,13 +499,13 @@ Common team pages:
|
|
|
491
499
|
**Sitemap Discovery**:
|
|
492
500
|
```
|
|
493
501
|
Step 1: Get sitemap
|
|
494
|
-
|
|
502
|
+
discover("webparser", "parse") -> find sitemap endpoint -> execute(...)
|
|
495
503
|
|
|
496
504
|
Step 2: Filter for contact-related pages
|
|
497
|
-
|
|
505
|
+
-> Look for: contact, team, about, leadership, people
|
|
498
506
|
|
|
499
507
|
Step 3: Parse identified pages
|
|
500
|
-
|
|
508
|
+
execute("webparser", "parse", "parse", {"url": "<page_url>", "extract_contacts": true}) for each page
|
|
501
509
|
```
|
|
502
510
|
|
|
503
511
|
### Email Pattern Guessing
|
|
@@ -551,14 +559,14 @@ janes@techcorp.com
|
|
|
551
559
|
```
|
|
552
560
|
Target: TechCorp
|
|
553
561
|
|
|
554
|
-
|
|
555
|
-
|
|
562
|
+
execute("linkedin", "search", "search_users", {"company_keywords": "TechCorp", "title": "CTO"})
|
|
563
|
+
-> Economic Buyer: John Smith, CTO
|
|
556
564
|
|
|
557
|
-
|
|
558
|
-
|
|
565
|
+
execute("linkedin", "search", "search_users", {"company_keywords": "TechCorp", "title": "VP Engineering"})
|
|
566
|
+
-> Decision Maker: Jane Doe, VP Engineering
|
|
559
567
|
|
|
560
|
-
|
|
561
|
-
|
|
568
|
+
execute("linkedin", "search", "search_users", {"company_keywords": "TechCorp", "title": "Director"})
|
|
569
|
+
-> Influencer: Bob Johnson, Director of Platform
|
|
562
570
|
|
|
563
571
|
Outreach sequence:
|
|
564
572
|
Day 1: Contact Jane (VP) - decision maker
|
|
@@ -579,8 +587,8 @@ Characteristics:
|
|
|
579
587
|
|
|
580
588
|
**Research Workflow**:
|
|
581
589
|
```
|
|
582
|
-
1.
|
|
583
|
-
2.
|
|
590
|
+
1. execute("linkedin", "user", "get", {"user": "<champion>"})
|
|
591
|
+
2. execute("linkedin", "post", "get_user_posts", {"user": "<champion>", "count": 20})
|
|
584
592
|
3. Analyze:
|
|
585
593
|
- Topics they care about
|
|
586
594
|
- Problems they discuss
|
|
@@ -613,7 +621,7 @@ San Francisco,Software,201-500,LinkedIn,85,Active on LinkedIn
|
|
|
613
621
|
```
|
|
614
622
|
|
|
615
623
|
**Import Process**:
|
|
616
|
-
1. Export prospects
|
|
624
|
+
1. Export prospects via `export_data(cache_key, "csv")`
|
|
617
625
|
2. Map CSV columns to Salesforce fields
|
|
618
626
|
3. Import via Data Loader or manual import
|
|
619
627
|
4. Assign to sales reps
|
|
@@ -634,8 +642,8 @@ techcorp.com,TechCorp,Computer Software,350,linkedin.com/company/techcorp
|
|
|
634
642
|
```
|
|
635
643
|
|
|
636
644
|
**Import Process**:
|
|
637
|
-
1. Export contacts
|
|
638
|
-
2. Export companies CSV (from LinkedIn company data)
|
|
645
|
+
1. Export contacts via `export_data(cache_key, "csv")`
|
|
646
|
+
2. Export companies CSV (from LinkedIn company data cache)
|
|
639
647
|
3. Import companies first
|
|
640
648
|
4. Import contacts (will associate with companies)
|
|
641
649
|
5. Create workflows for engagement
|
|
@@ -656,7 +664,7 @@ jane@tech.com,Jane,Smith,VP Sales,TechCorp,linkedin.com/in/janesmith,Personaliza
|
|
|
656
664
|
**Sequence Setup**:
|
|
657
665
|
1. Import prospects with variables
|
|
658
666
|
2. Create email templates using {{Custom1}}, {{Custom2}}, etc.
|
|
659
|
-
3. Set up multi-touch sequence (Email
|
|
667
|
+
3. Set up multi-touch sequence (Email -> Wait -> LinkedIn -> Wait -> Call)
|
|
660
668
|
4. Track engagement and replies
|
|
661
669
|
|
|
662
670
|
## Compliance & Best Practices
|