@opendirectory.dev/skills 0.1.65 → 0.1.67
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/package.json +1 -1
- package/skills/blog-cover-image-cli/README.md +112 -1
- package/skills/brand-alchemy/README.md +31 -1
- package/skills/claude-md-generator/README.md +73 -1
- package/skills/cold-email-verifier/README.md +41 -1
- package/skills/competitor-pr-finder/README.md +69 -1
- package/skills/cook-the-blog/README.md +82 -1
- package/skills/dependency-update-bot/README.md +96 -1
- package/skills/docs-from-code/README.md +93 -1
- package/skills/email-newsletter/README.md +72 -1
- package/skills/explain-this-pr/README.md +69 -1
- package/skills/gh-issue-to-demand-signal/README.md +95 -4
- package/skills/google-trends-api-skills/README.md +74 -1
- package/skills/graphic-case-study/README.md +97 -3
- package/skills/graphic-chart/README.md +0 -19
- package/skills/graphic-ebook/README.md +99 -3
- package/skills/graphic-gif/README.md +0 -19
- package/skills/graphic-slide-deck/README.md +104 -2
- package/skills/hackernews-intel/README.md +156 -1
- package/skills/human-tone/README.md +43 -1
- package/skills/kill-the-standup/README.md +79 -1
- package/skills/linkedin-job-post-to-buyer-pain-map/README.md +3 -3
- package/skills/linkedin-post-generator/README.md +103 -1
- package/skills/llms-txt-generator/README.md +138 -1
- package/skills/luma-attendees-scraper/README.md +0 -21
- package/skills/map-your-market/README.md +121 -1
- package/skills/meeting-brief-generator/README.md +85 -1
- package/skills/meta-ads-skill/README.md +67 -1
- package/skills/meta-tribeV2-skill/README.md +64 -3
- package/skills/newsletter-digest/README.md +142 -1
- package/skills/noise-to-linkedin-carousel/README.md +0 -21
- package/skills/noise2blog/README.md +102 -1
- package/skills/npm-downloads-to-leads/README.md +131 -12
- package/skills/oss-launch-kit/README.md +0 -21
- package/skills/outreach-sequence-builder/README.md +103 -1
- package/skills/position-me/README.md +65 -1
- package/skills/pr-description-writer/README.md +76 -1
- package/skills/pricing-finder/README.md +114 -1
- package/skills/pricing-page-psychology-audit/README.md +85 -1
- package/skills/product-update-logger/README.md +172 -4
- package/skills/producthunt-launch-kit/README.md +90 -1
- package/skills/reddit-icp-monitor/README.md +112 -1
- package/skills/reddit-post-engine/README.md +98 -1
- package/skills/schema-markup-generator/README.md +109 -1
- package/skills/sdk-adoption-tracker/README.md +127 -1
- package/skills/show-hn-writer/README.md +83 -1
- package/skills/stargazer/README.md +0 -21
- package/skills/tweet-thread-from-blog/README.md +104 -1
- package/skills/twitter-GTM-find-skill/README.md +37 -1
- package/skills/vc-curated-match/README.md +0 -21
- package/skills/vc-finder/README.md +98 -5
- package/skills/vid-motion-graphics/README.md +65 -5
- package/skills/where-your-customer-lives/README.md +0 -19
- package/skills/yc-intent-radar-skill/README.md +35 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# sdk-adoption-tracker
|
|
1
|
+
# sdk-adoption-tracker
|
|
2
2
|
|
|
3
3
|
Give this skill an SDK or library name. It searches GitHub for public repos that import it, scores each repo by company signal and activity, identifies who is building on you in production, and outputs a ranked adoption report with outreach context for high-signal company repos.
|
|
4
4
|
|
|
@@ -25,3 +25,129 @@ https://github.com/user-attachments/assets/cea8b565-2002-4a87-8857-d902bfcfdc1c
|
|
|
25
25
|
4. Choose the option to **Upload a skill**, and drag and drop the `.zip` file (or you can extract it and drop the folder, both work).
|
|
26
26
|
|
|
27
27
|
> **Note:** For some skills (like `position-me`), the `SKILL.md` file might be located inside a subfolder. Always make sure you are uploading the specific folder that contains the `SKILL.md` file!
|
|
28
|
+
|
|
29
|
+
Note: Upload the folder that contains the `SKILL.md` file.
|
|
30
|
+
|
|
31
|
+
## What It Does
|
|
32
|
+
|
|
33
|
+
- Searches GitHub code for all public repos that import or require the SDK
|
|
34
|
+
- Supports npm, Python, Go, Ruby, and generic import patterns -- auto-detected from the SDK name
|
|
35
|
+
- Filters forks, tutorials, examples, and archived repos from results
|
|
36
|
+
- Classifies each repo: company org, affiliated developer, solo developer, or tutorial noise
|
|
37
|
+
- Scores by adoption signal: org type, company field, stars, recency, fork status
|
|
38
|
+
- Fetches owner profile and top contributor for each high-signal repo
|
|
39
|
+
- Tracks adoption velocity: new repos in last 7, 14, and 30 days
|
|
40
|
+
- Compares to previous snapshot for exact new-adopter count on repeat runs
|
|
41
|
+
- Generates an outreach brief per high-signal company repo: what they are building, who introduced the SDK, and what to say
|
|
42
|
+
- Saves output to `docs/sdk-adopters/[sdk-name]-[date].md`
|
|
43
|
+
|
|
44
|
+
## Requirements
|
|
45
|
+
|
|
46
|
+
| Requirement | Purpose | How to Set Up |
|
|
47
|
+
|---|---|---|
|
|
48
|
+
| GitHub token | Required for code search (unauthenticated limit is 3 req/min, too low to run) | github.com/settings/tokens (no scopes needed for public repos) |
|
|
49
|
+
|
|
50
|
+
## Setup
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
cp .env.example .env
|
|
54
|
+
# Add GITHUB_TOKEN
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
## How to Use
|
|
58
|
+
|
|
59
|
+
```
|
|
60
|
+
"Who is using my SDK on GitHub? @company/my-sdk"
|
|
61
|
+
"Find companies building on my library: stripe"
|
|
62
|
+
"Track adoption of my Python package: requests"
|
|
63
|
+
"Which orgs import my SDK: @clerk/nextjs"
|
|
64
|
+
"Show me who uses my library and rank by company signal"
|
|
65
|
+
"Find warm leads from SDK adopters: my-package"
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
Include a short description of your product and the skill will tailor the outreach message to your context.
|
|
69
|
+
|
|
70
|
+
## Why Score Instead of Just List
|
|
71
|
+
|
|
72
|
+
A raw GitHub code search for a popular SDK returns tutorials, forks, abandoned side projects, and examples mixed in with real production users. The adoption score separates them:
|
|
73
|
+
|
|
74
|
+
- A company org repo with recent commits and 200 stars scores 130+
|
|
75
|
+
- A tutorial named "learn-stripe-payments" scores below 20 and is excluded
|
|
76
|
+
|
|
77
|
+
The person who added the import in a company repo is the warmest possible lead. They chose the SDK, they understand what it does, and they have an active production use case.
|
|
78
|
+
|
|
79
|
+
## The Adoption Score
|
|
80
|
+
|
|
81
|
+
`score = org_signal + company_field + stars_capped + recency + quality_flags`
|
|
82
|
+
|
|
83
|
+
- Org type (50 points): GitHub Organization accounts are almost always a company or serious team
|
|
84
|
+
- Company field (20 points): user has a company listed on their GitHub profile
|
|
85
|
+
- Stars (up to 50 points): capped at 500 stars to prevent established open-source from dominating
|
|
86
|
+
- Recency (up to 50 points): pushed in last 7 or 30 days
|
|
87
|
+
- Quality (up to 40 points): not a fork, not archived, not a tutorial
|
|
88
|
+
|
|
89
|
+
Score >= 80: full outreach brief generated. Score 40-79: listed in report. Score < 40: counted in breakdown only.
|
|
90
|
+
|
|
91
|
+
## Velocity Tracking
|
|
92
|
+
|
|
93
|
+
Run the skill weekly and save the JSON snapshot. On each subsequent run, the skill compares the current repo list to the previous snapshot and tells you exactly how many new teams adopted the SDK since last time.
|
|
94
|
+
|
|
95
|
+
```
|
|
96
|
+
New repos last 7 days: 3
|
|
97
|
+
New repos last 30 days: 11
|
|
98
|
+
New since last run (7 days ago): 3
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
## Cost Per Run
|
|
102
|
+
|
|
103
|
+
- GitHub Code Search API: free with token
|
|
104
|
+
- GitHub User, Org, Contributors API: free with token
|
|
105
|
+
- AI analysis: uses the model already running the skill; no additional cost
|
|
106
|
+
- Total: free
|
|
107
|
+
|
|
108
|
+
## Standalone Script
|
|
109
|
+
|
|
110
|
+
Run the data-fetching step directly from the terminal without Claude. Useful for scheduled jobs or CI pipelines.
|
|
111
|
+
|
|
112
|
+
```bash
|
|
113
|
+
# Basic usage
|
|
114
|
+
python3 scripts/fetch.py stripe
|
|
115
|
+
|
|
116
|
+
# Python SDK
|
|
117
|
+
python3 scripts/fetch.py requests --ecosystem python
|
|
118
|
+
|
|
119
|
+
# With product context for outreach
|
|
120
|
+
python3 scripts/fetch.py @company/my-sdk --context "We build observability for DevTools"
|
|
121
|
+
|
|
122
|
+
# Exclude the SDK publisher's own repos
|
|
123
|
+
python3 scripts/fetch.py stripe --exclude stripe
|
|
124
|
+
|
|
125
|
+
# Print to stdout
|
|
126
|
+
python3 scripts/fetch.py stripe --stdout | jq '.summary'
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
The script handles Steps 3-5 (code search, scoring, enrichment) and writes a JSON file. Open that file with Claude and ask: "Generate adoption briefs from this SDK data."
|
|
130
|
+
|
|
131
|
+
```bash
|
|
132
|
+
GITHUB_TOKEN=your_token python3 scripts/fetch.py stripe --output results.json
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
## Project Structure
|
|
136
|
+
|
|
137
|
+
```
|
|
138
|
+
sdk-adoption-tracker/
|
|
139
|
+
├── SKILL.md
|
|
140
|
+
├── README.md
|
|
141
|
+
├── .env.example
|
|
142
|
+
├── scripts/
|
|
143
|
+
│ └── fetch.py standalone fetcher (Steps 3-5, no Claude needed)
|
|
144
|
+
├── evals/
|
|
145
|
+
│ └── evals.json
|
|
146
|
+
└── references/
|
|
147
|
+
├── import-patterns.md
|
|
148
|
+
└── scoring-guide.md
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
## License
|
|
152
|
+
|
|
153
|
+
MIT
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# show-hn-writer
|
|
1
|
+
# show-hn-writer
|
|
2
2
|
|
|
3
3
|
<img width="1280" height="640" alt="show-hn-writer" src="https://github.com/user-attachments/assets/224030e0-c3e0-499c-98d4-a049d7dddc51" />
|
|
4
4
|
|
|
@@ -28,3 +28,85 @@ https://github.com/user-attachments/assets/cea8b565-2002-4a87-8857-d902bfcfdc1c
|
|
|
28
28
|
4. Choose the option to **Upload a skill**, and drag and drop the `.zip` file (or you can extract it and drop the folder, both work).
|
|
29
29
|
|
|
30
30
|
> **Note:** For some skills (like `position-me`), the `SKILL.md` file might be located inside a subfolder. Always make sure you are uploading the specific folder that contains the `SKILL.md` file!
|
|
31
|
+
|
|
32
|
+
## What It Does
|
|
33
|
+
|
|
34
|
+
- Reads your project context (from README or your answers)
|
|
35
|
+
- Drafts three Show HN title variants in different formats
|
|
36
|
+
- Writes a 150-350 word body following HN community norms
|
|
37
|
+
- Uses Gemini to flag marketing language, vague descriptions, or other HN anti-patterns
|
|
38
|
+
- Runs a self-QA checklist before presenting output
|
|
39
|
+
- Includes submission notes (timing, first-comment strategy, resubmission rules)
|
|
40
|
+
|
|
41
|
+
## Requirements
|
|
42
|
+
|
|
43
|
+
| Requirement | Purpose | How to Set Up |
|
|
44
|
+
|------------|---------|--------------|
|
|
45
|
+
| Gemini API key (optional) | Automated draft review for HN anti-patterns | aistudio.google.com, Get API key |
|
|
46
|
+
|
|
47
|
+
The skill works without Gemini: it runs the manual self-QA checklist instead.
|
|
48
|
+
|
|
49
|
+
## Setup
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
cp .env.example .env
|
|
53
|
+
# Add GEMINI_API_KEY if you want automated review (optional)
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## How to Use
|
|
57
|
+
|
|
58
|
+
From a README:
|
|
59
|
+
```
|
|
60
|
+
"Write a Show HN post for my project"
|
|
61
|
+
"Help me launch on Hacker News"
|
|
62
|
+
"Draft a Show HN for the project in this repo"
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
With explicit context:
|
|
66
|
+
```
|
|
67
|
+
"Write a Show HN post for [project name]: [what it does]. I built it because [reason]."
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
For a specific title format:
|
|
71
|
+
```
|
|
72
|
+
"Write a Show HN title for my CLI tool that converts JSON to TypeScript interfaces"
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
## Show HN Title Formats
|
|
76
|
+
|
|
77
|
+
| Format | Example | Best For |
|
|
78
|
+
|--------|---------|----------|
|
|
79
|
+
| Product-First | `Show HN: Datasette – Instantly publish SQLite databases to the web` | Single-function tools |
|
|
80
|
+
| Outcome-Focused | `Show HN: Jitsi – Group video calls without an account` | Tools replacing something painful |
|
|
81
|
+
| Technical-Angle | `Show HN: Bun – JavaScript runtime built in Zig` | Dev tools where the implementation matters |
|
|
82
|
+
| Experiment | `Show HN: Ink – React for command-line apps` | Projects challenging a convention |
|
|
83
|
+
|
|
84
|
+
## What Makes a Good Show HN Post
|
|
85
|
+
|
|
86
|
+
**Title:** 60-80 characters. Starts with "Show HN:". En dash separator. No adjectives.
|
|
87
|
+
|
|
88
|
+
**Body:** First-person. 150-350 words. At least one technical detail. Honest about limitations. Ends with an invitation for feedback, not a CTA.
|
|
89
|
+
|
|
90
|
+
**What kills HN posts:**
|
|
91
|
+
- Vague titles ("Show HN: I built a thing for developers")
|
|
92
|
+
- Marketing adjectives ("fast", "simple", "powerful")
|
|
93
|
+
- Asking for upvotes
|
|
94
|
+
- Body that reads like a product page
|
|
95
|
+
|
|
96
|
+
## Project Structure
|
|
97
|
+
|
|
98
|
+
```
|
|
99
|
+
show-hn-writer/
|
|
100
|
+
├── SKILL.md
|
|
101
|
+
├── README.md
|
|
102
|
+
├── .env.example
|
|
103
|
+
├── evals/
|
|
104
|
+
│ └── evals.json
|
|
105
|
+
└── references/
|
|
106
|
+
├── hn-rules.md
|
|
107
|
+
└── title-formulas.md
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
## License
|
|
111
|
+
|
|
112
|
+
MIT
|
|
@@ -77,24 +77,3 @@ Generate a final CSV file for use in other applications.
|
|
|
77
77
|
```bash
|
|
78
78
|
python stargazer-skill/scripts/convert_to_csv.py
|
|
79
79
|
```
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
## Install
|
|
83
|
-
|
|
84
|
-
### Video Tutorial
|
|
85
|
-
Watch this quick video to see how it's done:
|
|
86
|
-
|
|
87
|
-
https://github.com/user-attachments/assets/cea8b565-2002-4a87-8857-d902bfcfdc1c
|
|
88
|
-
|
|
89
|
-
### Step 1: Download the skill from GitHub
|
|
90
|
-
1. Copy the URL of this specific skill folder from your browser's address bar.
|
|
91
|
-
2. Go to [download-directory.github.io](https://download-directory.github.io/).
|
|
92
|
-
3. Paste the URL and click **Enter** to download.
|
|
93
|
-
|
|
94
|
-
### Step 2: Install the Skill in Claude
|
|
95
|
-
1. Open your **Claude desktop app**.
|
|
96
|
-
2. Go to the sidebar on the left side and click on the **Customize** section.
|
|
97
|
-
3. Click on the **Skills** tab, then click on the **+** (plus) icon button to create a new skill.
|
|
98
|
-
4. Choose the option to **Upload a skill**, and drag and drop the `.zip` file (or you can extract it and drop the folder, both work).
|
|
99
|
-
|
|
100
|
-
> **Note:** For some skills (like `position-me`), the `SKILL.md` file might be located inside a subfolder. Always make sure you are uploading the specific folder that contains the `SKILL.md` file!
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# tweet-thread-from-blog
|
|
1
|
+
# tweet-thread-from-blog
|
|
2
2
|
|
|
3
3
|
<img width="1280" height="640" alt="tweet-thread-from-blog" src="https://github.com/user-attachments/assets/18b96a6b-9477-444d-b169-ea14a63e9fdf" />
|
|
4
4
|
|
|
@@ -28,3 +28,106 @@ https://github.com/user-attachments/assets/cea8b565-2002-4a87-8857-d902bfcfdc1c
|
|
|
28
28
|
4. Choose the option to **Upload a skill**, and drag and drop the `.zip` file (or you can extract it and drop the folder, both work).
|
|
29
29
|
|
|
30
30
|
> **Note:** For some skills (like `position-me`), the `SKILL.md` file might be located inside a subfolder. Always make sure you are uploading the specific folder that contains the `SKILL.md` file!
|
|
31
|
+
|
|
32
|
+
## Thread Styles
|
|
33
|
+
|
|
34
|
+
| Style | Use When | Example Input |
|
|
35
|
+
|-------|----------|---------------|
|
|
36
|
+
| Data/Insight | Evidence-based article with stats or research findings | Engineering blog post with benchmark numbers |
|
|
37
|
+
| How-To | Tutorial or step-by-step guide | "How to set up X in 10 minutes" post |
|
|
38
|
+
| Story/Journey | Personal experience, build log, lessons learned | Indie hacker retrospective |
|
|
39
|
+
| Hot Take | Opinion piece, contrarian argument | "Why X is wrong" editorial |
|
|
40
|
+
|
|
41
|
+
The agent auto-detects the right style. Override it by specifying the style in your prompt.
|
|
42
|
+
|
|
43
|
+
## Requirements
|
|
44
|
+
|
|
45
|
+
No LLM API key needed. The agent reads the page and writes the thread.
|
|
46
|
+
|
|
47
|
+
**Note on X/Twitter posting:** Twitter's API v2 now requires a paid developer account (Basic tier, $100/month minimum). As a result, the Composio Twitter integration returns a 403 error for most users. The skill still generates complete, ready-to-post threads — just copy-paste them manually. Direct posting via Composio is documented below but is only viable if you have a paid Twitter developer account connected.
|
|
48
|
+
|
|
49
|
+
## Setup
|
|
50
|
+
|
|
51
|
+
### 1. Configure environment variables (optional)
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
cp .env.example .env
|
|
55
|
+
# Add COMPOSIO_API_KEY if you want direct posting to X
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
### 2. Connect X/Twitter via Composio (optional, requires paid Twitter developer account)
|
|
59
|
+
|
|
60
|
+
Twitter's API v2 now requires a paid developer account before Composio can post on your behalf. If you get a 403 error, this is why. Skip this step and use copy-paste output instead.
|
|
61
|
+
|
|
62
|
+
1. Sign up for Twitter Developer Portal (Basic tier, ~$100/month): https://developer.twitter.com/en/portal/products
|
|
63
|
+
2. Get your Composio API key at: https://app.composio.dev/settings
|
|
64
|
+
3. Connect your X/Twitter account at: https://app.composio.dev/app/twitter
|
|
65
|
+
4. Complete the OAuth flow
|
|
66
|
+
|
|
67
|
+
## How to Use
|
|
68
|
+
|
|
69
|
+
From a URL:
|
|
70
|
+
|
|
71
|
+
```
|
|
72
|
+
"Turn this into a tweet thread: https://example.com/blog/post"
|
|
73
|
+
"Create a Twitter thread from this article: https://example.com/post"
|
|
74
|
+
"Write a tweet thread about this blog post: https://example.com/tutorial"
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
From pasted content:
|
|
78
|
+
|
|
79
|
+
```
|
|
80
|
+
"Make a thread from this: [paste article text]"
|
|
81
|
+
"Turn this into a Twitter thread: [paste blog post]"
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
With a style override:
|
|
85
|
+
|
|
86
|
+
```
|
|
87
|
+
"Turn this into a How-To thread: https://example.com/data-article"
|
|
88
|
+
"Write a Hot Take thread from this: https://example.com/opinion"
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
With direct posting (requires paid Twitter developer account + Composio setup):
|
|
92
|
+
|
|
93
|
+
```
|
|
94
|
+
"Post this blog post as a Twitter thread: https://example.com/post"
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
## Output
|
|
98
|
+
|
|
99
|
+
| Output | Description |
|
|
100
|
+
|--------|-------------|
|
|
101
|
+
| Full thread | 7-10 numbered tweets, each under 280 characters |
|
|
102
|
+
| Alternative hook | A second hook tweet in a different format |
|
|
103
|
+
| Posted confirmation | If COMPOSIO_API_KEY is set and you confirm, the thread posts as a reply chain on X |
|
|
104
|
+
|
|
105
|
+
## How Threads Are Formatted
|
|
106
|
+
|
|
107
|
+
Hook first. Tweet 1 leads with the most surprising insight or a curiosity gap. It never announces the thread.
|
|
108
|
+
|
|
109
|
+
One idea per tweet. If a tweet can be split, it gets split. Each tweet stands alone.
|
|
110
|
+
|
|
111
|
+
Numbered throughout. Every tweet starts with its position: "1/8", "2/8", etc.
|
|
112
|
+
|
|
113
|
+
CTA last. The final tweet is the only one with a URL or call to action.
|
|
114
|
+
|
|
115
|
+
No hashtags. Hashtags reduce the quality signal of technical threads.
|
|
116
|
+
|
|
117
|
+
## Project Structure
|
|
118
|
+
|
|
119
|
+
```
|
|
120
|
+
tweet-thread-from-blog/
|
|
121
|
+
├── SKILL.md
|
|
122
|
+
├── README.md
|
|
123
|
+
├── .env.example
|
|
124
|
+
├── evals/
|
|
125
|
+
│ └── evals.json
|
|
126
|
+
└── references/
|
|
127
|
+
├── thread-format.md
|
|
128
|
+
└── output-template.md
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
## License
|
|
132
|
+
|
|
133
|
+
MIT
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Twitter GTM Find Skill
|
|
1
|
+
# Twitter GTM Find Skill
|
|
2
2
|
|
|
3
3
|
<img width="1280" height="640" alt="Generated_chart__twitter-gtm-find-cover-bw png" src="https://github.com/user-attachments/assets/618b0abe-34fc-4c3e-a345-1a3eaeb3d20b" />
|
|
4
4
|
|
|
@@ -29,3 +29,39 @@ https://github.com/user-attachments/assets/cea8b565-2002-4a87-8857-d902bfcfdc1c
|
|
|
29
29
|
4. Choose the option to **Upload a skill**, and drag and drop the `.zip` file (or you can extract it and drop the folder, both work).
|
|
30
30
|
|
|
31
31
|
> **Note:** For some skills (like `position-me`), the `SKILL.md` file might be located inside a subfolder. Always make sure you are uploading the specific folder that contains the `SKILL.md` file!
|
|
32
|
+
|
|
33
|
+
## The Skill Directory
|
|
34
|
+
|
|
35
|
+
All executable code and documentation are packaged cleanly inside the `twitter-GTM-find/` folder. This is designed to be directly imported and read by AI agents (like OpenClaw or Claude) so they understand how to use the tool.
|
|
36
|
+
|
|
37
|
+
```text
|
|
38
|
+
twitter-GTM-find/
|
|
39
|
+
├── SKILL.md <-- The AI entry point and documentation
|
|
40
|
+
├── references/
|
|
41
|
+
│ └── icp-checklist.md <-- The strict evaluation criteria (Dev-first + $100K+ funded)
|
|
42
|
+
└── scripts/
|
|
43
|
+
├── run_pipeline.sh <-- The executable shell script
|
|
44
|
+
└── src/ <-- The TypeScript pipeline source code
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## Usage
|
|
48
|
+
|
|
49
|
+
To run the pipeline manually or via an agent:
|
|
50
|
+
|
|
51
|
+
1. Create a `.env` file at the root of the repository:
|
|
52
|
+
```env
|
|
53
|
+
APIFY_API_TOKEN=your_apify_token
|
|
54
|
+
GEMINI_API_KEY=your_gemini_api_key
|
|
55
|
+
MAX_POSTS=20
|
|
56
|
+
```
|
|
57
|
+
2. Run the shell script:
|
|
58
|
+
```bash
|
|
59
|
+
cd twitter-GTM-find/scripts
|
|
60
|
+
bash run_pipeline.sh
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
## Output
|
|
64
|
+
|
|
65
|
+
The pipeline generates two temporary files at the root of the repository (which are `.gitignore`d to prevent leaking data):
|
|
66
|
+
- `radar-jobs.json`: The initial raw batch of scraped tech jobs.
|
|
67
|
+
- `openclaw-icp-jobs.json`: The final, strict ICP-validated list of highly funded, developer-first startups hiring right now.
|
|
@@ -40,24 +40,3 @@ python scripts/run.py \
|
|
|
40
40
|
- **Taxonomy Constraints**: The scoring engine relies on a fixed taxonomy. Extremely niche or highly unusual product descriptions may not trigger specific industry tags and will default to a "Generalist" view.
|
|
41
41
|
- **Human Review Required**: These outputs are best-effort algorithmic matches. They serve as a research starting point and **must be reviewed by a human** before starting outreach.
|
|
42
42
|
- **No Financial Advice**: This tool does not provide financial or investment advice.
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
## Install
|
|
46
|
-
|
|
47
|
-
### Video Tutorial
|
|
48
|
-
Watch this quick video to see how it's done:
|
|
49
|
-
|
|
50
|
-
https://github.com/user-attachments/assets/cea8b565-2002-4a87-8857-d902bfcfdc1c
|
|
51
|
-
|
|
52
|
-
### Step 1: Download the skill from GitHub
|
|
53
|
-
1. Copy the URL of this specific skill folder from your browser's address bar.
|
|
54
|
-
2. Go to [download-directory.github.io](https://download-directory.github.io/).
|
|
55
|
-
3. Paste the URL and click **Enter** to download.
|
|
56
|
-
|
|
57
|
-
### Step 2: Install the Skill in Claude
|
|
58
|
-
1. Open your **Claude desktop app**.
|
|
59
|
-
2. Go to the sidebar on the left side and click on the **Customize** section.
|
|
60
|
-
3. Click on the **Skills** tab, then click on the **+** (plus) icon button to create a new skill.
|
|
61
|
-
4. Choose the option to **Upload a skill**, and drag and drop the `.zip` file (or you can extract it and drop the folder, both work).
|
|
62
|
-
|
|
63
|
-
> **Note:** For some skills (like `position-me`), the `SKILL.md` file might be located inside a subfolder. Always make sure you are uploading the specific folder that contains the `SKILL.md` file!
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# vc-finder
|
|
1
|
+
# vc-finder
|
|
2
2
|
|
|
3
3
|
Give the skill a product URL or description. It detects the industry and funding stage, identifies 5 comparable funded companies, searches who backed those companies (Track A), finds VCs who publish investment theses about this space (Track B), and returns a ranked sourced investor list with deep-dives and outreach hooks.
|
|
4
4
|
|
|
@@ -14,9 +14,9 @@ Watch this quick video to see how it's done:
|
|
|
14
14
|
https://github.com/user-attachments/assets/cea8b565-2002-4a87-8857-d902bfcfdc1c
|
|
15
15
|
|
|
16
16
|
### Step 1: Download the skill from GitHub
|
|
17
|
-
1.
|
|
18
|
-
2.
|
|
19
|
-
3.
|
|
17
|
+
1. Click the **Code** button on this repo's GitHub page.
|
|
18
|
+
2. Select **Download ZIP** to download the repository.
|
|
19
|
+
3. Extract the ZIP file on your computer.
|
|
20
20
|
|
|
21
21
|
### Step 2: Install the Skill in Claude
|
|
22
22
|
1. Open your **Claude desktop app**.
|
|
@@ -24,4 +24,97 @@ https://github.com/user-attachments/assets/cea8b565-2002-4a87-8857-d902bfcfdc1c
|
|
|
24
24
|
3. Click on the **Skills** tab, then click on the **+** (plus) icon button to create a new skill.
|
|
25
25
|
4. Choose the option to **Upload a skill**, and drag and drop the `.zip` file (or you can extract it and drop the folder, both work).
|
|
26
26
|
|
|
27
|
-
> **Note:**
|
|
27
|
+
> **Note:** Make sure you are uploading the folder that contains the `SKILL.md` file!
|
|
28
|
+
|
|
29
|
+
## What It Does
|
|
30
|
+
|
|
31
|
+
- Fetches the product URL via Firecrawl (handles JS-rendered SPAs) or Tavily extract as fallback
|
|
32
|
+
- Detects funding stage from CTA signals on the page (waitlist, free trial, pricing, sales CTAs)
|
|
33
|
+
- Maps a 3-level industry taxonomy (L1 > L2 > L3) from the product page
|
|
34
|
+
- **Curated pre-match (Step 5b):** Scores product against a verified dataset of 25 VC funds (sourced from fund websites) -- instant zero-hallucination matches with no Tavily credits consumed
|
|
35
|
+
- **Discovers comparable companies:** Curated portfolio companies from matched funds + Tavily live search for L3-niche specifics
|
|
36
|
+
- Track A: 5 Tavily searches to find who invested in each comparable company
|
|
37
|
+
- Track B: 3 Tavily searches to find VCs who publish investment theses about this specific niche
|
|
38
|
+
- Synthesizes and ranks all found VCs -- curated matches labeled "verified", Tavily matches labeled by track
|
|
39
|
+
- Produces top 5 deep-dives with fund overview, portfolio evidence, how-to-approach, and outreach hook
|
|
40
|
+
- Generates 3 product-specific outreach hooks (not generic advice)
|
|
41
|
+
- Saves output to `docs/vc-intel/[product]-[date].md`
|
|
42
|
+
|
|
43
|
+
**Zero-hallucination guarantee:** Every VC name, fund detail, check size, portfolio company, and thesis source in the output must trace to either (a) the curated `data/vc_funds.json` dataset (sourced from fund websites) or (b) a specific Tavily search result. The AI does not draw from training knowledge for any factual claim.
|
|
44
|
+
|
|
45
|
+
## Requirements
|
|
46
|
+
|
|
47
|
+
| Requirement | Purpose | How to Set Up |
|
|
48
|
+
|---|---|---|
|
|
49
|
+
| Tavily API key | VC investment research (Track A and Track B) | app.tavily.com, free tier: 1000 credits/month |
|
|
50
|
+
| Firecrawl API key | Fetching JS-rendered product pages (optional) | firecrawl.dev, free tier: 500 credits/month |
|
|
51
|
+
|
|
52
|
+
Tavily is required. Firecrawl is recommended -- without it, Tavily extract is used as fallback (may miss JS-rendered content).
|
|
53
|
+
|
|
54
|
+
## Setup
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
cp .env.example .env
|
|
58
|
+
# Add TAVILY_API_KEY (required)
|
|
59
|
+
# Add FIRECRAWL_API_KEY (recommended)
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
## How to Use
|
|
63
|
+
|
|
64
|
+
```
|
|
65
|
+
"Find VCs for my startup: https://example.com"
|
|
66
|
+
"Who invests in developer tools at seed stage?"
|
|
67
|
+
"Build me a VC target list for https://example.com"
|
|
68
|
+
"Which funds should I pitch? https://example.com"
|
|
69
|
+
"Find investors for my product: [paste description]"
|
|
70
|
+
"Who backed companies like mine? https://example.com"
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
Or paste a product description directly if the URL is behind a login or returns no readable content.
|
|
74
|
+
|
|
75
|
+
## Why Two Tracks
|
|
76
|
+
|
|
77
|
+
**Track A (portfolio mapping):** VCs who already wrote a check in your space. These investors have proven they understand the category, the risks, and the buyer. They need less convincing than a generalist fund.
|
|
78
|
+
|
|
79
|
+
**Track B (thesis matching):** VCs who are actively publishing about your space. An investor who wrote a 2,000-word blog post about why they want to invest in CI/CD tooling is actively looking for deals. Your cold email lands in a much warmer inbox.
|
|
80
|
+
|
|
81
|
+
Generic "VCs in B2B SaaS" lists skip both signals. This skill produces only VCs with named evidence for each entry.
|
|
82
|
+
|
|
83
|
+
## Output
|
|
84
|
+
|
|
85
|
+
Each run produces:
|
|
86
|
+
|
|
87
|
+
1. **Product analysis**: detected industry taxonomy, stage, ICP, comparable companies used
|
|
88
|
+
2. **Track A table**: VCs who backed comparable companies (with evidence)
|
|
89
|
+
3. **Track B table**: VCs with published theses about this space (with source)
|
|
90
|
+
4. **Top 5 deep-dives**: fund overview, why it fits, portfolio in space, how to approach, outreach hook
|
|
91
|
+
5. **3 outreach hooks**: product-specific openers for cold outreach
|
|
92
|
+
|
|
93
|
+
## Cost per Run
|
|
94
|
+
|
|
95
|
+
- Firecrawl: ~$0.001 per fetch
|
|
96
|
+
- Tavily: 10 searches at ~$0.01 each = ~$0.10 (2 comparable discovery + 5 Track A + 3 Track B)
|
|
97
|
+
- Curated pre-match (Step 5b): $0.00 -- local scoring against `data/vc_funds.json`, no API calls
|
|
98
|
+
- Total: ~$0.10 per run
|
|
99
|
+
|
|
100
|
+
## Project Structure
|
|
101
|
+
|
|
102
|
+
```
|
|
103
|
+
vc-finder/
|
|
104
|
+
├── SKILL.md
|
|
105
|
+
├── README.md
|
|
106
|
+
├── .env.example
|
|
107
|
+
├── data/
|
|
108
|
+
│ └── vc_funds.json (25 verified funds, sourced from fund websites)
|
|
109
|
+
├── scripts/
|
|
110
|
+
│ └── match_funds.py (standalone scoring script for testing)
|
|
111
|
+
├── evals/
|
|
112
|
+
│ └── evals.json
|
|
113
|
+
└── references/
|
|
114
|
+
├── stage-signals.md
|
|
115
|
+
└── vc-outreach-guide.md
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
## License
|
|
119
|
+
|
|
120
|
+
MIT
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# vid-motion-graphics
|
|
1
|
+
# vid-motion-graphics
|
|
2
2
|
|
|
3
3
|
Generates multi-scene motion graphics as MP4 from a content brief. HTML/CSS animations rendered frame-by-frame in headless Chromium via Playwright, assembled with FFmpeg. No React, no AI APIs, no Python.
|
|
4
4
|
|
|
@@ -16,9 +16,9 @@ Watch this quick video to see how it's done:
|
|
|
16
16
|
https://github.com/user-attachments/assets/cea8b565-2002-4a87-8857-d902bfcfdc1c
|
|
17
17
|
|
|
18
18
|
### Step 1: Download the skill from GitHub
|
|
19
|
-
1.
|
|
20
|
-
2.
|
|
21
|
-
3.
|
|
19
|
+
1. Click the **Code** button on this repo's GitHub page.
|
|
20
|
+
2. Select **Download ZIP** to download the repository.
|
|
21
|
+
3. Extract the ZIP file on your computer.
|
|
22
22
|
|
|
23
23
|
### Step 2: Install the Skill in Claude
|
|
24
24
|
1. Open your **Claude desktop app**.
|
|
@@ -26,4 +26,64 @@ https://github.com/user-attachments/assets/cea8b565-2002-4a87-8857-d902bfcfdc1c
|
|
|
26
26
|
3. Click on the **Skills** tab, then click on the **+** (plus) icon button to create a new skill.
|
|
27
27
|
4. Choose the option to **Upload a skill**, and drag and drop the `.zip` file (or you can extract it and drop the folder, both work).
|
|
28
28
|
|
|
29
|
-
> **Note:**
|
|
29
|
+
> **Note:** Make sure you are uploading the folder that contains the `SKILL.md` file!
|
|
30
|
+
|
|
31
|
+
## What it does
|
|
32
|
+
|
|
33
|
+
1. Takes a content brief (what each scene should say) and style params
|
|
34
|
+
2. Generates a multi-scene HTML/CSS animation file
|
|
35
|
+
3. Captures frames via Playwright + Web Animations API seeking
|
|
36
|
+
4. Assembles PNG sequence → H.264 MP4 with FFmpeg
|
|
37
|
+
5. Optionally mixes in background audio
|
|
38
|
+
|
|
39
|
+
## Output
|
|
40
|
+
|
|
41
|
+
- Format: H.264 MP4, `-pix_fmt yuv420p` (compatible with QuickTime, iOS, Android, Twitter, LinkedIn, Instagram)
|
|
42
|
+
- Default: 1080×1080px @2× retina (2160×2160 actual)
|
|
43
|
+
- Supports: 1:1, 16:9 (1920×1080), 9:16 (1080×1920)
|
|
44
|
+
- FPS: 24, 30, or 60
|
|
45
|
+
|
|
46
|
+
## Scene types
|
|
47
|
+
|
|
48
|
+
| Type | Best for |
|
|
49
|
+
|---|---|
|
|
50
|
+
| `title-card` | Opening hook, brand intro |
|
|
51
|
+
| `stat-reveal` | Single oversized metric |
|
|
52
|
+
| `bullet-list` | 2–4 supporting points |
|
|
53
|
+
| `split-screen` | Before/after, two values |
|
|
54
|
+
| `quote-card` | Testimonial, pull quote |
|
|
55
|
+
| `cta-card` | Final scene, call to action |
|
|
56
|
+
|
|
57
|
+
## Style presets
|
|
58
|
+
|
|
59
|
+
| Preset | Feel |
|
|
60
|
+
|---|---|
|
|
61
|
+
| `kinetic-dark` | Dark bg, electric yellow, tight grotesque (default) |
|
|
62
|
+
| `editorial-light` | White bg, serif display, refined |
|
|
63
|
+
| `data-pulse` | Deep navy, mono, terminal/dashboard |
|
|
64
|
+
| `bold-type` | White bg, Bebas Neue, red accent, slam-in |
|
|
65
|
+
| `minimal-clean` | Off-white, Cormorant, gentle rise |
|
|
66
|
+
|
|
67
|
+
## Requirements
|
|
68
|
+
|
|
69
|
+
- Node.js (for Playwright frame capture)
|
|
70
|
+
- FFmpeg (for MP4 assembly)
|
|
71
|
+
- Internet access for Google Fonts CDN during capture
|
|
72
|
+
|
|
73
|
+
## Usage
|
|
74
|
+
|
|
75
|
+
```
|
|
76
|
+
Create a 9-second motion graphic. Brief: 'Q4 revenue hit $4.2M — 85% growth.
|
|
77
|
+
Three drivers: enterprise deals, churn 1.2%, price increase.
|
|
78
|
+
CTA: acme.com/q4'. Style: data-pulse. Aspect: 1:1.
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
## Quick export
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
bash scripts/export-video.sh chart/[slug]/video.html --duration 9
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
## Differentiator vs SkillsMP
|
|
88
|
+
|
|
89
|
+
All top SkillsMP motion-graphic skills require Remotion (React build step) or AI video APIs (Runway, Kling — cost + rate limits). This skill uses the proven HTML/CSS → Playwright → FFmpeg pipeline from the `graphic-gif` family: zero new dependencies, pixel-perfect output, full CSS control.
|
|
@@ -10,24 +10,6 @@ Stop guessing which communities to post in. Get signal-traced evidence.
|
|
|
10
10
|
npx "@opendirectory.dev/skills" install where-your-customer-lives --target claude
|
|
11
11
|
```
|
|
12
12
|
|
|
13
|
-
### Video Tutorial
|
|
14
|
-
Watch this quick video to see how it's done:
|
|
15
|
-
|
|
16
|
-
https://github.com/user-attachments/assets/cea8b565-2002-4a87-8857-d902bfcfdc1c
|
|
17
|
-
|
|
18
|
-
### Step 1: Download the skill from GitHub
|
|
19
|
-
1. Copy the URL of this specific skill folder from your browser's address bar.
|
|
20
|
-
2. Go to [download-directory.github.io](https://download-directory.github.io/).
|
|
21
|
-
3. Paste the URL and click **Enter** to download.
|
|
22
|
-
|
|
23
|
-
### Step 2: Install the Skill in Claude
|
|
24
|
-
1. Open your **Claude desktop app**.
|
|
25
|
-
2. Go to the sidebar on the left side and click on the **Customize** section.
|
|
26
|
-
3. Click on the **Skills** tab, then click on the **+** (plus) icon button to create a new skill.
|
|
27
|
-
4. Choose the option to **Upload a skill**, and drag and drop the `.zip` file (or you can extract it and drop the folder, both work).
|
|
28
|
-
|
|
29
|
-
> **Note:** For some skills (like `position-me`), the `SKILL.md` file might be located inside a subfolder. Always make sure you are uploading the specific folder that contains the `SKILL.md` file!
|
|
30
|
-
|
|
31
13
|
## What It Does
|
|
32
14
|
|
|
33
15
|
- Accepts: product description + ICP role + ICP pain + competitors (any combination)
|
|
@@ -151,4 +133,3 @@ Run both for a complete picture: map-your-market tells you what to say, where-yo
|
|
|
151
133
|
## License
|
|
152
134
|
|
|
153
135
|
MIT
|
|
154
|
-
|