Influencer Discovery
tigerless-labs/influencer-discovery
Find the bloggers/creators who can help promote your work, capture their contact info, and append them to the target sheet in Google Sheets.
Find Twitter/X influencers to promote a product or brand. An agent skill from gooseworks-ai/goose-skills.
$ npx skills add gooseworks-ai/goose-skills --skill find-twitter-influencers -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install gooseworks-ai/goose-skills find-twitter-influencers --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/gooseworks-ai/goose-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/social/capabilities/find-twitter-influencers .claude/skills/find-twitter-influencers && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "find-twitter-influencers" agent skill from https://github.com/gooseworks-ai/goose-skills/tree/main/skills/social/capabilities/find-twitter-influencers into .claude/skills/find-twitter-influencers/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "find-twitter-influencers", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/gooseworks-ai/goose-skills/tree/main/skills/social/capabilities/find-twitter-influencersType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add gooseworks-ai/goose-skills --skill find-twitter-influencers -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install gooseworks-ai/goose-skills find-twitter-influencers --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/gooseworks-ai/goose-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/social/capabilities/find-twitter-influencers .agents/skills/find-twitter-influencers && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "find-twitter-influencers" agent skill from https://github.com/gooseworks-ai/goose-skills/tree/main/skills/social/capabilities/find-twitter-influencers into .agents/skills/find-twitter-influencers/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "find-twitter-influencers", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add gooseworks-ai/goose-skills --skill find-twitter-influencers -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install gooseworks-ai/goose-skills find-twitter-influencers --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/gooseworks-ai/goose-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/social/capabilities/find-twitter-influencers .cursor/skills/find-twitter-influencers && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "find-twitter-influencers" agent skill from https://github.com/gooseworks-ai/goose-skills/tree/main/skills/social/capabilities/find-twitter-influencers into .cursor/skills/find-twitter-influencers/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "find-twitter-influencers", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/gooseworks-ai/goose-skills.git --path skills/social/capabilities/find-twitter-influencers--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add gooseworks-ai/goose-skills --skill find-twitter-influencers -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install gooseworks-ai/goose-skills find-twitter-influencers --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/gooseworks-ai/goose-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/social/capabilities/find-twitter-influencers .gemini/skills/find-twitter-influencers && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "find-twitter-influencers" agent skill from https://github.com/gooseworks-ai/goose-skills/tree/main/skills/social/capabilities/find-twitter-influencers into .gemini/skills/find-twitter-influencers/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "find-twitter-influencers", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install gooseworks-ai/goose-skills find-twitter-influencersInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add gooseworks-ai/goose-skills --skill find-twitter-influencers -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/gooseworks-ai/goose-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/social/capabilities/find-twitter-influencers .github/skills/find-twitter-influencers && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "find-twitter-influencers" agent skill from https://github.com/gooseworks-ai/goose-skills/tree/main/skills/social/capabilities/find-twitter-influencers into .github/skills/find-twitter-influencers/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "find-twitter-influencers", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add gooseworks-ai/goose-skills --skill find-twitter-influencers -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install gooseworks-ai/goose-skills find-twitter-influencers --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/gooseworks-ai/goose-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/social/capabilities/find-twitter-influencers .opencode/skills/find-twitter-influencers && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "find-twitter-influencers" agent skill from https://github.com/gooseworks-ai/goose-skills/tree/main/skills/social/capabilities/find-twitter-influencers into .opencode/skills/find-twitter-influencers/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "find-twitter-influencers", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
find-twitter-influencersFind Twitter/X influencers to promote a product or brand. An agent skill from gooseworks-ai/goose-skills.
Find Twitter Influencers is an agent skill from gooseworks-ai/goose-skills. Find Twitter/X influencers to promote a product or brand. Use when asked to find influencers, discover Twitter accounts for partnerships, identify creators in a niche, or build an influencer outreach list.
Its SKILL.md is about 6.5k tokens, which your agent loads only when the skill is triggered. The skill folder holds 1 other file (for example `skill.meta.json`).
It sits in Marketing & SEO, covering Influencer and creator marketing. It works with X (Twitter). The repository describes itself as: Library of Growth & GTM skills + data APIs for Claude Code, Codex, Cursor to run ads, social, content, lead gen, seo and data scraping. The licence is MIT.
9 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit c650c6d. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
curlpython3npxFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
x.comlinkedin.comapi.gooseworks.aiFrom URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
GOOSEWORKS_API_KEYFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Find Twitter Influencers loads about 6.5k tokens when it runs. Until then it costs about 58 tokens; SKILL.md has 2,478 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from gooseworks-ai/goose-skills at commit c650c6d, republished under its MIT licence (© gooseworks-ai). 2,478 words, ~6,451 tokens.
.claude/skills/find-twitter-influencers/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.Choose the available runtime before doing any credential setup:
scrapecreators-api and prefer call_data_provider. For another provider step without a connected tool, use an equivalent built-in public-web method when it preserves the workflow, or clearly report that step as unavailable.Read your credentials from ~/.gooseworks/credentials.json:
export GOOSEWORKS_API_KEY=$(python3 -c "import json;print(json.load(open('$HOME/.gooseworks/credentials.json'))['api_key'])")
export GOOSEWORKS_API_BASE=$(python3 -c "import json;print(json.load(open('$HOME/.gooseworks/credentials.json')).get('api_base','https://api.gooseworks.ai'))")If ~/.gooseworks/credentials.json does not exist, tell the user to run: npx gooseworks login
The local proxy endpoints use Bearer auth: -H "Authorization: Bearer $GOOSEWORKS_API_KEY". ScrapeCreators operation descriptions below remain environment-neutral in both runtimes.
Discover, score, and enrich Twitter/X influencers relevant to a company, product, or niche. Returns a ranked list with engagement metrics, relevance reasoning, and contact info.
Extract from the user's query:
Use Brand.dev to get domain, industry, description, target audience, and keywords. This context drives all subsequent searches.
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
-H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"api":"brand-dev","path":"/v1/brand/retrieve-by-name","query":{"name":"Acme","Corp":""}}'If a domain is provided directly:
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
-H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"api":"brand-dev","path":"/v1/brand/retrieve","query":{"domain":"acme.com"}}'From the result, build a company context string: company name, domain, industry, description, and target audience keywords. Example: "Acme Corp acme.com developer tools API platform engineering teams". Use this in all search queries.
Run three strategies in parallel to maximize coverage:
Strategy A — Exa search for curated influencer lists (primary, highest signal):
IMPORTANT: x.com and twitter.com profiles are NOT in Exa's search index, so includeDomains: ["x.com"] will return zero Twitter results. Instead, search for curated list pages, blog posts, and articles about influencers in the niche. Use contents.text to get the page content so you can extract Twitter handles from it.
Run 5+ query variations to maximize coverage. Include the core niche AND adjacent niches — many influencers span related topics. Each query returns 10 results with text content:
# Query 1: Core niche — curated lists
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
-H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"api":"exa","path":"/search"}'
"query": "best {niche} Twitter accounts to follow",
"numResults": 10,
"contents": {"text": {"maxCharacters": 5000}}
}'
# Query 2: Core niche — different phrasing
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
-H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"api":"exa","path":"/search"}'
"query": "top {industry} influencers on X Twitter must follow",
"numResults": 10,
"contents": {"text": {"maxCharacters": 5000}}
}'
# Query 3: Core niche — thought leaders
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
-H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"api":"exa","path":"/search"}'
"query": "{niche} thought leaders creators Twitter handles",
"numResults": 10,
"contents": {"text": {"maxCharacters": 5000}}
}'
# Query 4: Adjacent niche 1 (e.g., if niche is "identity verification", try "fraud prevention")
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
-H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"api":"exa","path":"/search"}'
"query": "top {adjacent_niche_1} influencers Twitter accounts to follow",
"numResults": 10,
"contents": {"text": {"maxCharacters": 5000}}
}'
# Query 5: Adjacent niche 2 (e.g., "cybersecurity", "regtech", "biometrics")
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
-H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"api":"exa","path":"/search"}'
"query": "best {adjacent_niche_2} experts creators on X Twitter",
"numResults": 10,
"contents": {"text": {"maxCharacters": 5000}}
}'Choosing adjacent niches: From the company context (Step 2), identify 2-3 related verticals. Examples:
These queries return listicle pages (e.g., "Top 60 Fintech Influencers", "FinTwit Accounts to Follow") whose text content contains Twitter handles, bios, and follower counts. Parse these in Step 4.
Strategy B — Exa findSimilar (expand from strong listicle finds):
After Strategy A returns results, pick 1-2 of the best curated list URLs and find similar pages:
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
-H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"api":"exa","path":"/findSimilar"}'
"url": "https://example.com/top-fintech-twitter-influencers",
"numResults": 5,
"contents": {"text": {"maxCharacters": 5000}}
}'This surfaces additional curated lists that keyword search may miss. Do NOT use Twitter/X profile URLs for findSimilar — they are not in Exa's index and will return empty results.
Strategy C — Fiber natural-language-search (catch LinkedIn-heavy professionals):
Some influencers are better indexed on LinkedIn but have active Twitter accounts. Fiber can surface these. Run 2-3 queries covering the core niche and adjacent topics:
# Core niche
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
-H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"api":"fiber","path":"/v1/natural-language-search/profiles"}'
"query": "{niche} thought leader content creator with Twitter presence at {industry} companies",
"pageSize": 20
}'
# Adjacent niche — broader coverage
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
-H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"api":"fiber","path":"/v1/natural-language-search/profiles"}'
"query": "{adjacent_niche} influencer expert with large social media following",
"pageSize": 20
}'Cross-reference Fiber results with Twitter in Step 5 — only keep people with active Twitter accounts. Also extract LinkedIn URLs from Fiber results — these are critical for contact enrichment in Step 7.
From the text content of Exa listicle pages, parse Twitter handles using multiple patterns:
@username mentions in the article textx.com/username or twitter.com/username/status/123, /followers) — only keep base profile usernamesx.com/home, x.com/search)@stripe, @shopify) — focus on individual creatorsFrom Fiber results, extract any Twitter/X URLs from social profiles. Add new handles to the candidate pool.
Also extract LinkedIn URLs mentioned alongside Twitter handles in listicle pages — save these for contact enrichment in Step 7.
Target: ~100-150 unique handles after dedup. Curated list pages typically mention 20-50 handles each, so 5+ good listicle results across core and adjacent niches yield a large candidate pool.
Use Scrape Creators to fetch structured Twitter data. This is a two-step process: fetch profiles for ALL candidates (cheap, 1 credit each), then fetch tweets for the top ~2x the target result count after profile filtering (e.g., ~40 if targeting 20 results).
Step 1 — Fetch profiles for all candidates:
provider: scrapecreators
method: GET
path: /v1/twitter/profile
query:
handle: examplehandleReturns nested JSON. Key fields are inside core and legacy objects:
core.screen_name, core.name — handle and display namelegacy.description — bio textlegacy.followers_count, legacy.friends_count, legacy.statuses_count — countslegacy.location, legacy.created_at — location and account ageis_blue_verified — verification statusThe profile URL is https://x.com/{screen_name}.
IMPORTANT — Parallelize profile fetches: Do NOT fetch profiles one-by-one in a sequential loop. Instead, launch ALL profile fetch calls in parallel (multiple tool calls in a single message). This dramatically reduces total wait time from minutes to seconds. Group into batches of 10-15 parallel calls if needed.
Apply hard filters to narrow the pool:
Step 2 — Fetch tweets for top candidates (after profile filtering — fetch ~2x the target result count to allow for filtering, e.g., ~40 if targeting 20 results):
provider: scrapecreators
method: GET
path: /v1/twitter/user-tweets
query:
handle: examplehandleReturns an array of tweet objects. IMPORTANT — The data is nested inside each tweet object:
legacy.full_text — tweet textlegacy.favorite_count — likes (integer)legacy.retweet_count — retweets (integer)legacy.reply_count — replies (integer)legacy.created_at — timestampviews.count — view count (may not always be present)url — direct link to the tweet (top-level field)Note: favorite_count, retweet_count, reply_count are inside the legacy object, NOT at the top level of each tweet.
IMPORTANT — Parallelize tweet fetches: Just like profile fetches, launch ALL tweet fetch calls in parallel (multiple tool calls in a single message). Do NOT use sequential for-loops. This is the single biggest speed optimization.
For each candidate, identify the top 3 tweets by engagement (likes + retweets + replies). Save the best one with its URL for inclusion in the final results table.
From the tweet data, calculate:
created_at datesfull_text)Additional hard filters (applied after tweet fetch):
Skip reply-only accounts (>80% of tweets are replies to others with minimal engagement).
Apply a composite scoring model:
| Factor | Weight | Signal |
|---|---|---|
| Relevance | 40% | Bio keywords, content themes, audience overlap with target company |
| Engagement rate | 25% | Higher is better; micro-influencers often outperform macro here |
| Follower count | 15% | Log-scaled — diminishing returns above 100K |
| Content quality | 10% | Original content vs retweets, thread depth, media usage |
| Audience alignment | 10% | Do their followers match the company's target audience? Inferred from bio + content themes |
Scoring guidelines:
Rank all candidates by composite score. Select the top N (default 20) for the final list. 20 is a good default — enough to give the user real options without overwhelming them. Scale up if the user asks for more, but always include at least the top 20 if that many qualify.
For the final list, find email addresses and LinkedIn profiles. The key insight: discover LinkedIn URLs first — they dramatically improve match rates for all enrichment APIs.
Step 1 — Collect what you already have: From previous steps, gather:
Step 2 — Discover LinkedIn URLs for candidates missing them:
# Exa search to find LinkedIn profiles by name
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
-H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"api":"exa","path":"/search"}'
"query": "Jane Smith site:linkedin.com/in",
"numResults": 3,
"includeDomains": ["linkedin.com"]
}'Launch ALL these Exa searches in parallel (multiple tool calls in a single message). Match by name + job title/company from their Twitter bio. LinkedIn URLs are indexed by Exa, unlike Twitter profiles.
Step 3 — Fiber kitchen-sink (best coverage for professionals):
# With LinkedIn URL (best match rate — ALWAYS prefer this):
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
-H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"api":"fiber","path":"/v1/kitchen-sink/person"}'
"profileIdentifier": "https://linkedin.com/in/janesmith"
}'Note: Fiber kitchen-sink does NOT accept a Twitter URL parameter. Use profileIdentifier (LinkedIn URL) for best results. The name+company fallback has low match rates for influencers — invest in finding LinkedIn URLs in Step 2 instead.
Step 4 — Hunter email-finder (if you have their name + domain from their website/LinkedIn):
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
-H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"api":"hunter","path":"/v2/email-finder","query":{"domain":"janesmithcreative.com"}}'Step 5 — Tomba LinkedIn-to-email (if LinkedIn URL was discovered):
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
-H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"api":"tomba","path":"/v1/linkedin","query":{"url":"https://linkedin.com/in/janesmith"}}'Also extract from enrichment results:
Output a ranked markdown table with ALL qualifying influencers. Use full plain-text URLs — do NOT use markdown link syntax like [text](url) or [@handle](url) because these often don't render as clickable links in all contexts. Instead, write out the full URL directly.
## Twitter Influencers for {Company} — {Niche}
Found {N} influencers ranked by relevance and engagement:
| # | Name | Twitter | Followers | Eng. Rate | Why They Fit | Top Tweet | Email | LinkedIn |
|---|------|---------|-----------|-----------|--------------|-----------|-------|----------|
| 1 | Jane Smith | https://x.com/janesmith | 45.2K | 3.8% | {1-line reason} | https://x.com/janesmith/status/123 | jane@... | https://linkedin.com/in/janesmith |
| 2 | ... | ... | ... | ... | ... | ... | ... | ... |
### Size Distribution
- Mid-tier (10K-100K): {count}
- Macro (100K+): {count}
### Notes
- Engagement rates above 3% are excellent for partnership ROI
- Influencers marked with "DM preferred" indicated in their bio they prefer DMs over email
- {Any caveats about the search — e.g., niche is small so fewer results}Default to showing 20 results. This is double the old default of 10, giving the user more options without overwhelming them. If fewer than 20 qualify, show all that qualify. If the user asks for more, scale up accordingly.
The Top Tweet column should contain the URL to each influencer's highest-engagement tweet (by likes + retweets + replies). This gives the user an immediate feel for the influencer's content style and reach.
Include a brief summary of search coverage: how many candidates were found, how many passed filtering, and any gaps (e.g., "Few macro influencers found in this niche — consider broadening to adjacent topics").
Only if the user requests more detail on specific influencers:
Full tweet analysis (recent content, top tweets, audience reactions): Run both ScrapeCreators operations defined in Steps 1 and 2 for the selected handle.
If deeper tweet history is needed, Nyne can fetch recent newsfeed data asynchronously:
# Step 1: POST to start async retrieval
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
-H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"api":"","path":"","body":{"social_media_url":"https://x.com/TARGET"}}'
# Step 2: Poll with GET using request_id
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
-H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"api":"nyne","path":"/person/newsfeed","query":{"request_id":"REQUEST_ID"}}'LinkedIn profile (full work history, credentials, other ventures):
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
-H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"api":"fiber","path":"/v1/linkedin-live-fetch/profile/single","body":{"identifier":"https://linkedin.com/in/TARGET"}}'Deep enrichment (AI-powered research — slow, ~30-60s):
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
-H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"api":"sixtyfour","path":"/enrich-lead"}'
"lead_info": {"first_name": "Jane", "last_name": "Smith", "linkedin_url": "https://linkedin.com/in/janesmith"},
"struct": {"work_email": "Work email", "personal_email": "Personal email", "phone": "Phone number", "audience_size": "Total audience across platforms", "collab_history": "Known brand collaborations", "content_style": "Content style and themes"}
}'includeDomains: ["x.com"] returns zero Twitter results. Instead, search for curated list pages and listicles about influencers, then extract handles from the page textcontents: { text: { maxCharacters: 5000 } } when searching for influencer lists. The page text contains @handles, profile URLs, and bios that you need to parsecore (name, screen_name) and legacy (followers_count, description, etc.) objects. Tweet engagement data is inside each tweet's legacy object (legacy.favorite_count, legacy.retweet_count, legacy.reply_count), NOT at the top level. Always access tweet['legacy']['favorite_count'], not tweet['favorite_count']url field on each tweet object (top-level, not inside legacy) gives you https://x.com/{handle}/status/{id}. The profile URL is https://x.com/{screen_name}https://x.com/handle and https://linkedin.com/in/name as plain text in the results table. Markdown link syntax like [@handle](url) or [Profile](url) often doesn't render as clickable links and makes the output harder to useprofileIdentifier (LinkedIn URL) for best match rate. The name+company fallback has very low match rates for influencerssite:linkedin.com/in "Jane Smith") or from listicle page text. LinkedIn URLs in profileIdentifier have dramatically better match ratesuser-tweets endpoint returns top tweets, not chronologically sorted. To check if an account is truly active, look at the created_at dates across all returned tweets — if the newest tweet is months old, the account may be inactive even though it has high historical engagement© gooseworks-ai, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file in skills/social/capabilities/find-twitter-influencers of gooseworks-ai/goose-skills.
Open the folder on GitHubat commit c650c6d
We found 1 copy of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in gooseworks-ai/goose-skills, which our catalogue first saw on October 7, 2026.
Find Twitter Influencers next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Find Twitter Influencers this skillgooseworks-ai/goose-skills | 1.2k | 1 repos | ~6.5k | Automated safety check: Pass | MIT | |
| Influencer Discoverytigerless-labs/influencer-discovery | 212 | — | ~2.5k | Automated safety check: Notes | None | |
| Twitter Searchjuntoku9/claude-for-crypto-research | 106 | — | ~1k | Automated safety check: Pass | None | |
| Social Media Finder Skillbrowser-act/skills | 6.1k | 1 repos | ~1.4k | Automated safety check: Pass | MIT | |
| Audience Fit Checkunifapi-agent/agents | 589 | — | ~2.5k | Automated safety check: Pass | MIT | |
| Gingiris Kol OutreachGingiris-1031/Competitor-analysis-tool | 110 | — | ~965 | Automated safety check: Pass | None |
tigerless-labs/influencer-discovery
Find the bloggers/creators who can help promote your work, capture their contact info, and append them to the target sheet in Google Sheets.
juntoku9/claude-for-crypto-research
Search Twitter/X for crypto sentiment, influencer opinions, and community discussions.
browser-act/skills
This skill helps users automatically find social media profiles across platforms like Facebook, Twitter, Instagram, LinkedIn, etc.
unifapi-agent/agents
When the user wants to vet a specific creator's audience fit and brand-safety before working with them.
Gingiris-1031/Competitor-analysis-tool
🇺🇸 KOL Outreach & Influencer Marketing Playbook — Complete SOP from discovery to ROI tracking.
vellum-ai/vellum-assistant
Research influencers on Instagram, TikTok, and X/Twitter through your browser
gooseworks-ai/goose-skills
Scrape and search Reddit posts using Apify. An agent skill from gooseworks-ai/goose-skills.
gooseworks-ai/goose-skills
Generate or edit an image via any FAL image model (nano-banana edit, gpt-image, flux, ...), ROUTED THROUGH THE fal-proxy so it bills the Ads agent.
gooseworks-ai/goose-skills
Replace an existing video's opening with a supplied clip or free kinetic text hook while retaining and verifying every original body frame, audio, captions and ending.
gooseworks-ai/goose-skills
Scrape blog posts via RSS feeds (free, no API key) with Apify fallback for JS-heavy sites.
gooseworks-ai/goose-skills
Find leads by scraping engagers from a competitor's top LinkedIn posts.
gooseworks-ai/goose-skills
Assemble a ChatGPT chat-reveal video ad from a thread + timeline JSON — one continuous Playwright recording of a ChatGPT mobile chat (user types with the iOS keyboard up → taps send → keyboard…
Works with
Categories
Find Twitter/X influencers to promote a product or brand. An agent skill from gooseworks-ai/goose-skills. Find Twitter Influencers is an agent skill from gooseworks-ai/goose-skills. Find Twitter/X influencers to promote a product or brand.
Find Twitter Influencers fits situations like: asked to find influencers; discover Twitter accounts for partnerships; identify creators in a niche; build an influencer outreach list.
Run `npx skills add gooseworks-ai/goose-skills --skill find-twitter-influencers -a claude-code`. Or copy the skill folder (skills/social/capabilities/find-twitter-influencers in gooseworks-ai/goose-skills) into .claude/skills/find-twitter-influencers in your project. Claude Code loads it when a task matches its description.
Run `npx skills add gooseworks-ai/goose-skills --skill find-twitter-influencers -a codex`. Or copy the skill folder (skills/social/capabilities/find-twitter-influencers in gooseworks-ai/goose-skills) into .agents/skills/find-twitter-influencers in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add gooseworks-ai/goose-skills --skill find-twitter-influencers -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/find-twitter-influencers, .gemini/skills/find-twitter-influencers, .github/skills/find-twitter-influencers and .opencode/skills/find-twitter-influencers in your project.
Going by SKILL.md and its folder, Find Twitter Influencers needs the command-line tools its instructions call (curl, python3 and npx) and credentials named GOOSEWORKS_API_KEY. Our summary lists: Python 3; Node.js; A credential in GOOSEWORKS_API_KEY.
SKILL.md names 3 domains. In commands or code: x.com, linkedin.com and api.gooseworks.ai; the agent is likely to contact these when it follows the instructions. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Find Twitter Influencers is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 6.5k tokens (SKILL.md is roughly 26k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Find Twitter Influencers: Influencer Discovery (tigerless-labs/influencer-discovery, 212 stars), Twitter Search (juntoku9/claude-for-crypto-research, 106 stars), Social Media Finder Skill (browser-act/skills, 6.1k stars) and Audience Fit Check (unifapi-agent/agents, 589 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
gooseworks-ai (a GitHub organization) maintains it in gooseworks-ai/goose-skills, which has 1,240 GitHub stars. The repository holds 273 skills in this directory. The repository was last updated on October 8, 2026.
Source: gooseworks-ai/goose-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.