Tallahassee, FL · Marketing analytics → Enterprise AI

I used to report on systems.
Now I build them.

Five years in marketing analytics, from Tableau dashboards and A/B tests to production AI classification at Servpro. Along the way I shipped two client websites that bring in real leads and two full-stack AI products: one tracks which sources AI engines cite, the other tests stock theses against evidence.

~30,000call transcripts classified with AI + human validation
+43%lead-classification precision from signals I designed
0 → 45–60qualified website leads a month for a therapy practice
1,500+automated tests across my two AI apps

The journey

Each role widened what I could build

Choose a role to see what changed. The bars show where each role's work was concentrated.

    Where the work concentrated

    Current role · Servpro Industries · 2026–

    Enterprise AI with a human in the loop

    At Servpro, inbound calls run through Invoca, the call-tracking platform, and AI labels each one. Those labels decide lead quality, billing disputes and paid-media pricing. My job is to make them accurate enough for the business to rely on.

    Ingest~30k

    Transcripts pulled in bulk from Invoca's API with Python pipelines I built, so every AI label can be checked

    Signals + rules50 rules

    Prompts and decision rules, refined over rounds of validation, that tell the AI how to judge each call

    Validateκ 0.9

    The agreement bar between the AI's labels and blind human reviewers (Cohen's κ, where 1.0 is a perfect match), plus checks that catch hallucinated labels

    Outcome+43%

    Lead-classification precision

    Detecting AI callersI built a way to flag calls placed by AI agents where the platform had no signal for them, and measured how much friction callers hit at handoff.
    Rules before modelsThe 50-rule framework settles disagreements between reviewers and doubles as training guidance and the basis for billing disputes.
    Validation that compoundsEach round of validated labels becomes the baseline for the next round of prompts, so accuracy improves round over round.
    From accuracy to impactEach round is documented, and its error rates are translated into business impact, so leadership sees what inaccuracy costs, from false positives and false negatives alike, not just how often it happens.

    Selected work

    Four things I built, each one working

    Every preview below is interactive. The two websites are the real sites, and you can click through every page. CitationSuite shows its real Overview page with demo data. Each preview also has a quick interactive demo.

    Live · generating leadsClient website

    Bay Area Behavioral Services

    A redesign for an outpatient therapy and psychiatry practice in Tampa Bay with 40+ clinicians. It's built around one goal: getting the right patient to the right therapist, then to the phone.

    0 → 45–60qualified website leads a month, up from none
    40+clinicians in a filterable directory
    2locations, click-to-call on every page
    • A data-driven therapist directory patients can filter by location, age group and specialty, so they choose a clinician before they call.
    • Phone numbers, addresses and navigation live in one file, so staff can update the whole site without a developer.
    • Mobile-first layout. Accreditation and insurance details sit next to the call to action to earn trust quickly.
    ClaudeHTML/CSS/JSNetlifyLocal SEOEMR-informed targeting
    bayareabehavioral.com/teamRecreation
    Brandon · TampaNew appointments within one week
    Call to schedule

    Therapy and psychiatry for children, teens and adults

    Serving families across eleven counties since 2000. We accept Medicaid and most commercial plans.

    COA AccreditedGeek Therapy CertifiedSelf-pay $100/hr
    Find a therapist

    Clinician names are withheld in this demo.

    LiveLead gen · SEO/AEO

    PeptideForward

    An education and lead-generation site that matches people with licensed telehealth prescribers for peptide and GLP-1 therapies. It's a regulated category, so I planned the content around compliance: no dosing and no "buy" keywords. It targets the legal, comparison and safety questions people actually ask search engines and AI assistants.

    59pages, hand-built
    79FAQ Q&A pairs in schema.org markup
    20therapy guides with MedicalWebPage schema
    • Topic clusters feed a 7-step eligibility quiz, and leads go straight to the CRM by webhook.
    • Structured data written so AI answer engines can cite the site, not only rank it (AEO).
    • A 2026 regulatory tracker that keeps the site current as FDA categories change.
    ClaudeStatic HTML/CSS/JSJSON-LDZapier → CRMPlausibleClarity
    Visit peptideforward.com ↗
    peptideforward.comRecreation

    Compare peptide therapies. Get matched with a licensed provider.

    Plain-language guides to 20+ peptides and GLP-1s, with a clear view of where each one stands with the FDA.

    20+ peptides & GLP-1s100% licensed prescribers~5 min eligibility check
    Live · invite-onlyAI product · SaaS

    CitationSuite

    When someone asks ChatGPT a question, which websites does it cite? CitationSuite answers that for agencies. It writes realistic prompts for a topic, runs them against six AI engines on a schedule, and records every URL each engine cites or fetches. Agencies use that to decide which pages to build and where to buy placement.

    6AI engines tracked
    21database tables, multi-tenant
    6 daysfrom first commit to production
    • Cited versus merely fetched: every URL is recorded as either cited in the answer or retrieved but not used, so agencies see which pages the engines read and pass over. That gap is where a better page wins the citation.
    • Spend is controlled before it happens: each batch is estimated up front, credits are reserved and then charged from an append-only ledger, and daily caps pause runs until midnight instead of failing them. Scheduled sweeps go through the OpenAI and Anthropic batch APIs at half price.
    • One contract, six engines: each engine has its own parser over the raw provider response, unit-tested against saved real responses, so a provider changing its format breaks a test, not the dashboard. A mock mode runs the whole UI with no API cost.
    • Built for agencies and their clients: workspaces with owner, admin and view-only roles, Stripe credits, a weekly email digest, CSV feeds for Sheets and Looker, and read-only report links clients can open without an account.
    ClaudeNext.js 15TypeScriptPostgres + Drizzlepg-boss workerOpenAI · Anthropic · Gemini · PerplexityStripeRailway
    citationsuite.app/topics/water-damageSample data
    —your share of answer
    —URLs cited
    prompt status—
    citedused in the answerfetchedfetched but not citedyourbrand.comyour client
    Live · invite-onlyAI research tool

    ThesisLab

    A research desk for a private trading group that checks a stock thesis against evidence. You state a view on a ticker. ThesisLab gathers prices, news and filings, runs an event study on how the stock reacted to similar catalysts, and has Claude argue both sides with cited evidence. It gives a probability the thesis pays, and when the horizon ends it scores that call against what actually happened.

    ~1,400automated tests
    49database tables
    21written audit reports
    • Code gathers the evidence, the model judges it: every verdict starts from a data bundle built by code (prices, key levels, news, earnings, an event study), and each claim cites a row the reader can check.
    • Measured history, not recalled anecdotes: for dated events like a product launch, it measures how the stock traded around comparable past events and gives the model those numbers. The model may never quote a past move from memory.
    • Verdicts are scored, not just produced: each states a probability the thesis pays, and a track record shows hit rate, Brier score and whether a stated 70% comes true about 70% of the time.
    • Built to run cheaply: about 40¢ per thesis and 6–15¢ per follow-up, with per-member budgets, prompt caching, a cheaper model for research, and user text isolated to block prompt injection.
    ClaudeNext.js 15React 19Postgres 17Claude Opus + Sonnet · tool useBetter AuthScheduled workerRailway
    thesislab / thesis / verdictIllustrative · not advice
    Verdict · probability it pays

    Supporting
      Contradicting
        Past catalyst reactions · excess move in σ

        Toolkit

        Analyst habits, builder's tools

        Analytics

        SQL (BigQuery, AWS), GA4, Tableau, Power BI, Looker, advanced Excel, statistical testing, audience segmentation, weighted scoring

        AI systems

        Claude, OpenAI, Gemini and Perplexity APIs · batch APIs · structured outputs · human-in-the-loop validation · evals and inter-rater agreement · cost guardrails

        Engineering

        Python pipelines · TypeScript, Next.js, React · Postgres and Drizzle · job queues and workers · Vitest · Railway and Netlify deploys

        Marketing

        SEO and AEO, JSON-LD schema, CRO and A/B testing, HubSpot, paid social (Meta, Google, X), copywriting, Adobe CC

        2021B.S. Business Systems & AnalyticsStetson University · DeLand, FL

        Contact

        Let's talk about building AI that holds up in production.

        Tallahassee, FL · The two websites are portfolio copies of the live sites with their forms turned off. The apps use demo or sample data.