🔍

Influencer Research

Browsing

Research influencers on Instagram, TikTok, and X/Twitter through your browser

Install
assistant skills install influencer

compatibility:Designed for Vellum personal assistants
metadata.vellum.includes:["vellum-browser-use"]

Use browser automation for collection and host_bash helper scripts for deterministic parsing, scoring, and comparison. All browser operations are executed through the assistant browser CLI, invoked via host_bash.

Required tools

  • host_bash for assistant browser CLI commands and helper scripts in scripts/.

Hard constraints

  • Do not call assistant browser chrome relay.
  • Do not use legacy relay-backed influencer scripts.

Step graph (state machine)

Step 1: Route intent

Use deterministic routing when intent is unclear:

bun {baseDir}/scripts/influencer-intent.ts --request "<latest user request>" --has-candidates <true|false> --has-shortlist <true|false>

Use returned step to route to discover, enrich_profile, or compare_shortlist.

Step 2: Discover candidates (discover)

Instagram

  1. Navigate to keyword search/post surfaces.
  2. Snapshot + extract:
assistant browser --session influencer --json snapshot
assistant browser --session influencer --json extract --include-links
  1. Parse candidates:
bun {baseDir}/scripts/influencer-parse-candidates.ts --platform instagram --input-json '<json payload with extracted text/links>'

TikTok

  1. Navigate to user search page for query.
  2. Use assistant browser --session influencer scroll + assistant browser --session influencer wait-for to load additional candidates.
  3. Extract and parse:
bun {baseDir}/scripts/influencer-parse-candidates.ts --platform tiktok --input-json '<json payload with extracted text>'

X/Twitter

  1. Navigate to people search view (f=user).
  2. Snapshot + extract:
assistant browser --session influencer --json snapshot
assistant browser --session influencer --json extract --include-links
  1. Parse:
bun {baseDir}/scripts/influencer-parse-candidates.ts --platform twitter --input-json '<json payload with extracted text/links>'

Step 3: Enrich profiles (enrich_profile)

For each selected candidate profile:

  1. Navigate to profile URL.
  2. Snapshot + extract profile metadata (bio, follower counts, verification indicators).
  3. Score with criteria:
bun {baseDir}/scripts/influencer-score.ts --query "<user query>" --min-followers <n> --max-followers <n> --verified-only <true|false> --input-json '<json payload with profiles>'
  1. If themes are missing, enrich using:
bun {baseDir}/scripts/influencer-theme-extract.ts --bio "<bio>" --query "<user query>"

Step 4: Build shortlist (compare_shortlist)

Generate deterministic comparison output:

bun {baseDir}/scripts/influencer-compare.ts --limit <n> --input-json '<json payload with profiles and criteria>'

Present results grouped by platform with:

  • Username / display name
  • Followers (normalized)
  • Verification status
  • Theme highlights
  • Profile URL

Retry and fallback policy

  • Retry budget: 3 attempts for each state-changing browser step.
  • After any navigation or click that changes DOM, run fresh assistant browser --session influencer --json snapshot.
  • If blocked by sign-in wall or challenge after retries, ask user to complete that step and resume from latest successful state.

Platform notes

  • Instagram search often surfaces posts/reels before profiles; use author-handle pivot logic.
  • TikTok search can require scroll cycles to load profile cards.
  • X/Twitter should use people-search surfaces to avoid irrelevant mixed-content feeds.

Example helper payload shape

{
  "phase": "discover",
  "context": { "platform": "instagram" },
  "extracted": {
    "text": "...",
    "links": ["https://www.instagram.com/example/"]
  },
  "userIntent": "find fitness creators"
}
CreatorVellum
LicenseMIT
Updated1 month ago
SecurityVerified
View on GitHub

The Personal AI you were promised

GET STARTED