Skip to content

Agent Experience

The core workflow for deal agents — claiming brands, reviewing matches, pitching creators, and managing the deal pipeline.

Home Dashboard (/)

The homepage shows three agent cards (Annie, Charlie, Henry), each displaying:

  • Brands — number of assigned brands
  • Matches — total creator matches across those brands
  • To Pitch / Pitched / Won — counts broken down by pipeline status
  • Top Match — highest-scoring creator+brand pair currently assigned
  • Pipeline Value — sum of deal values across all matches

Below the agent cards, a quick-links grid provides access to global tools: All Matches, Cross-Sell, Reverse Match, Contract Lifecycle, Category Gaps, Blind Spots, and Available Brands.


Agent Dashboard (/agent/[name])

The main working view for each agent. Loads via GET /api/agent-data/[name] which proxies the ca-data /matches endpoint filtered by agent.

Priority Pitches Tab

A curated list of top unworked matches — high-score creators the agent hasn't pitched yet. Each card shows:

  • Creator name (links to /creator/[slug])
  • Brand name (links to /brand/[slug])
  • Match score with color-coded badge (green 90+, lime 80–89, gold 70–79, orange 60–69, gray below)
  • Creator's average rate and avg views
  • Pitch Narrative — a one-paragraph pre-written pitch angle specific to this creator+brand pair
  • 👍 Pitch / 👎 Pass buttons — mark the match as reached out or not a fit. Status is written back to ca-data (PATCH /matches/:id).
  • After clicking Pitch, an AI-generated draft pitch email is shown (via POST /api/generate-pitch). Agents can accept or provide feedback to regenerate.

Pipeline Kanban Tab

All assigned matches organized into a Kanban board by status:

ColumnStatus ValueDescription
To Pitchnot_pitchedNot yet contacted
Reached Outreached_outInitial pitch sent
In Negotiationin_negotiationActive back-and-forth
WonwonDeal closed
Not a Fitnot_a_fitDeclined or deprioritized

Each card shows creator name, brand, score, and rate. Clicking a card opens a detail view. Status can be updated inline.

Creators Tab

A grid of the agent's roster creators with headshots (served from rosters.creatorsagency.co) and basic stats. Links to /creator/[slug] for each creator.

Available Brands Tab

Shows unassigned brands that could be claimed by the agent. Pulls from GET /api/brand-intel-available. Links to /brands/available for the full filtered list.


Brand Detail Page (/brand/[slug])

The most information-dense page in the app. Loads brand intelligence, match list, Fathom calls, email history, and non-roster creator data.

Overview Stats

Three cards at the top:

  • Avg Rate — average deal rate from Monday deliverables (only won/active, not cancelled)
  • Avg CPM — weighted average CPM across matched creators
  • Past Deals — total deal count from Monday

Match List

All creators matched to this brand, sortable by score, rate, CPM, or views. Each row shows:

  • Creator name + headshot
  • Match score badge
  • Rate / CPM / avg views
  • Niche tags
  • Platform
  • Pitch Narrative — expandable
  • Pitch / Pass / Roster buttons
  • Conflict warning badge if a creator has an active sponsor conflict (conflict_database)

Creators They've Worked With

Brands we've previously pitched/won deals with. Shows:

  • Creator name + deal count (from Monday deliverables)
  • Average view count
  • Integration count (deals with that creator)
  • Pitch narrative if available

Brand Intelligence Panel

From the brand_intel record:

  • Ideal Creator Archetype — description of the type of creator this brand targets (can be a plain string or a {description, requirements} object)
  • Verticals — content categories this brand buys
  • Content Themes — thematic patterns from their sponsor history
  • Platforms — where they run campaigns
  • Agencies — other agencies they work with (purple badge)

Latest Email Thread

The most recent outbound email thread with this brand, sourced from Close CRM via GET /api/brand-emails/[brand]. Shows:

  • Agent who sent it
  • Subject + date
  • Expandable AI summary (gpt-4o-mini)

Fathom Calls

Past sales calls with the brand synced from Fathom. Shows call title, date, agent, duration, and an expandable summary. Up to the last 5 calls.

Non-Roster Creators

Creators who are actively being paid by this brand but are not on the CA roster. Sourced from GET /api/non-roster/[brand] — shows channel name, platform, subscriber count, and estimated avg views. Useful for outreach.

🔥 Active Badge

Brands with YouTube sponsor activity in the last 30 days show a 🔥 Active badge on the overview card. Data comes from the brand activity sync (last_activity_date field in brand_intel).


Creator Detail Page (/creator/[slug])

Mirrors the brand page, flipped to creator-centric. Shows:

  • Creator's stats (subscribers, avg views, rate, CPM)
  • Their top brand matches with scores
  • Past deal history
  • Headshot from Airtable
  • Link to their media kit at rosters.creatorsagency.co

Available Brands (/brands/available)

A ranked list of unclaimed brands. Filterable by:

  • Last Contacted — 30 days, 90 days, 6 months, 1 year, Never Contacted
  • Actively Spending — brands with last_activity_date within the past 60 days
  • Min Match Score — filter to brands where top match score exceeds a threshold

Each row shows brand name, last activity date, top match creator + score, and a "View" button to the brand detail page.

Brand Detail (Available) (/brands/available/[slug])

Optimized claim view. Shows match quality, Close CRM context (last contacted agent, subject, date, AI summary), and a Claim button (POST /api/claim) to assign the brand to the viewing agent.


Global Tools

All Matches (/matches)

Browse all ~100K+ matches across every brand and agent. Filterable by agent, brand, creator, status, and min score. Loaded in pages of 500 via ca-data.

Cross-Sell (/cross-sell)

241 recommendations where a creator who has an existing deal with Brand A also has a high match score with Brand B. Useful for agents to expand existing brand relationships.

Reverse Match (/reverse-match)

121 creators each with a list of their top target brands. Creator-first view — useful when an agent is starting from a creator they want to place.

Contract Lifecycle (/contract-lifecycle)

1,473 Copper deals organized into lifecycle buckets: Active, Renewed, Lapsed (6–12 months), Lapsed (12+ months), and Lost. Helps agents find renewals and re-engagement opportunities.

Category Gaps (/category-gaps)

373 brands in categories where CA has strong creators, but the brand is not a current CA client. Sorted by sponsor activity volume. Surface area for new business.

Agent Blind Spots (/agent-blind-spots)

150 brands with 15+ creator channels they sponsor but no CA agent is actively pursuing. High-opportunity, low-coverage brands.


Pitch Generation

When an agent clicks the Pitch button on any match row, a draft pitch email is generated via POST /api/generate-pitch. The prompt uses:

  • Creator name, stats (views, subscribers, rate, CPM)
  • Brand name and intel (verticals, ideal creator archetype)
  • Pitch narrative from the match record

The agent can regenerate with feedback notes. After using a pitch, the match status is updated to reached_out.