Systems Lab

Agent skill

first-50-users

Get the first 50 real users through channels the user's ICP already uses.

activeReaches the webInstructions only588 words

Filed under Prospecting and list building.

From AIDevGTM/gtm-cofounder · 19 skills · 252 · pushed 2026-08-27

What it does when it runs

Get the first 50 real users through channels the user's ICP already uses. Use when the product shipped and nobody came, the user is \"posting more\" with no result, or is reaching for paid ads before product-market fit.

Read from the skill and the 0 files bundled beside it. A skill’s own description is written to be selected by an agent, so it describes the job and not the dependencies.

Keys and connectors you must supply
None found.
Hosts it reaches
  • thedevtoolgtmcompany.com
Tool permissions it declares
No allowed-tools in the frontmatter. It only issues instructions, so there is nothing to bound.
Actions present in the files
None. Instructions only.

Ask about first-50-users

Opens your assistant with this page's verified links already in the prompt.

Is this safe to install?ClaudeChatGPT
Adapt it to my stackClaudeChatGPT
What else do I need for it to workClaudeChatGPT
Rather ask a human? Talk to Cheetah
git clone --depth 1 --filter=blob:none --sparse https://github.com/AIDevGTM/gtm-cofounder.git /tmp/gtm-cofounder
git -C /tmp/gtm-cofounder sparse-checkout set "skills/09-first-50-users"
mkdir -p ~/.claude/skills/first-50-users
cp -R "/tmp/gtm-cofounder/skills/09-first-50-users/." ~/.claude/skills/first-50-users/

Picked up without a restart. A project skill of the same name is shadowed by your personal one. For one repository only, swap ~/.claude/skills for .claude/skills. Claude Code docs ↗

Or take the whole library

This repo ships a .claude-plugin manifest, so Claude Code can install all 19 skills at once. Plugin skills are invoked as /<plugin>:<skill>, so they never collide with your own.

/plugin marketplace add AIDevGTM/gtm-cofounder
/plugin

The folder is the same in every client that implements the format — 46 of them — so if yours is not above, only the destination changes.

Reproduced in full from AIDevGTM/gtm-cofounder/blob/23398dc729687130c4c7a7cb3a26f9c07e67f39d/skills/09-first-50-users/SKILL.md, which is licensed MIT (repository). 588 words, 7 headings.

Your first 50 users

You don't get your first 50 users by posting more. You get them by going where your users already discover tools, and, at the start, by doing things that don't scale.

Use this when: you launched to silence, you're spraying every channel hoping one works, or you're about to buy ads to fix a problem ads can't fix.

The core idea

Every developer audience has an existing technology-discovery loop: the specific places they already go to find new tools. Your job isn't to invent demand; it's to position yourself inside that loop. And your first cohort is hand-to-hand: the TAB members from talk-to-users are your first users.

Framework: the top of the DREAM funnel (Frankl)

  • Discovery: be where developers look: the communities, newsletters, influencers, and searches your ICP already uses. Metric: unique humans, not pageviews.
  • Research: give the interested dev a next step before they forget you: newsletter, Discord, free tier, docs. Developers can sit in Research for months, so sustain the relationship.

Then Evaluation decides everything (see know-if-its-working): can a new dev get value over a weekend, from docs and Stack Overflow, with no support call? If not, more traffic just fills a leaky bucket.

Framework: channels by stage (Czakon)

Pre-PMF (you are here for the first 50): unscalable, direct, high-touch.

  • The people who posted about the problem (HN/Reddit/GitHub issues/X), DM them, personally.
  • Your TAB → convert to design partners / first users.
  • Founder posting genuinely useful things where the ICP hangs out (not "we launched!").
  • One deep launch (see launch-it), not ten shallow ones.

Post-PMF (later): content/SEO, community, dev-influencer partnerships, then paid to amplify what already converts, never to discover it. And once the first 50 are in and retention holds, the hand-to-hand work graduates: build the self-reinforcing engine in growth-loops.

How to pick the channel (don't do all of them)

From talk-to-users question 7 ("where do you go to stay current?"), you already have the answer. Rank channels by where your specific ICP is, and go deep on one before adding a second.

Is your ICP concentrated somewhere specific (a subreddit, a Discord, a conference, a tag)?
├─ YES → go all-in there first. Depth beats spread at 0→50.
└─ NO  → your ICP may be too broad → tighten it in `who-is-this-for`.

Mistakes that look reasonable

  • "Post more": volume without a channel thesis is noise.
  • Paid ads pre-PMF: you'll pay to accelerate a message that doesn't convert yet.
  • Building a community at 5 users: a Discord with 3 lurkers is a graveyard that signals "dead." Wait for real traction.
  • Optimizing acquisition over a leaky bucket: if week-2 retention is near zero, fix Evaluation/Activation first.
  • Launching ten times, shallow: one well-prepared launch > ten "we shipped X" tweets.

Your next 30 minutes

  • Write down the 3 exact places your ICP discovers tools (pull from talk-to-users Q7).
  • List 20 people who publicly posted about your problem. DM 5 today, helpful, not pitchy.
  • Turn your best 5 TAB members into your first 5 users this week.
  • Confirm a new user can hit first value in under an hour. If not, that's the real priority.

Built from real dev-tool GTM experience, with frameworks from Adam Frankl (The Developer-Facing Startup) and Jakub Czakon (markepear.dev). When a framework can't make the call, that's what a human is for: The DevTool GTM Company.

Other skills for the same job

Different authors, same problem. Matched on the words in the skill name, across every library in the catalogue except this one.

Need help setting it up?

This page tells you what first-50-users does and what it needs. Cheetah builds the agent setup it runs inside: data, CRM, sequencing and the guardrails.

Book a call →

The directory stays free. There is nothing gated behind this.