CreatorGraph is an automated brand-to-creator deal generation layer designed to integrate directly into creator ecosystems like Stan.
It transforms brand onboarding, campaign creation, creator matching, and outreach into a structured, intelligence-driven revenue pipeline.
Most creator platforms focus on storefronts, link-in-bio monetization, and inbound discovery.
CreatorGraph focuses on the missing side:
Turning creator ecosystems into structured, automated partnership engines.
Instead of:
- Creators manually searching for deals
- Brands manually browsing creators
- Cold outbound guessing
CreatorGraph:
- Structures brand intent
- Structures creator signals
- Computes compatibility deterministically
- Orchestrates deal flow automatically
The result is reduced friction, higher match quality, and scalable revenue generation.
CreatorGraph is a platform layer embedded within the creator ecosystem.
- Brand pastes website URL
- AI crawl + analysis builds structured brand dossier
- High-fit creators are ranked
- Outreach is generated with campaign context
Creators receive ranked inbound opportunities rather than searching manually.
Brand URL
↓
Playwright Crawl Agent
↓
Structured Brand Dossier
↓
Creator Discovery + Identity Resolution
↓
Creator Enrichment Layers
↓
Compatibility Scoring Engine
↓
Ranked Matches
↓
Outreach + Deal Lifecycle Tracking
- Modular scoring in
lib/match/* - Confidence-aware weighting + explainable reasons
- Deterministic fixture checks via
npm run match:fixtures
raw_accountstable inlib/schema.sqlPOST /api/creator-discovery/crawl(Playwright Google SERP crawler preview + optional persist)- Crawl endpoint supports:
engine=auto|google|duckduckgo|serpapiautoprefersserpapiwhenSERP_API_KEYis setbrowser=playwright|patchright(CREATOR_DISCOVERY_BROWSERenv default)platforms=["instagram"]style platform targetingmaxResultsPerPlatform+ optionalplatformLimitsfor per-platform capsqueryDelayMsMin/queryDelayMsMaxfor slow-run scheduling- one-shot persist + extraction when
persist=true(setextractAfterPersist=true) - extraction controls:
extractorVersion,extractLimit,extractPreviewLimit
POST /api/creator-discoveryPOST /api/creator-discovery/extractdryRun=trueby default for parser iteration- platform/run-scoped extraction snapshots into
raw_account_extractions - sample mode: pass
samples[]to extract directly from raw snippets without DB writes
- Ingest + normalize SERP rows:
platformhandlenormalized_profile_urlstan_slugfollower_count_estimate
- Run-level report:
- total
- by-platform distribution
stanSlugCoveragePct
creator_identitiescreator_identity_accountsidentity_merge_candidatesPOST /api/creator-identity/resolve- Deterministic merge priority:
stan_slug- personal domain
- explicit cross-link evidence
- otherwise candidate queue
creator_stan_profilesPOST /api/creator-stan/enrichPOST /api/creator-stan/enrich-agent- Playwright-based Stan page crawl for richer JS-rendered data
- supports
discoveryRunIdtargeting after a specific crawl run - extracts profile name/handle, header image, structured offer cards, pricing, and social links
- Extracted signals:
- offers
- pricing points
- product types
- outbound socials
- CTA style
- extraction confidence
Known limitation:
- baseline HTML extraction can be sparse for JS-heavy Stan pages.
POST /api/creator-import- Imports resolved + enriched creator identities into canonical
creators - Uses
creator_identity_idtraceability andsource='stan_pipeline' - Import now runs deterministic compatibility signal extraction:
niche+niche_confidencetop_topics+audience_typesproducts_soldselling_style+buying_intent_scoreprimary_platform- signal evidence + confidence in
creators.metrics.compatibility_signals
- Keeps synthetic seed data isolated in
synthetic_creators POST /api/creator-social/enrich- Persists per-platform social performance priors in
creator_social_profiles - Syncs
creators.metrics.platform_metrics+estimated_engagementwith confidence metadata
When POST /api/analyze-brand cannot parse enough content via a normal fetch, it now escalates through agent fallbacks:
- direct site fetch
- Playwright site crawlability agent (same-domain content extraction)
- Playwright Google-dork backup agent (
site:<domain> "about"and related queries) - LLM-guided web search backup agent (query generation + snippet bundling)
- model-knowledge fallback profile when external extraction is blocked
SERP Query Results
↓
raw_accounts (Stage 2)
↓
creator_identities + creator_identity_accounts (Stage 3)
↓
creator_stan_profiles (Stage 4)
↓
creator_social_profiles (Stage 5)
↓
creators (canonical import, Stage 5)
↓
compatibility scoring (Stage 1)
Each brand-creator pair receives a normalized score between 0 and 1.
Current module family:
nicheAffinitytopicSimilarityplatformAlignmentengagementFitaudienceFit
Scoring is deterministic and explainable with module-level reasons and confidence.
Canonical niche taxonomy and planned expansion list live in:
lib/match/nicheCatalog.ts
It includes:
- active canonical niches
- legacy niche labels (for alias/normalization support)
- planned niches approved for future backend rollout
POST /api/preview-urlPOST /api/analyze-brandPOST /api/crawl-brandPOST /api/match-creatorsPOST /api/generate-outreachPOST /api/creator-discovery/crawlPOST /api/creator-discoveryPOST /api/creator-discovery/extractGET /api/creator-discovery?discoveryRunId=...POST /api/creator-identity/resolvePOST /api/creator-stan/enrichPOST /api/creator-stan/enrich-agentPOST /api/creator-social/enrichPOST /api/creator-import
brandsbrand_pagescreatorssynthetic_creatorsmatchesraw_accountsraw_account_extractionscreator_identitiescreator_identity_accountsidentity_merge_candidatescreator_stan_profilescreator_social_profiles
- Node.js
- Postgres
.env.localwith:DATABASE_URLGROQ_API_KEYGROQ_MODEL(optional)NEXT_PUBLIC_SITE_URLSERP_API_KEY(optional; enablesengine=serpapiand auto-prefers SerpAPI)CREATOR_DISCOVERY_ENGINE(optional:auto|google|duckduckgo|serpapi)CREATOR_DISCOVERY_BROWSER(optional:playwrightorpatchright)
npm install
npm run devUseful:
npm run seed
npm run move:synthetic-creators
npm run seed:real
npm run generate-creators
npm run match:fixtures- Stage 6: High-fidelity social metrics sampling (recent-post crawl)
- Stage 7: Creator ontology classification
- Stage 8: Compatibility engine v2 on normalized feature store
- Stage 9: Intelligence dashboard and analytics views
- Measurable over inferred
- Deterministic first, ML later
- Explainability always
- Automation by default
- Shared ontology over prompt hacks