@anysiteio/agent-skills 1.4.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 +49 -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 +19 -8
- 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
|
@@ -19,16 +19,33 @@ The anysite Competitor Intelligence skill helps you:
|
|
|
19
19
|
|
|
20
20
|
This skill provides 90% coverage of competitive intelligence capabilities with excellent LinkedIn and social media monitoring.
|
|
21
21
|
|
|
22
|
+
## v2 Tool Interface
|
|
23
|
+
|
|
24
|
+
All data fetching uses the universal `execute()` meta-tool:
|
|
25
|
+
|
|
26
|
+
```
|
|
27
|
+
execute(source, category, endpoint, params) → returns data + cache_key
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
After fetching, use these for analysis and export:
|
|
31
|
+
- `get_page(cache_key, offset, limit)` — paginate through large result sets
|
|
32
|
+
- `query_cache(cache_key, conditions, sort_by, aggregate, group_by)` — filter/sort/aggregate cached data without re-fetching
|
|
33
|
+
- `export_data(cache_key, format)` — export to CSV, JSON, or JSONL for sharing
|
|
34
|
+
|
|
35
|
+
Always call `discover(source, category)` first if unsure about endpoint names or params.
|
|
36
|
+
|
|
37
|
+
**Error handling**: Check response for `llm_hint` field on errors — it provides actionable guidance (e.g., "Likely passed fsd_company URN instead of company: prefix").
|
|
38
|
+
|
|
22
39
|
## Supported Platforms
|
|
23
40
|
|
|
24
|
-
-
|
|
25
|
-
-
|
|
26
|
-
-
|
|
27
|
-
-
|
|
28
|
-
-
|
|
29
|
-
-
|
|
30
|
-
-
|
|
31
|
-
-
|
|
41
|
+
- **LinkedIn** (Primary): Company pages, employee search, post monitoring, job listings, growth tracking
|
|
42
|
+
- **Y Combinator**: Startup competitor research, funding data, batch analysis
|
|
43
|
+
- **Twitter/X**: Social presence monitoring, content strategy, engagement analysis
|
|
44
|
+
- **Reddit**: Community sentiment, product discussions, competitor mentions
|
|
45
|
+
- **Instagram**: Brand presence, visual content strategy, influencer partnerships
|
|
46
|
+
- **YouTube**: Video content, channel growth, community engagement
|
|
47
|
+
- **Web Scraping**: Company websites, press releases, blog content
|
|
48
|
+
- **SEC**: Public company filings for competitors
|
|
32
49
|
|
|
33
50
|
## Quick Start
|
|
34
51
|
|
|
@@ -36,12 +53,12 @@ This skill provides 90% coverage of competitive intelligence capabilities with e
|
|
|
36
53
|
|
|
37
54
|
Choose your competitor identification method:
|
|
38
55
|
|
|
39
|
-
| Goal |
|
|
40
|
-
|
|
41
|
-
| Find similar companies | `
|
|
42
|
-
| Research startup competitors | `
|
|
43
|
-
| Discover by employee search | `
|
|
44
|
-
| Find by keywords/industry | `
|
|
56
|
+
| Goal | v2 Call | Output |
|
|
57
|
+
|------|---------|--------|
|
|
58
|
+
| Find similar companies | `execute("linkedin", "search", "search_companies", {"keywords": "...", "count": 50})` | Company list with metrics |
|
|
59
|
+
| Research startup competitors | `execute("yc", "search", "search_companies", {"query": "...", "count": 50})` | YC startups by industry/batch |
|
|
60
|
+
| Discover by employee search | `execute("linkedin", "search", "search_users", {...})` → extract companies | Companies from employee profiles |
|
|
61
|
+
| Find by keywords/industry | `execute("linkedin", "search", "search_companies", {"keywords": "...", "industry": "...", "count": 50})` | Filtered company list |
|
|
45
62
|
|
|
46
63
|
### Step 2: Gather Competitive Intelligence
|
|
47
64
|
|
|
@@ -49,37 +66,38 @@ Execute MCP tools to collect competitor data:
|
|
|
49
66
|
|
|
50
67
|
**Company Profile Analysis**
|
|
51
68
|
```
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
- company: "competitor-name" or LinkedIn URL
|
|
55
|
-
Returns: Description, size, location, website, specialties
|
|
69
|
+
execute("linkedin", "company", "company", {"company": "competitor-name"})
|
|
70
|
+
→ Returns: Description, size, location, website, specialties, URN
|
|
56
71
|
```
|
|
57
72
|
|
|
58
73
|
**Employee Intelligence**
|
|
59
74
|
```
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
Returns: Key employees, org structure insights
|
|
75
|
+
execute("linkedin", "search", "search_users", {
|
|
76
|
+
"company_keywords": "Competitor Inc",
|
|
77
|
+
"title": "VP OR Director OR Head",
|
|
78
|
+
"count": 50
|
|
79
|
+
})
|
|
80
|
+
→ Returns: Key employees, org structure insights
|
|
81
|
+
→ Use get_page(cache_key, 10, 50) to load more results
|
|
66
82
|
```
|
|
67
83
|
|
|
68
84
|
**Hiring Velocity Analysis**
|
|
69
85
|
```
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
Returns: Growth metrics, department distribution
|
|
86
|
+
execute("linkedin", "company", "company_employee_stats", {
|
|
87
|
+
"urn": {"type": "company", "value": "<company_id>"}
|
|
88
|
+
})
|
|
89
|
+
→ Returns: Growth metrics, department distribution
|
|
90
|
+
→ Use query_cache(cache_key, sort_by=[{"field": "count", "order": "desc"}]) to rank departments
|
|
74
91
|
```
|
|
75
92
|
|
|
76
93
|
**Content Strategy**
|
|
77
94
|
```
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
Returns: Recent posts, engagement, messaging themes
|
|
95
|
+
execute("linkedin", "company", "company_posts", {
|
|
96
|
+
"urn": {"type": "company", "value": "<company_id>"},
|
|
97
|
+
"count": 20
|
|
98
|
+
})
|
|
99
|
+
→ Returns: Recent posts, engagement, messaging themes
|
|
100
|
+
→ Use query_cache(cache_key, aggregate=[{"field": "reactions", "function": "avg"}]) for engagement stats
|
|
83
101
|
```
|
|
84
102
|
|
|
85
103
|
### Step 3: Process and Analyze
|
|
@@ -90,11 +108,16 @@ Analyze gathered data for:
|
|
|
90
108
|
- **Market positioning**: Messaging, target audience, value props
|
|
91
109
|
- **Competitive threats**: New products, partnerships, key hires
|
|
92
110
|
|
|
111
|
+
Use `query_cache()` to filter and aggregate without re-fetching:
|
|
112
|
+
```
|
|
113
|
+
query_cache(cache_key, conditions=[{"field": "department", "operator": "contains", "value": "Engineering"}])
|
|
114
|
+
```
|
|
115
|
+
|
|
93
116
|
### Step 4: Format Output
|
|
94
117
|
|
|
95
118
|
**Chat Summary**: Competitive insights with key findings
|
|
96
|
-
**CSV Export**: Competitor comparison matrix
|
|
97
|
-
**JSON Export**: Complete data for tracking over time
|
|
119
|
+
**CSV Export**: `export_data(cache_key, "csv")` → Competitor comparison matrix
|
|
120
|
+
**JSON Export**: `export_data(cache_key, "json")` → Complete data for tracking over time
|
|
98
121
|
|
|
99
122
|
## Common Workflows
|
|
100
123
|
|
|
@@ -106,54 +129,67 @@ Analyze gathered data for:
|
|
|
106
129
|
|
|
107
130
|
1. **Company Overview**
|
|
108
131
|
```
|
|
109
|
-
|
|
132
|
+
execute("linkedin", "company", "company", {"company": "competitor"})
|
|
110
133
|
→ Size, industry, description, website, founding year
|
|
134
|
+
→ Save the URN (convert fsd_company to company: prefix for sub-endpoints)
|
|
111
135
|
```
|
|
112
136
|
|
|
113
137
|
2. **Leadership Team**
|
|
114
138
|
```
|
|
115
|
-
|
|
116
|
-
company_keywords
|
|
117
|
-
title
|
|
118
|
-
|
|
139
|
+
execute("linkedin", "search", "search_users", {
|
|
140
|
+
"company_keywords": "Competitor Inc",
|
|
141
|
+
"title": "C-level OR VP OR SVP OR President",
|
|
142
|
+
"count": 50
|
|
143
|
+
})
|
|
119
144
|
→ C-suite and VP-level executives
|
|
145
|
+
→ Use get_page(cache_key, 10, 50) for more results
|
|
120
146
|
```
|
|
121
147
|
|
|
122
148
|
3. **Organizational Structure**
|
|
123
149
|
```
|
|
124
|
-
|
|
150
|
+
execute("linkedin", "company", "company_employee_stats", {
|
|
151
|
+
"urn": {"type": "company", "value": "<company_id>"}
|
|
152
|
+
})
|
|
125
153
|
→ Total employees, growth rate, department breakdown
|
|
126
154
|
|
|
127
155
|
For each department:
|
|
128
|
-
|
|
156
|
+
execute("linkedin", "search", "search_users", {
|
|
157
|
+
"company_keywords": "Competitor Inc",
|
|
158
|
+
"title": "<department_title>",
|
|
159
|
+
"count": 50
|
|
160
|
+
})
|
|
129
161
|
→ Team sizes, key roles
|
|
130
162
|
```
|
|
131
163
|
|
|
132
164
|
4. **Hiring Intelligence**
|
|
133
165
|
```
|
|
134
|
-
|
|
166
|
+
execute("linkedin", "search", "search_jobs", {"keywords": "Competitor Inc", "count": 50})
|
|
135
167
|
→ Open positions, hiring priorities, expansion areas
|
|
168
|
+
→ Use query_cache(cache_key, group_by="location") to see geographic expansion
|
|
136
169
|
```
|
|
137
170
|
|
|
138
171
|
5. **Content Strategy**
|
|
139
172
|
```
|
|
140
|
-
|
|
173
|
+
execute("linkedin", "company", "company_posts", {
|
|
174
|
+
"urn": {"type": "company", "value": "<company_id>"},
|
|
175
|
+
"count": 50
|
|
176
|
+
})
|
|
141
177
|
→ Posting frequency, themes, engagement levels
|
|
142
178
|
|
|
143
|
-
|
|
144
|
-
|
|
179
|
+
execute("twitter", "user", "user", {"user": "competitor"})
|
|
180
|
+
execute("twitter", "user", "user_posts", {"user": "competitor", "count": 50})
|
|
145
181
|
→ Social media presence and strategy
|
|
146
182
|
```
|
|
147
183
|
|
|
148
184
|
6. **Product/Market Intelligence**
|
|
149
185
|
```
|
|
150
|
-
|
|
186
|
+
execute("webparser", "parse", "parse", {"url": "https://competitor.com"})
|
|
151
187
|
→ Positioning, messaging, product offerings
|
|
152
188
|
|
|
153
|
-
|
|
189
|
+
execute("webparser", "parse", "parse", {"url": "https://competitor.com/blog"})
|
|
154
190
|
→ Content topics, thought leadership
|
|
155
191
|
|
|
156
|
-
|
|
192
|
+
execute("reddit", "search", "search_posts", {"query": "Competitor Inc", "count": 20})
|
|
157
193
|
→ Customer sentiment, product feedback
|
|
158
194
|
```
|
|
159
195
|
|
|
@@ -164,6 +200,7 @@ search_reddit_posts(query="Competitor Inc", count=20)
|
|
|
164
200
|
- Content strategy analysis
|
|
165
201
|
- Product positioning insights
|
|
166
202
|
- Customer sentiment summary
|
|
203
|
+
- Use `export_data(cache_key, "csv")` to create downloadable competitor report
|
|
167
204
|
|
|
168
205
|
### Workflow 2: Competitive Landscape Mapping
|
|
169
206
|
|
|
@@ -173,18 +210,18 @@ search_reddit_posts(query="Competitor Inc", count=20)
|
|
|
173
210
|
|
|
174
211
|
1. **Identify Competitors**
|
|
175
212
|
```
|
|
176
|
-
|
|
177
|
-
keywords
|
|
178
|
-
industry
|
|
179
|
-
employee_count
|
|
180
|
-
count
|
|
181
|
-
)
|
|
213
|
+
execute("linkedin", "search", "search_companies", {
|
|
214
|
+
"keywords": "<your industry keywords>",
|
|
215
|
+
"industry": "<industry>",
|
|
216
|
+
"employee_count": ["51-200", "201-500", "501-1000"],
|
|
217
|
+
"count": 50
|
|
218
|
+
})
|
|
182
219
|
```
|
|
183
220
|
|
|
184
221
|
2. **Filter and Prioritize**
|
|
185
222
|
```
|
|
186
223
|
For each company:
|
|
187
|
-
|
|
224
|
+
execute("linkedin", "company", "company", {"company": "<alias>"})
|
|
188
225
|
→ Review description for relevance
|
|
189
226
|
→ Check employee count and growth
|
|
190
227
|
→ Verify competitive overlap
|
|
@@ -200,28 +237,35 @@ Potential: Adjacent space, could expand
|
|
|
200
237
|
4. **Size and Growth Metrics**
|
|
201
238
|
```
|
|
202
239
|
For each competitor:
|
|
203
|
-
|
|
240
|
+
execute("linkedin", "company", "company_employee_stats", {
|
|
241
|
+
"urn": {"type": "company", "value": "<company_id>"}
|
|
242
|
+
})
|
|
204
243
|
→ Employee count, growth rate
|
|
205
244
|
→ Department distribution
|
|
245
|
+
→ Use query_cache() to compare across competitors
|
|
206
246
|
```
|
|
207
247
|
|
|
208
248
|
5. **Positioning Analysis**
|
|
209
249
|
```
|
|
210
250
|
For each competitor:
|
|
211
|
-
|
|
251
|
+
execute("linkedin", "company", "company_posts", {
|
|
252
|
+
"urn": {"type": "company", "value": "<company_id>"},
|
|
253
|
+
"count": 10
|
|
254
|
+
})
|
|
212
255
|
→ Key messaging themes
|
|
213
256
|
|
|
214
|
-
|
|
257
|
+
execute("webparser", "parse", "parse", {"url": "<website>/about"})
|
|
215
258
|
→ Value proposition, target market
|
|
216
259
|
```
|
|
217
260
|
|
|
218
261
|
6. **Funding and Traction** (for startups)
|
|
219
262
|
```
|
|
220
|
-
|
|
263
|
+
execute("yc", "search", "search_companies", {"query": "<industry>", "count": 50})
|
|
221
264
|
→ YC competitors with funding data
|
|
265
|
+
→ Use query_cache(cache_key, sort_by=[{"field": "team_size", "order": "desc"}]) to rank by size
|
|
222
266
|
|
|
223
267
|
For each YC company:
|
|
224
|
-
|
|
268
|
+
execute("yc", "company", "get", {"slug": "<company_slug>"})
|
|
225
269
|
→ Batch, team size, description
|
|
226
270
|
```
|
|
227
271
|
|
|
@@ -231,6 +275,7 @@ For each YC company:
|
|
|
231
275
|
- Size and growth metrics for each
|
|
232
276
|
- Positioning and messaging summaries
|
|
233
277
|
- Competitive landscape map
|
|
278
|
+
- Use `export_data(cache_key, "csv")` for the full comparison matrix
|
|
234
279
|
|
|
235
280
|
### Workflow 3: Hiring Velocity Tracking
|
|
236
281
|
|
|
@@ -240,15 +285,18 @@ For each YC company:
|
|
|
240
285
|
|
|
241
286
|
1. **Baseline Employee Count**
|
|
242
287
|
```
|
|
243
|
-
|
|
288
|
+
execute("linkedin", "company", "company_employee_stats", {
|
|
289
|
+
"urn": {"type": "company", "value": "<company_id>"}
|
|
290
|
+
})
|
|
244
291
|
→ Current total employees
|
|
245
292
|
→ Department distribution
|
|
246
293
|
```
|
|
247
294
|
|
|
248
295
|
2. **Track Open Positions**
|
|
249
296
|
```
|
|
250
|
-
|
|
297
|
+
execute("linkedin", "search", "search_jobs", {"keywords": "Competitor Inc", "count": 100})
|
|
251
298
|
→ All open positions
|
|
299
|
+
→ Use query_cache(cache_key, group_by="location") to group by office
|
|
252
300
|
|
|
253
301
|
Group by department:
|
|
254
302
|
- Engineering roles
|
|
@@ -259,14 +307,18 @@ Group by department:
|
|
|
259
307
|
|
|
260
308
|
3. **Analyze Recent Hires**
|
|
261
309
|
```
|
|
262
|
-
|
|
263
|
-
company_keywords
|
|
264
|
-
count
|
|
265
|
-
)
|
|
310
|
+
execute("linkedin", "search", "search_users", {
|
|
311
|
+
"company_keywords": "Competitor Inc",
|
|
312
|
+
"count": 100
|
|
313
|
+
})
|
|
266
314
|
→ Get all employees
|
|
315
|
+
→ Use get_page(cache_key, 10, 100) to paginate through full list
|
|
267
316
|
|
|
268
317
|
Filter for recent joins:
|
|
269
|
-
|
|
318
|
+
execute("linkedin", "user", "user_experience", {
|
|
319
|
+
"urn": {"type": "fsd_profile", "value": "<profile_id>"},
|
|
320
|
+
"count": 5
|
|
321
|
+
})
|
|
270
322
|
→ Start date at current company
|
|
271
323
|
→ Identify hires from last 3-6 months
|
|
272
324
|
```
|
|
@@ -274,7 +326,7 @@ get_linkedin_user_experience(urn)
|
|
|
274
326
|
4. **Track Key Departures**
|
|
275
327
|
```
|
|
276
328
|
For former employees:
|
|
277
|
-
|
|
329
|
+
execute("linkedin", "search", "search_users", {"keywords": "Competitor Inc", "count": 50})
|
|
278
330
|
→ Filter profiles showing "Former" or past employment
|
|
279
331
|
|
|
280
332
|
Identify:
|
|
@@ -289,6 +341,7 @@ Identify where competitors hire from:
|
|
|
289
341
|
- For each new hire: get previous companies
|
|
290
342
|
- Track talent pipelines
|
|
291
343
|
- Identify poaching patterns
|
|
344
|
+
→ Use export_data(cache_key, "csv") to build a hiring tracker spreadsheet
|
|
292
345
|
```
|
|
293
346
|
|
|
294
347
|
**Expected Output**:
|
|
@@ -306,7 +359,11 @@ Identify where competitors hire from:
|
|
|
306
359
|
|
|
307
360
|
1. **LinkedIn Content**
|
|
308
361
|
```
|
|
309
|
-
|
|
362
|
+
execute("linkedin", "company", "company_posts", {
|
|
363
|
+
"urn": {"type": "company", "value": "<company_id>"},
|
|
364
|
+
"count": 50
|
|
365
|
+
})
|
|
366
|
+
→ Use query_cache(cache_key, aggregate=[{"field": "comment_count", "function": "avg"}]) for engagement stats
|
|
310
367
|
|
|
311
368
|
Analyze:
|
|
312
369
|
- Posting frequency (posts/week)
|
|
@@ -318,8 +375,8 @@ Analyze:
|
|
|
318
375
|
|
|
319
376
|
2. **Twitter/X Content**
|
|
320
377
|
```
|
|
321
|
-
|
|
322
|
-
|
|
378
|
+
execute("twitter", "user", "user", {"user": "competitor"})
|
|
379
|
+
execute("twitter", "user", "user_posts", {"user": "competitor", "count": 100})
|
|
323
380
|
|
|
324
381
|
Analyze:
|
|
325
382
|
- Tweet frequency
|
|
@@ -331,10 +388,10 @@ Analyze:
|
|
|
331
388
|
|
|
332
389
|
3. **YouTube Content**
|
|
333
390
|
```
|
|
334
|
-
|
|
391
|
+
execute("youtube", "channel", "channel_videos", {"channel": "competitor", "count": 30})
|
|
335
392
|
|
|
336
393
|
For each video:
|
|
337
|
-
|
|
394
|
+
execute("youtube", "video", "video", {"video": "<video_id>"})
|
|
338
395
|
|
|
339
396
|
Analyze:
|
|
340
397
|
- Upload frequency
|
|
@@ -342,12 +399,13 @@ Analyze:
|
|
|
342
399
|
- Engagement (likes, comments)
|
|
343
400
|
- Content types (demos, webinars, customer stories)
|
|
344
401
|
- Video length and production quality
|
|
402
|
+
→ Use query_cache(cache_key, sort_by=[{"field": "view_count", "order": "desc"}]) to find top videos
|
|
345
403
|
```
|
|
346
404
|
|
|
347
405
|
4. **Instagram Content** (if B2C)
|
|
348
406
|
```
|
|
349
|
-
|
|
350
|
-
|
|
407
|
+
execute("instagram", "user", "user", {"user": "competitor"})
|
|
408
|
+
execute("instagram", "user", "user_posts", {"user": "competitor", "count": 50})
|
|
351
409
|
|
|
352
410
|
Analyze:
|
|
353
411
|
- Post frequency
|
|
@@ -359,8 +417,8 @@ Analyze:
|
|
|
359
417
|
|
|
360
418
|
5. **Blog/Website Content**
|
|
361
419
|
```
|
|
362
|
-
|
|
363
|
-
|
|
420
|
+
execute("webparser", "parse", "parse", {"url": "https://competitor.com/blog"})
|
|
421
|
+
execute("webparser", "sitemap", "sitemap", {"url": "https://competitor.com"})
|
|
364
422
|
→ Find all blog posts
|
|
365
423
|
|
|
366
424
|
Analyze:
|
|
@@ -372,14 +430,15 @@ Analyze:
|
|
|
372
430
|
|
|
373
431
|
6. **Community Sentiment**
|
|
374
432
|
```
|
|
375
|
-
|
|
376
|
-
|
|
433
|
+
execute("reddit", "search", "search_posts", {"query": "Competitor Inc", "count": 50})
|
|
434
|
+
execute("reddit", "search", "search_posts", {"query": "competitor product name", "count": 50})
|
|
377
435
|
|
|
378
436
|
Analyze:
|
|
379
437
|
- Customer feedback
|
|
380
438
|
- Common complaints
|
|
381
439
|
- Product strengths
|
|
382
440
|
- Feature requests
|
|
441
|
+
→ Use query_cache(cache_key, sort_by=[{"field": "comment_count", "order": "desc"}]) to find most-discussed threads
|
|
383
442
|
```
|
|
384
443
|
|
|
385
444
|
**Expected Output**:
|
|
@@ -388,91 +447,108 @@ Analyze:
|
|
|
388
447
|
- Content themes and messaging
|
|
389
448
|
- Platform prioritization insights
|
|
390
449
|
- Community sentiment summary
|
|
450
|
+
- Use `export_data(cache_key, "csv")` for cross-platform content comparison
|
|
391
451
|
|
|
392
|
-
## MCP Tools Reference
|
|
452
|
+
## MCP Tools Reference (v2)
|
|
393
453
|
|
|
394
454
|
### LinkedIn Company Intelligence
|
|
395
455
|
|
|
396
|
-
**
|
|
397
|
-
- Search for companies by keywords, location, industry, size
|
|
398
|
-
- Returns: Company list with basic info and URNs
|
|
399
|
-
|
|
400
|
-
**get_linkedin_company**
|
|
456
|
+
**Company Profile** — `execute("linkedin", "company", "company", {"company": "..."})`
|
|
401
457
|
- Get detailed company profile
|
|
402
|
-
- Returns: Description, website, size, industry, specialties
|
|
458
|
+
- Returns: Description, website, size, industry, specialties, URN
|
|
403
459
|
|
|
404
|
-
**
|
|
460
|
+
**Employee Stats** — `execute("linkedin", "company", "company_employee_stats", {"urn": {"type": "company", "value": "..."}})`
|
|
405
461
|
- Get employee statistics and growth
|
|
406
462
|
- Returns: Total employees, growth metrics, department distribution
|
|
463
|
+
- Note: URN must use `company:` prefix (not `fsd_company`). Convert: `urn:li:fsd_company:1441` → `company:1441`
|
|
407
464
|
|
|
408
|
-
**
|
|
465
|
+
**Company Posts** — `execute("linkedin", "company", "company_posts", {"urn": {"type": "company", "value": "..."}, "count": N})`
|
|
409
466
|
- Get recent company posts
|
|
410
467
|
- Returns: Posts with engagement metrics, content, timestamps
|
|
411
468
|
|
|
412
469
|
### LinkedIn People Intelligence
|
|
413
470
|
|
|
414
|
-
**
|
|
471
|
+
**Search Users** — `execute("linkedin", "search", "search_users", {"company_keywords": "...", "title": "...", "count": N})`
|
|
415
472
|
- Find employees at competitor companies
|
|
416
473
|
- Filter by title, department, location
|
|
417
474
|
- Returns: Employee profiles with titles and URLs
|
|
418
475
|
|
|
419
|
-
**
|
|
476
|
+
**User Profile** — `execute("linkedin", "user", "user", {"user": "..."})`
|
|
420
477
|
- Get detailed employee profile
|
|
421
478
|
- Returns: Work history, education, skills
|
|
422
479
|
|
|
423
|
-
**
|
|
480
|
+
**User Experience** — `execute("linkedin", "user", "user_experience", {"urn": {"type": "fsd_profile", "value": "..."}, "count": N})`
|
|
424
481
|
- Get detailed work history
|
|
425
482
|
- Returns: All positions with dates and descriptions
|
|
426
483
|
|
|
484
|
+
### LinkedIn Jobs
|
|
485
|
+
|
|
486
|
+
**Search Jobs** — `execute("linkedin", "search", "search_jobs", {"keywords": "...", "count": N})`
|
|
487
|
+
- Search job listings by keywords, location, and filters
|
|
488
|
+
- Returns: Open positions with company, location, work type
|
|
489
|
+
|
|
427
490
|
### Y Combinator Intelligence
|
|
428
491
|
|
|
429
|
-
**
|
|
492
|
+
**Search Companies** — `execute("yc", "search", "search_companies", {"query": "...", "count": N})`
|
|
430
493
|
- Search YC companies by industry, batch, filters
|
|
431
494
|
- Returns: Company list with batch, team size, status
|
|
432
495
|
|
|
433
|
-
**
|
|
496
|
+
**Company Details** — `execute("yc", "company", "get", {"slug": "..."})`
|
|
434
497
|
- Get detailed YC company profile
|
|
435
498
|
- Returns: Description, founders, batch, status, links
|
|
436
499
|
|
|
437
|
-
**
|
|
500
|
+
**Search Founders** — `execute("yc", "search", "search_founders", {"query": "...", "count": N})`
|
|
438
501
|
- Search for founders by criteria
|
|
439
502
|
- Returns: Founder profiles with company associations
|
|
440
503
|
|
|
441
504
|
### Social Media Monitoring
|
|
442
505
|
|
|
443
506
|
**Twitter/X**:
|
|
444
|
-
- `
|
|
445
|
-
- `
|
|
446
|
-
- `
|
|
507
|
+
- `execute("twitter", "search", "search_posts", {"query": "...", "count": N})` — Find competitor mentions
|
|
508
|
+
- `execute("twitter", "user", "user", {"user": "..."})` — Get competitor profile
|
|
509
|
+
- `execute("twitter", "user", "user_posts", {"user": "...", "count": N})` — Get recent tweets
|
|
447
510
|
|
|
448
511
|
**Instagram**:
|
|
449
|
-
- `
|
|
450
|
-
- `
|
|
451
|
-
- `
|
|
512
|
+
- `execute("instagram", "search", "search_posts", {"query": "...", "count": N})` — Find hashtag/keyword mentions
|
|
513
|
+
- `execute("instagram", "user", "user", {"user": "..."})` — Get profile stats
|
|
514
|
+
- `execute("instagram", "user", "user_posts", {"user": "...", "count": N})` — Get recent posts
|
|
452
515
|
|
|
453
516
|
**Reddit**:
|
|
454
|
-
- `
|
|
455
|
-
- `
|
|
517
|
+
- `execute("reddit", "search", "search_posts", {"query": "...", "count": N})` — Find discussions about competitors
|
|
518
|
+
- `execute("reddit", "posts", "posts", {"post_url": "..."})` — Get post details and sentiment
|
|
456
519
|
|
|
457
520
|
**YouTube**:
|
|
458
|
-
- `
|
|
459
|
-
- `
|
|
460
|
-
- `
|
|
521
|
+
- `execute("youtube", "search", "search_videos", {"query": "...", "count": N})` — Find competitor videos
|
|
522
|
+
- `execute("youtube", "channel", "channel_videos", {"channel": "...", "count": N})` — Get all channel videos
|
|
523
|
+
- `execute("youtube", "video", "video", {"video": "..."})` — Get video details and metrics
|
|
461
524
|
|
|
462
525
|
### Web Intelligence
|
|
463
526
|
|
|
464
|
-
**
|
|
527
|
+
**Parse Webpage** — `execute("webparser", "parse", "parse", {"url": "..."})`
|
|
465
528
|
- Extract content from competitor websites
|
|
466
529
|
- Returns: Text content, links, contacts
|
|
467
530
|
|
|
468
|
-
**
|
|
531
|
+
**Sitemap** — `execute("webparser", "sitemap", "sitemap", {"url": "..."})`
|
|
469
532
|
- Get all pages on competitor site
|
|
470
533
|
- Returns: URL list for comprehensive analysis
|
|
471
534
|
|
|
472
|
-
**
|
|
535
|
+
**Web Search** — `execute("duckduckgo", "search", "search", {"query": "..."})`
|
|
473
536
|
- Search for competitor mentions across the web
|
|
474
537
|
- Returns: Search results with URLs and descriptions
|
|
475
538
|
|
|
539
|
+
### Data Analysis Tools (use with any cache_key from execute)
|
|
540
|
+
|
|
541
|
+
**Pagination** — `get_page(cache_key, offset, limit)`
|
|
542
|
+
- Load more results beyond first page when `next_offset` is returned
|
|
543
|
+
|
|
544
|
+
**Filter/Aggregate** — `query_cache(cache_key, conditions, sort_by, aggregate, group_by)`
|
|
545
|
+
- Filter, sort, aggregate cached data without new API calls
|
|
546
|
+
- Example: `query_cache(cache_key, sort_by=[{"field": "employee_count", "order": "desc"}])`
|
|
547
|
+
|
|
548
|
+
**Export** — `export_data(cache_key, format)`
|
|
549
|
+
- Export to "csv", "json", or "jsonl"
|
|
550
|
+
- Returns downloadable URL
|
|
551
|
+
|
|
476
552
|
## Output Formats
|
|
477
553
|
|
|
478
554
|
### Chat Summary
|
|
@@ -486,7 +562,7 @@ Provides competitive intelligence highlights:
|
|
|
486
562
|
|
|
487
563
|
### CSV Export
|
|
488
564
|
|
|
489
|
-
|
|
565
|
+
Use `export_data(cache_key, "csv")` for competitor comparison matrix with:
|
|
490
566
|
- Company name, size, location
|
|
491
567
|
- Employee count and growth rate
|
|
492
568
|
- Posting frequency and engagement
|
|
@@ -495,7 +571,7 @@ Competitor comparison matrix with:
|
|
|
495
571
|
|
|
496
572
|
### JSON Export
|
|
497
573
|
|
|
498
|
-
|
|
574
|
+
Use `export_data(cache_key, "json")` for complete competitive data for:
|
|
499
575
|
- Time-series tracking
|
|
500
576
|
- Dashboard visualization
|
|
501
577
|
- Automated monitoring
|
|
@@ -571,11 +647,11 @@ Track deals against specific competitors:
|
|
|
571
647
|
**Intelligence Gathering**:
|
|
572
648
|
```
|
|
573
649
|
For each competitor in win/loss:
|
|
574
|
-
1.
|
|
575
|
-
2.
|
|
576
|
-
3.
|
|
577
|
-
4.
|
|
578
|
-
5.
|
|
650
|
+
1. execute("linkedin", "company", "company", {"company": "..."}) → Current positioning
|
|
651
|
+
2. execute("webparser", "parse", "parse", {"url": "<website>/pricing"}) → Pricing strategy
|
|
652
|
+
3. execute("webparser", "parse", "parse", {"url": "<website>/features"}) → Feature set
|
|
653
|
+
4. execute("reddit", "search", "search_posts", {"query": "competitor", "count": 20}) → Customer feedback
|
|
654
|
+
5. execute("linkedin", "company", "company_posts", {"urn": {"type": "company", "value": "..."}, "count": 10}) → Recent messaging
|
|
579
655
|
```
|
|
580
656
|
|
|
581
657
|
**Analysis**:
|
|
@@ -620,6 +696,7 @@ Excellent coverage through:
|
|
|
620
696
|
- Search for employees and extract company
|
|
621
697
|
- Check if using DBA vs. legal name
|
|
622
698
|
- Try website domain search
|
|
699
|
+
- Error `412` means not found — check the `llm_hint` in the response for guidance
|
|
623
700
|
|
|
624
701
|
### Issue: Limited Employee Data
|
|
625
702
|
|
|
@@ -637,6 +714,14 @@ Excellent coverage through:
|
|
|
637
714
|
- Use website blog for content analysis
|
|
638
715
|
- Focus on employee posts mentioning company
|
|
639
716
|
|
|
717
|
+
### Issue: URN Format Errors (422)
|
|
718
|
+
|
|
719
|
+
**Solution**:
|
|
720
|
+
- Company sub-endpoints require `company:` prefix, NOT `fsd_company`
|
|
721
|
+
- Convert: `urn:li:fsd_company:1441` → use `{"type": "company", "value": "1441"}`
|
|
722
|
+
- User sub-endpoints require `fsd_profile` URN from `/linkedin/user` response
|
|
723
|
+
- Always get URNs from the parent endpoint response first
|
|
724
|
+
|
|
640
725
|
---
|
|
641
726
|
|
|
642
727
|
**Ready to analyze competitors?** Ask Claude to help you research competitors, track hiring patterns, or benchmark competitive positioning using this skill!
|