Building an Internal AI-Powered Customer Reference Discovery Platform

databricks · Tech · 2026 · source Agentic: yes · promotional bias: med · source-backed · extracted with prompt 0.5.6 (schema v2)

Generated from extraction.json — do not edit by hand. Every claim cites verbatim source evidence; stated means the quote directly asserts the claim, implied means it supports it indirectly.

Problem

Domain: Internal customer-reference discovery for sales and marketing

Databricks needed sales and marketing teams to find credible, relevant customer proof points across thousands of customer stories scattered through YouTube talks, databricks.com case studies, internal slides, LinkedIn articles, and Medium posts. Manual search and tribal knowledge caused overused references, missed industries or use cases, and uncertainty about whether a found story had credible outcomes.

Constraints:

Architecture

Databricks built Reffy as a full-stack agentic RAG application on the Databricks platform. Lakeflow Jobs orchestrate ETL notebooks that ingest public and internal customer-story sources into a Bronze Delta Lake table governed by Unity Catalog. AI Functions prompt Gemini 2.5 to apply a 31-point quality score, extract metadata, and tag stories as public or internal-only, producing a Silver table. A Gold table filters low-quality stories and builds a retrieval summary column, then synchronizes it to Databricks AI Search. A DSPy tool-calling agent uses hybrid keyword/semantic search, Databricks re-ranking, MLflow logging, and Model Serving/Agent Framework deployment. A React/FastAPI Databricks App uses Lakebase for chat history, logs, and identities, while AI/BI dashboards monitor usage, latency, themes, and content gaps.

Diagram confidence: explicit (topology described by the source).

flowchart LR
  Source_story_repositories["Source story repositories"] --> Lakeflow_ETL_notebooks["Lakeflow ETL notebooks"]
  Google_Apps_Scripts["Google Apps Scripts"] --> Lakeflow_ETL_notebooks
  Lakeflow_ETL_notebooks --> Bronze_Delta_table["Bronze Delta table"]
  Bronze_Delta_table --> Unity_Catalog["Unity Catalog"]
  Bronze_Delta_table --> AI_Functions_quality_scorer["AI Functions quality scorer"]
  AI_Functions_quality_scorer --> Silver_quality_table["Silver quality table"]
  Silver_quality_table --> Unity_Catalog
  Silver_quality_table --> Gold_retrieval_table["Gold retrieval table"]
  Gold_retrieval_table --> Databricks_AI_Search_index["Databricks AI Search index"]
  Databricks_AI_Search_index --> Databricks_re_ranker["Databricks re-ranker"]
  Databricks_AI_Search_index --> DSPy_customer_stories_agent["DSPy customer stories agent"]
  Databricks_re_ranker --> DSPy_customer_stories_agent
  DSPy_customer_stories_agent --> MLflow["MLflow"]
  MLflow --> Model_Serving_Agent_Framework["Model Serving Agent Framework"]
  Model_Serving_Agent_Framework --> React_FastAPI_Databricks_App["React FastAPI Databricks App"]
  Databricks_Python_SDK["Databricks Python SDK"] --> React_FastAPI_Databricks_App
  React_FastAPI_Databricks_App --> Lakebase_conversation_store["Lakebase conversation store"]
  Lakebase_conversation_store --> AI_BI_monitoring_dashboard["AI BI monitoring dashboard"]
  Databricks_Asset_Bundles_CI_CD["Databricks Asset Bundles CI CD"] --> React_FastAPI_Databricks_App
  Databricks_Asset_Bundles_CI_CD --> Model_Serving_Agent_Framework
Drag to pan · scroll or use +/− to zoom · reconstructed from the source's described component topology

Components

Component Role Interacts with
Source story repositories YouTube transcripts, LinkedIn/Medium articles, databricks.com case studies, and internal Google Slides/docs containing customer-reference content. Lakeflow ETL notebooks, Google Apps Scripts
Google Apps Scripts Consolidate text from internal Google Slides and docs into a single Google Sheet for ingestion. Source story repositories, Lakeflow ETL notebooks
Lakeflow ETL notebooks Orchestrated notebooks that collect, process, and transform story data through Bronze, Silver, and Gold layers. Source story repositories, Google Apps Scripts, Bronze Delta table, Silver quality table, Gold retrieval table
Bronze Delta table Raw customer-story table with basic metadata, governed by Unity Catalog. Lakeflow ETL notebooks, Unity Catalog
Unity Catalog Governance layer for Bronze and Silver story tables. Bronze Delta table, Silver quality table
AI Functions quality scorer Prompts Gemini 2.5 to score story quality, extract metadata, quotes, and public/internal shareability tags. Bronze Delta table, Silver quality table
Silver quality table Enriched table containing quality scores, metadata, notable quotes, and shareability tags. AI Functions quality scorer, Gold retrieval table, Unity Catalog
Gold retrieval table Filtered retrieval-ready dataset with a summary column containing essential match information. Silver quality table, Databricks AI Search index
Databricks AI Search index Hybrid keyword and semantic search index over the Gold summary column. Gold retrieval table, DSPy customer stories agent, Databricks re-ranker
Databricks re-ranker Improves retrieved customer-reference results before agent response generation. Databricks AI Search index, DSPy customer stories agent
DSPy customer stories agent Tool-calling agent that performs keyword lookup or longer-form reasoning with sources over customer references. Databricks AI Search index, Databricks re-ranker, MLflow, Model Serving Agent Framework
MLflow Logs the Reffy agent for serving and lifecycle tracking. DSPy customer stories agent, Model Serving Agent Framework
Model Serving Agent Framework Serves the logged DSPy agent on a small CPU instance because Gemini handles most model-side processing. MLflow, React FastAPI Databricks App
React FastAPI Databricks App Browser UI and Python backend for non-technical users, streaming responses from Model Serving and using the Databricks SDK. Model Serving Agent Framework, Lakebase conversation store, Databricks Python SDK
Databricks Python SDK Provides unified authentication and access to Model Serving, SQL, and workspace APIs from local and Apps environments. React FastAPI Databricks App, Databricks CLI
Lakebase conversation store Persists conversation history, logs, and user identities for fast reads/writes, QA, follow-up, and monitoring. React FastAPI Databricks App, AI BI monitoring dashboard
AI BI monitoring dashboard Displays DAU, response times, recent inputs/responses, themes, gap analysis, and static story-quality analysis. Lakebase conversation store, AI Functions quality scorer
Databricks Asset Bundles CI CD Packages Reffy code/resources and deploys them through GitHub Actions to the production Workspace. React FastAPI Databricks App, Model Serving Agent Framework

Data flow

Lakeflow Jobs run notebooks that scrape YouTube transcripts, LinkedIn/Medium articles, public databricks.com customer stories, and Google Apps Script exports from internal slides/docs into a Bronze Delta table under Unity Catalog. AI Functions call Gemini 2.5 to score stories against a 31-point rubric, extract metadata, quotes, and shareability tags, and write a Silver table. The Gold layer filters low-scoring stories and concatenates key fields into a summary column that is synchronized to an AI Search index. A DSPy agent queries the index with hybrid keyword/semantic retrieval and a re-ranker, is logged in MLflow, and is served through Model Serving. React/FastAPI surfaces the app; Lakebase stores conversations, logs, and user identities; Lakeflow plus AI Functions summarize logs into dashboard metrics and gap analysis.

4 supporting quotes
“Our pipeline is defined in a series of Databricks Notebooks orchestrated with Lakeflow Jobs.”article, stated
“we classify the text by applying a rigorous 31-point scoring system (developed by our Value team) to each story via AI Functions.”article, stated
“we sync this 'Gold' table to a Databricks AI Search index, with the summary column containing all of the essential information”article, stated
“The logs from Lakebase are processed in a separate Lakeflow Job to surface key metrics, such as Daily Active Users & average response times, in an AI/BI Dashboard.”article, stated

Why this architecture

Reffy uses a full data-engineering-plus-agent stack because the core problem is not just answer generation: stories first have to be collected, governed, scored, tagged, filtered, summarized for retrieval, indexed, searched, cited, monitored, and embedded into an app that sales and marketing can use. The hybrid keyword/LLM interaction avoids using expensive reasoning for simple lookup, while Lakebase logs and AI/BI dashboards turn usage into a feedback loop for story curation.

4 supporting quotes
“To solve this problem, we consolidate all stories into a single table, categorize them, then use a RAG-based agent to power search—all surfaced through a vibe-coded Databricks app.”article, stated
“However, data engineering still sits at the core & getting the ETL right, scoring stories for quality, and structuring data for effective retrieval proved just as critical as the agent itself.”article, stated
“if you ask a question, you'll get a carefully thought-out answer with sources, but if you just enter a few keywords, Reffy will return top results in less than two seconds.”article, stated
“We want to understand which customer stories are popular and where we might have gaps, and the logs we collect from Reffy help us do just that.”article, stated

Models used: Gemini 2.5 · DSPy tool-calling agent · Databricks AI Search · Databricks re-ranker · Databricks Model Serving Agent Framework · AI Functions

Scale

Alternatives considered (roads not taken)

Continue Slack asks, remembered folders, and manual search

Rejected because: Manual reference discovery led to good-enough choices, overused references, and missed stories.

“So people do what people do: they message the marketing team on Slack, dig through folders they half-remember, or ask around until someone surfaces something usable.”article, stated
“More often, they settle for "good enough" or give up entirely—never knowing if the perfect story was out there all along.”article, stated

Search all stories without quality scoring

Rejected because: Databricks needed to know whether stories had credible outcomes and why Databricks mattered, so low-quality stories were scored and filtered.

“we still don't have any insight into their quality. To remedy this, we classify the text by applying a rigorous 31-point scoring system”article, stated
“Judging stories like this also lets us filter out the lowest quality ones from Reffy.”article, stated

Use one interaction mode for every query

Rejected because: Reffy separates fast keyword lookup from longer-form LLM answers with reasoning and sources.

“We structure our customer stories agent to facilitate a lightning-fast pure keyword search and a longer-form LLM response with reasoning depending on the user input”article, stated

Deploy the serving endpoint on GPU infrastructure

Rejected because: Most processing happens on the model provider side, so a small CPU instance is enough and reduces infrastructure cost.

“Since most of the processing is done on the model provider's side, we can get away with deploying to a small CPU instance, saving on infrastructure costs compared to GPUs.”article, stated

Keep Reffy only as a standalone application

Rejected because: Databricks plans API and MCP access so teams can use customer intelligence inside existing workflows and tools.

“We plan to provide that connectivity through an API and MCP server, enabling teams to access customer intelligence directly within their existing workflows and tools.”article, stated

Patterns

rag-retrieval (retrieval)

Reffy builds a retrieval-ready Gold table, syncs it to AI Search, and lets a DSPy agent retrieve customer stories with hybrid keyword and semantic search plus re-ranking.

“we sync this 'Gold' table to a Databricks AI Search index, with the summary column containing all of the essential information”article, stated
“we define a tool-calling agent that can look up the most relevant customer references with hybrid keyword and semantic search.”article, stated

tool-use-orchestration (architecture)

The application orchestrates Lakeflow, Unity Catalog, AI Functions, AI Search, re-ranking, MLflow, Model Serving, React/FastAPI, Lakebase, Databricks Apps, and GitHub Actions.

“The architecture spans the full Databricks platform: Lakeflow Jobs orchestrate our ETL pipelines, Unity Catalog governs our data, AI Search powers retrieval, Model Serving hosts our agent, Lakebase handles real-time reads and writes, and Databricks Apps delivers the frontend.”article, stated

eval-driven-development (evaluation)

A 31-point rubric and Gemini 2.5 AI Function score each story for business challenge, solution, outcome credibility, and Databricks-specific value before retrieval.

“We prompt Gemini 2.5 to judge overall story quality by identifying the business challenge, the solution, the credibility of the outcome, and why Databricks was uniquely positioned to deliver value.”article, stated
“Judging stories like this also lets us filter out the lowest quality ones from Reffy.”article, stated

observability-tracing (operations)

Lakebase logs are processed into dashboards showing DAU, response times, recent inputs/responses, themes, gap analysis, and story-quality distributions.

“The logs from Lakebase are processed in a separate Lakeflow Job to surface key metrics, such as Daily Active Users & average response times, in an AI/BI Dashboard.”article, stated
“This dashboard also shows us recent inputs and responses, and we go a step further to apply another AI Function to summarize the inputs and responses into recent themes and gap analysis.”article, stated

structured-output-contract (data)

AI Functions extract structured fields such as country, industry, products, competition, quotes, and public/internal tags into the Silver table.

“The prompt also extracts key metadata like country and industry, products used, competition, and quotes—and tags stories based on whether they are publicly sharable or internal only.”article, stated
“This enriched dataset is saved to a 'Silver' table in UC.”article, stated

model-routing (interaction)

Reffy routes user intent between pure keyword retrieval for fast lookup and longer-form LLM reasoning with sources for questions.

“We structure our customer stories agent to facilitate a lightning-fast pure keyword search and a longer-form LLM response with reasoning depending on the user input”article, stated
“if you ask a question, you'll get a carefully thought-out answer with sources, but if you just enter a few keywords, Reffy will return top results in less than two seconds.”article, stated

Tradeoffs

Build a medallion data pipeline before the agent layer.

Chose Bronze/Silver/Gold story processing with scoring and retrieval summaries over pointing an agent directly at scattered source documents.

Rationale: The agent needed high-quality, filtered, metadata-rich, retrieval-optimized story records to answer well.

“The final steps of ETL include filtering out low-scoring stories and creating a new 'summary' column that concatenates essential story components together.”article, stated
“with the summary column containing all of the essential information an LLM would need to match customer stories to queries.”article, stated

Use AI Functions and Gemini 2.5 to score story quality.

Chose LLM-based quality and metadata extraction over treating every customer story as equally useful.

Rationale: The quality score lets Reffy filter weak stories and extract structured fields that improve retrieval, analytics, and shareability handling.

“We prompt Gemini 2.5 to judge overall story quality by identifying the business challenge, the solution, the credibility of the outcome, and why Databricks was uniquely positioned to deliver value.”article, stated
“The prompt also extracts key metadata like country and industry, products used, competition, and quotes—and tags stories based on whether they are publicly sharable or internal only.”article, stated

Support both keyword lookup and longer-form agent answers.

Chose dual-mode hybrid search and LLM reasoning over one answer style for every query.

Rationale: Fast keyword lookup serves simple searches in under two seconds, while question answering can spend more time producing reasoned, cited responses.

“We structure our customer stories agent to facilitate a lightning-fast pure keyword search and a longer-form LLM response with reasoning depending on the user input”article, stated
“if you ask a question, you'll get a carefully thought-out answer with sources, but if you just enter a few keywords, Reffy will return top results in less than two seconds.”article, stated

Serve on small CPU instances.

Chose CPU Model Serving endpoint over GPU infrastructure for the serving layer.

Rationale: Gemini handles most processing through the provider, so the serving layer mainly orchestrates retrieval and requests.

“Since most of the processing is done on the model provider's side, we can get away with deploying to a small CPU instance, saving on infrastructure costs compared to GPUs.”article, stated

Gotchas (what bit them)

A reference library can fail even when the perfect story exists.

Root cause: Stories were distributed across many platforms with no unified search, so users relied on Slack, half-remembered folders, and who they knew.

Resolution: Reffy consolidated sources into governed tables and made them searchable through a RAG-based agent.

“The stories live across a dozen platforms with no unified search, and when you do find something, you can't immediately tell if it's strong”article, stated
“So people do what people do: they message the marketing team on Slack, dig through folders they half-remember, or ask around until someone surfaces something usable.”article, stated

Retrieval quality depends on story quality, not just embedding similarity.

Root cause: A found story might have vague claims or weak outcomes even if it matches the query.

Resolution: Databricks scores each story with a 31-point rubric, filters low-quality stories, and extracts quality metadata before indexing.

“when you do find something, you can't immediately tell if it's strong—does it have credible business outcomes, or just vague claims?”article, stated
“Judging stories like this also lets us filter out the lowest quality ones from Reffy.”article, stated

The glamorous agent layer can distract teams from the data-engineering work that makes the agent useful.

Root cause: Multiple teams had solved pieces of the problem while gravitating toward the AI layer.

Resolution: The team centered ETL, story scoring, and retrieval-oriented data structuring as core architecture, not support work.

“Several teams across Databricks had already solved pieces of this problem independently, gravitating naturally toward the most exciting work - the AI layer.”article, stated
“However, data engineering still sits at the core & getting the ETL right, scoring stories for quality, and structuring data for effective retrieval proved just as critical as the agent itself.”article, stated

A conversational app needs operational state and logs, not just a stateless model endpoint.

Root cause: Users return to conversations, quality assurance needs logs, and product teams need to understand usage and gaps.

Resolution: Reffy persists conversation history, logs, and user identities in Lakebase and processes those logs into monitoring dashboards.

“Reffy is primarily a chat app, so we use Lakebase to persist all conversation history, logs, and user identities”article, stated
“We want to understand which customer stories are popular and where we might have gaps, and the logs we collect from Reffy help us do just that.”article, stated

Notebook-to-serving iteration can slow agent development if every prompt or tool change requires redeploying.

Root cause: Agent development needs fast experiments with prompts, retrieval, and tool behavior.

Resolution: The team used DSPy so agents could be tested iteratively in Databricks notebooks before Model Serving deployment.

“Agents built with it are easy to test iteratively in a Databricks notebook without redeploying to a Model Serving endpoint every time, resulting in a faster dev cycle.”article, stated

Evaluation

Databricks evaluates Reffy through the upstream 31-point story-quality scoring system, hybrid retrieval with re-ranking, MLflow logging, usage telemetry in Lakebase, AI/BI dashboards for DAU and response time, recent input/response review, AI-generated themes and gap analysis, and static quality analysis across industries and content types. The article provides adoption and operational metrics, but does not describe a formal retrieval-relevance benchmark or user-satisfaction score.

Metrics: 31-point story quality score · Daily Active Users · average response times · recent inputs and responses · themes and gap analysis · story quality across industries · story quality across content types · over 1,800 users in first two months · upward of 7,500 queries in first two months · keyword results in less than two seconds

4 supporting quotes
“we classify the text by applying a rigorous 31-point scoring system (developed by our Value team) to each story”article, stated
“The logs from Lakebase are processed in a separate Lakeflow Job to surface key metrics, such as Daily Active Users & average response times”article, stated
“This dashboard also shows us recent inputs and responses, and we go a step further to apply another AI Function to summarize the inputs and responses into recent themes and gap analysis.”article, stated
“At the bottom of the dashboard, we include a static analysis of story quality across industries and content types.”article, stated

Outcomes

Reffy launched in December 2025, was described in March 2026, and served more than 1,800 sales and marketing users with upward of 7,500 queries in its first two months. It indexes over 2,400 customer references drawn from thousands of YouTube talks, website case studies, internal slides, LinkedIn, and Medium, with keyword results under two seconds.

4 supporting quotes
“discover and analyze over 2,400 Databricks customer references, delivering personalized responses, cross-story analysis, quotes, and more.”article, stated
“In its first two months, over 1,800 people in Databricks sales & marketing have run upward of 7,500 queries on Reffy.”article, stated
“That translates into more relevant and consistent storytelling, faster campaign execution, and confidence that customer proof is used at scale.”article, stated
“we discovered that users were especially eager to find stories on Agent Bricks and Lakebase”article, stated