Case Studies

Influencer Marketing / Creator Economy / Marketing Technology

Location:
Multi-platform / Global
Type:
Custom Software — Two-Sided Creator/Brand Marketplace with AI-Assisted Discovery (React web app, Laravel API, AI-driven search and sentiment analysis)

6

supported platforms

8

content categories

20

frontend routes

15

REST API endpoints

17

database migrations

Overview

Brands running influencer campaigns and creators looking to be booked both face a fragmented process: spreadsheets, cold DMs, outdated media kits, and no shared source of truth on pricing or performance. The Creator Match was built as a marketplace where brands can search, filter, and reach out to creators directly, while creators manage one profile containing their platforms, content categories, and per-format rates, visible to every brand looking for a fit.

The challenge

The client needed one consistent, trustworthy marketplace where a brand could evaluate a creator's fit — platform, category, pricing, and audience signal — in one place, instead of four different screens that looked like four different, half-finished products.

  • Brands had no single place to compare creators across Instagram, TikTok, and YouTube by category, platform, and price
  • Creator profiles looked unfinished — missing photos rendered as a broken image icon, and different screens used four separate, clashing ad-hoc color schemes
  • Manually screening creators for fit and tone took too long with no AI-assisted shortlisting available
  • Follower counts and pricing go stale fast; a static directory does not reflect what is happening on a creator's account right now
  • Audience sentiment on a creator's recent content was invisible, even though it is a strong signal of brand fit
  • The footer and legal pages were an unedited template pointing at an unrelated company's real GitHub, X, and LinkedIn accounts and calling the product “Sitemark”
  • Buttons, inputs, and cover photos broke visually in dark mode because colors were hardcoded instead of theme-driven

Objectives

  • Give brands one searchable, filterable directory of creators by platform and content category
  • Let creators manage a single profile with their platforms, categories, and per-format rates (reel, story, live)
  • Provide an AI Bot that turns a short guided conversation into a matched creator shortlist
  • Provide Live AI Search that pulls fresh, ranked posts and stats for a platform and category on demand
  • Surface engagement and sentiment signals per platform so brands can judge audience fit before reaching out
  • Present every card and profile consistently and gracefully, with or without a real photo, in light and dark mode
  • Replace remaining placeholder/template content (footer, legal pages) with real, on-brand pages

Success criteria

  • A brand can find, filter, and open a creator profile with pricing and platform data in a few clicks
  • Creator cards and profile pages render cleanly even when a profile photo is missing
  • Sentiment and rating are shown wherever the underlying data actually exists, and hidden — not shown as “N/A” — when it does not
  • Every screen (auth, dashboard, search, chat, live search, profile forms and pages, footer, and legal) shares one consistent visual language and theme
  • The full automated test suite continues to pass after every visual change

Our solution

We rebuilt the existing React and Laravel marketplace around one consistent design system and added the AI-assisted discovery experience — the AI Bot and Live AI Search — that make the marketplace useful as a discovery platform. A single brand palette drives every button, input, and heading through the MUI theme rather than dozens of hardcoded hex values; one reusable card pattern is shared across the dashboard, search results, AI Bot, and Live Search; and the Laravel API's sentiment and rating pipeline was audited to determine why real data was not reaching the screen.

Unified Brand Theme

One pink-to-purple gradient and palette is defined once in the MUI theme and consumed by every button, chip, input, and heading, replacing scattered hardcoded hex colors that broke dark mode.

Consistent Creator Card

A single card component — cover photo or gradient fallback, avatar with initials fallback, rating, sentiment, badges, and starting price — is reused across the dashboard, Search, AI Bot results, and Live AI Search.

AI Bot

A short guided chat asks what the brand is looking for, then platform, then category, calls the same search API, and returns a live, styled results grid.

Live AI Search

Ranked, near-real-time post results are returned per platform and category, with view, like, and comment counts, engagement rate, and per-post sentiment.

Data-Grounded Sentiment & Rating

The Laravel API was audited and confirmed to already return sentiment_label and rating through every endpoint. The gap was in the interface, while a platform-wide sentiment outage was traced to an expired OpenAI credential surfaced through a client-library edge case.

Consistent Profile Experience

Brand and creator sign-up forms, edit forms, and read-only profile pages share one section-card component, gradient cover/avatar header, and theme colors.

Real Footer & Legal Pages

Unedited template boilerplate, unrelated social links, and the placeholder brand “Sitemark” were replaced with nine real, on-brand pages: Features, Highlights, FAQs, About, Careers, Press, Terms, Privacy, and Contact.

Key capabilities

  • Six supported platforms: Instagram, YouTube, TikTok, Twitter/X, Facebook, and Reddit
  • Eight content categories for filtering: Music, Fashion, Gaming, Healthcare, Education, Travel, Comedy, and Tech
  • Per-format creator pricing — reel, story, and live rates set by the creator
  • “Top Creator” and “Responds Fast” badges surfaced on every card
  • Light and dark mode across the entire application
  • Forgot/change/reset password flows and role-based sign-up for brand versus creator accounts

Architecture & tech stack

The platform is a decoupled application: a React single-page app (Create React App, MUI, React Router) consuming a Laravel REST API. The API owns authentication, brand and creator profile data, search, and an AI-assisted layer that syncs per-platform stats and sentiment from external sources.

  • Frontend: React (Create React App), MUI (Material UI) with a shared custom theme, React Router, Axios-based data hooks, session-based auth context
  • Backend: Laravel (PHP), Eloquent models for users, brands, creators, and platforms, with Artisan console commands for maintenance tasks
  • AI & Data Enrichment: an Apify-backed scraping service for Instagram/TikTok stats, the official YouTube Data API for YouTube stats, and OpenAI GPT-4o-mini for per-platform sentiment classification and AI Bot conversational responses
  • Scheduling: a daily scheduled job resyncs stats and sentiment for every creator platform, alongside a manual Artisan command for on-demand or targeted resyncs
  • Deployment: the React build is served via pm2 and a static file server; the Laravel API runs on its own host
FrontendReact (Create React App), MUI (Material UI), React Router, Axios
BackendLaravel, PHP, Eloquent ORM
DatabaseSQLite (development), Laravel migrations
AI & NLPOpenAI GPT-4o-mini — sentiment classification and the AI Bot's conversational responses
Third-Party DataYouTube Data API; Apify-backed scraping service for Instagram and TikTok
SchedulingLaravel task scheduler, plus a custom Artisan command for manual/targeted resyncs
Deploymentpm2 + serve (frontend static build), Laravel (backend API)
TestingJest and React Testing Library (via react-scripts test)

Key features

Consistent Creator Cards

One card component — cover photo or brand-gradient fallback, avatar with an initials fallback, rating, sentiment chip, badges, and starting price — is reused everywhere a creator is listed: the dashboard, Search, AI Bot results, and Live AI Search. A missing photo no longer renders a broken image icon.

AI Bot

A short guided chat asks what the brand is looking for, then platform, then category, and returns a live, styled grid of matching creators using the same search API and the same card component as the rest of the application.

Live AI Search

Ranked post results for a chosen platform and category are pulled on demand rather than from a static directory, with view, like, and comment counts, engagement rate, and a sentiment read on each post.

Brand & Creator Profiles

Brands manage industry, budget, target platforms, and social links; creators manage platforms, content categories, bio, and per-format rates. Both share the same gradient cover/avatar header and section-card layout in edit and read-only views.

Sentiment & Rating Signals

Where the underlying data exists, a platform's audience sentiment (positive / neutral / negative) and a creator's rating appear directly on the card and profile — and are hidden entirely, rather than shown as “N/A”, when the data does not yet exist.

Real Content Pages

Nine pages — Features, Highlights, FAQs, About, Careers, Press, Terms, Privacy, and Contact — replace previously unedited template boilerplate, each wired into a real route and linked from the footer.

Results

The redesign replaced four mismatched visual styles and a template-default footer with one consistent, theme-driven product, and gave the AI-assisted discovery features a shared visual home.

AreaBeforeAfterImprovement
Visual ConsistencyFour different, hardcoded color schemes across the app, several breaking in dark modeOne theme-driven brand palette used by every screen, verified in light and dark modeUnified across the application
Creator CardsA broken image icon when no photo was set, and an empty gradient block with nothing in itThe cover fills with the creator's real photo when available, with a graceful initials fallback and hidden — not “N/A” — rating/sentiment when data is absentGraceful fallback and consistent data display
AI-Assisted DiscoveryManual filtering onlyAI Bot conversational shortlist, plus Live AI Search with ranked, on-demand resultsAdded AI-assisted discovery paths
Sentiment & RatingPresent in the API, invisible on screenDisplayed on cards and profile pages wherever real data existsSurfaced existing data
Footer & Legal PagesUnedited template linking to an unrelated company's real accountsNine real, on-brand pages wired into the appReplaced template content
Data ReliabilitySentiment silently defaulting to “unknown” with no visible causeRoot cause identified and reported — an invalid OpenAI credential — with a scoped, cost-aware backfill pathVerified root cause and remediation path

Faster creator discovery

Brands can filter, compare, and open a creator profile with pricing, platform, and — where available — sentiment data in a few clicks.

More polished creator presentation

Creators present a polished profile regardless of whether they have uploaded a photo yet.

One consistent product experience

The whole product uses one visual language in both light and dark mode.

AI-assisted discovery beyond static search

Brands have a guided AI Bot conversation and on-demand live post ranking in addition to static filtering.

Verified data reliability

The team has a clear, verified answer for why some sentiment data was missing instead of an unexplained gap.

Challenges & how we solved them

  • Four separate, mismatched color schemes across different screens, some hardcoded as hex values that also broke dark mode
  • A third, independently-built duplicate creator card in the AI Bot results panel, with real bugs including an oversized card and a dead image fallback path
  • A footer left over from the underlying UI template, quietly linking out to a different company's real social accounts
  • A missing-image case with no visual treatment at all, rendering a broken image icon
  • A reported missing-sentiment-data issue that initially looked like a missing backend feature, but was actually already-returned data plus a silently-failing external AI call

For styling drift, every color decision was moved into one MUI theme (palette plus button and input customizations), so every screen inherited the same brand gradient automatically, including pages not touched directly. For the duplicate creator card, the second implementation was removed and the shared card component was reused everywhere a creator needs to be shown. For the footer, placeholder links and copy were replaced with real pages backed by actual routes. For missing images, cards and profile headers now fall back to a solid brand-gradient cover and an avatar showing the creator's initial rather than a broken image icon. For the sentiment gap, the exact code path was traced through the Laravel service, an Artisan command, and finally a raw HTTP call to the real OpenAI endpoint until the actual cause — an invalid API key returning a text/plain error that a client library mishandled — was confirmed, and the true cost and scope of a fix were reported before running anything against a real, billed API.

Security & compliance

  • Session-based authentication with role separation between brand and creator accounts
  • Client-side validation of uploaded profile and cover images before submission
  • Sentiment and engagement data sourced from official or licensed APIs (the YouTube Data API) and a scraping service for other platforms, never fabricated or estimated on the client
  • Backfill and resync operations scoped deliberately by platform and specific record rather than blanket re-processing, to control real external API cost
  • No destructive action taken against production data; any resync was scoped to exactly the affected rows and confirmed before executing
  • The platform assists brands and creators in finding each other; it does not itself verify creator identity, negotiate rates, or process payments — those remain a direct conversation between the two parties

Scalability & roadmap

  • A real creator-rating feature — the rating field already exists in the database; only the capture flow is missing
  • Automated visual regression testing to catch styling drift going forward the way it accumulated before this project
  • Extending sentiment and engagement display into brand/creator profile analytics, beyond individual platform cards
  • A CI-driven build and redeploy pipeline on top of the current pm2-based deployment

Why the client chose us

  • A theme-first approach to visual consistency — one palette change correctly cascades to screens never directly touched, instead of a per-page patch job
  • Willingness to investigate root cause across the full stack — frontend, backend service, and a live third-party API — rather than stopping at the first plausible explanation
  • Cost-aware handling of real, billed external services — scoping exactly which records to resync and checking with the client before spending real API budget
  • Attention to the details that make a product feel finished — graceful fallbacks for missing data, no leftover template boilerplate, and dark mode that actually works
  • Full-stack delivery across the React frontend and the Laravel API it depends on

Brands and creators on The Creator Match needed one consistent, trustworthy place to discover, evaluate, and reach out to each other — not four different visual styles bolted together with placeholder content still showing through. This project rebuilt the product around a single design system, gave the AI-assisted discovery features (AI Bot and Live AI Search) a home consistent with the rest of the app, and replaced guesswork about missing data with a verified, root-caused answer. The result is a marketplace that looks and behaves like one product, with a clear, honest account of what still needs real data behind it.

ReactCreate React AppMUI (Material UI)React RouterAxiosLaravelPHPEloquentSQLiteOpenAI GPT-4o-miniYouTube Data APIApifypm2