Engagement / OpenObserve · Contract · Completed

A demo engine
for outbound.

An open-source observability platform selling against Datadog and Splunk bills. Instead of a “we're cheaper” email, every prospect got a hosted page showing their own bill, their own savings, and an AI that answers questions from the real docs.

0email open rate
0clicked through to their own demo page
0sources behind the Ask AI RAG
0modeled cost savings vs Datadog / Splunk
Next.jsTF-IDF / BM25 RAGGeminiPlaywrightGoogle SheetsApps ScriptGmail APIPostHog

01 · The Scene

A “we're cheaper” email is noise. A page showing their bill is an argument.

Two phases. Phase 1 with CRO Shani Shoham built the demo engine, the personalized pages, the cost model, and the Ask AI that grounds them. Phase 2 under Jacob Swiss found the accounts worth showing them to and drove the outreach. Every prospect landed on a page built for them, not a generic pitch.


02 · Phase 1
the demo engine

One input becomes a page.

A company and its current vendor become a hosted, personalized cost-comparison page at its own URL. Nothing hand-edited, the whole site regenerates from one CSV.

8vendor comparison models
6–10×modeled savings vs incumbent bills
1 CSVrebuilds the entire site
You give
CompanyCurrent vendor
Cost model
Signal extractiona dozen inputs per account
Infra estimateheadcount to footprint
Vendor vs OpenObservereal rate cards to savings
Rendered page
Their bill + savingsIn-page Ask AI
One approved CSV rebuilds every page · nothing hand-edited

The savings figure isn't a number pulled from air. Each account is profiled from a dozen signals, then priced against the incumbent's live rate card. Where the saving comes out near-zero, the page flips to a value pitch instead of a price one. It never pretends a saving exists when it doesn't.

The signals pulled per account before a dollar figure is shown:

HeadcountIndustry verticalEng ratioInfra footprintPod densityTelemetry volumeCurrent vendorLive rate cardRegionCompliance profile

A page a prospect actually landed on:

Personalized OpenObserve cost-analysis page for a real prospect, showing their environment, monthly estimate, and annual savings
Live generated page for a real prospect: their environment, their estimate, their savings. Click to zoom.
Cost-comparison chart: Datadog's ten billing dimensions stacked against OpenObserve's flat rate
The comparison view: Datadog's ten billing lines against OpenObserve's three.

03 · Ask AI
a production RAG

An AI that only speaks from the docs.

Every demo page carries an in-page Ask AI. It runs on a retrieval index built over OpenObserve's entire public knowledge surface, so a prospect can interrogate the product and get answers grounded in current documentation, not a model's guess.

12k+indexed sources across four corpora
4corpora: docs, blog, issues, PRs
0invented citations, every answer traces to a passage
Corpus
Docs · 420Blog · 308Issues · 3,369PRs · 8,008
RAG index
Reindexlive sitemaps + GitHub
TF-IDF / BM25rank by relevance
Groundcite real passages
Powers
In-page Ask AIEmail personalization
~12,000 sources · answers grounded in current docs, never invented

The same index does double duty. It answers questions on the demo page, and it grounds the outbound email copy, so a claim in a cold email traces back to a real passage in the docs. One knowledge base, one source of truth, powering both the pitch and the product Q&A.

Try it, this is the live index:

Ask this knowledge baselive · RAG over ~12k sources

04 · Console
product-fidelity redesign

A redesigned console the demo could live in.

To make the demos read as product, not marketing, I rebuilt the OpenObserve console UI, its real colors, dashboards, and terminology, as a standalone interactive mockup with an AI-first assistant baked in.

The redesigned /ui, recorded live: logs, metrics, traces, dashboards. Click to expand.
Open the live interactive console ↗

05 · Phase 2
signal sourcing to send

Point the right page at the right person.

Stop guessing who to email. Find accounts showing real observability-migration signals, draft one verifiable hook each, and send, every lead pointed at its own matching demo page.

2-steppersonalization: real hook, then pitch
3 styleshypothesis, curiosity, or minimal
1 or noneverifiable hook per lead, never faked
Buying signal
LinkedIn job postsDatadog / Splunk / OTel mentions
Personalize
Enrich + scorekeyword-weighted signal score
2-step Gemini draftone real hook, or NONE
Match demo pagevendor-pain + slug
Send
Sheets + Apps ScriptThreaded Gmail sendto their demo page
Human QA before every batch · every lead mapped to its demo page

Sourcing was a headless browser, not a data vendor: a Playwright session logs into LinkedIn once, then walks job-posting URLs. A hiring post name-dropping Datadog or OpenTelemetry is a company actively wrestling with observability spend. The whole campaign then runs from Google Sheets and Apps Script, no separate server, threading follow-ups into the original Gmail conversation.

The engineering underneath

Sourcing: one manual LinkedIn login saves a reusable session; a scraper walks job URLs with human-like delays (4–7s after load, 6–12s between jobs) and resume support, writing clean title / company / JD rows. Titles are keyword-scored, observability terms weighted heaviest.

Personalization: step one pulls exactly one concrete, verifiable hook from the profile, or returns NONE. Step two pairs that hook with a vendor-specific pain library and the matching demo page, in one of three styles: hypothesis, curiosity, or minimal.

Threaded send: Apps Script builds a raw RFC-2822 MIME message with explicit In-Reply-To / References headers and sends via the Gmail API, so follow-ups land inside the original thread. Status and timestamps write back to the Master Sheet.


06 · Results

The pages did the talking.

70–80%opened the first email
~60%clicked through to their demo page
liveevery visit tracked in PostHog replays

The targeting and hooks landed: strong opens, and strong click-through to the personalized demo pages, every session watchable in PostHog replays shared with the team. The follow-up sequence then iterated the positioning, from a pure cost-savings pitch toward the broader observability pain the pages could speak to.


07 · Learnings

What the engagement taught.

01

Personalization depth beats volume

A generic "we're cheaper" email is noise to an engineer. A page with their stack, their pod count, and their actual bill is an argument. The demo page did the "why switch" pitch the cold email couldn't.

02

One verifiable hook, or none

The load-bearing rule of the personalization pipeline. If the model can't pull a real, specific signal from a profile, it falls back to a vendor-pain draft. It never invents a plausible-but-fake hook. Fake reads worse than generic once a prospect notices.

03

Ground every claim in real docs

Both the on-page answers and the email copy pull from the same RAG index over OpenObserve's own docs and GitHub. A number or a feature claim traces back to a real passage, so the pitch never drifts into something the product can't back up.

04

Vendor pricing pages move

Elastic's shift to Serverless / VCU billing broke a flat $/GB comparison mid-engagement (caught in the March review). The cost model needs a re-verification cadence, not static assumptions.

A page about them beats an email about us.

← Back to the systems