Jason Caldwell

Bluebeam• 2024–2025

40x faster document search for construction teams

bluebeam.com
A5.2 — Below Grade Wall Detail

Foundation waterproofing, drainage board, and damp-proofing assembly

Sheet A5.2100% match
A5.2a — Alternate Footing Detail

Step footing condition at property line, 12" min. bearing

Sheet A5.2a100% match

Role

Staff Product Designer

Timeline

Beta 2024, V1 GA 2025

Team

1 Product Designer (me)

1 Product Manager

1 Engineer

Skills

Product Strategy

Systems Design

End-to-end UX

Overview

How do you search hundreds of millions of files without anyone waiting?

Bluebeam Studio Projects house hundreds of millions of construction documents — specs, drawings, RFIs, submittals — the information that keeps projects moving. But finding anything meant manually opening folder after folder. I led design on intelligent search for Studio Projects, defining the search strategy, crawling logic, user experience, and the product architecture that would make Bluebeam’s entire ecosystem searchable — and force the platform to finally unify.

What this required.

Product Strategy

Defining what search means for construction professionals, how to phase delivery, and using search as a forcing function for product unification.

Systems Design

Defining crawling logic, indexing strategy, permission models, cost/experience tradeoffs, and success metrics.

End-to-end UX

Designing the search interaction model — how users trigger indexing, perceive speed during crawling, understand incomplete results, recover from errors, and navigate between search contexts.

Problem

Construction professionals lose 5.5 hours per week searching for information they already have.

AEC data storage relative growth (2018–2023, indexed to 2018)

Hours per week spent searching for information (2018–2023)

Between 2018 and 2023, AEC companies grew their data storage by 8x. [1] Time spent searching doubled to 13 hours per week. [2] The correlation was clear: more data meant more time wasted, not less.

48% of construction rework stems from poor project data [3] — not having the right information at the right time.

Bluebeam Studio Projects are cloud workspaces where construction teams store and collaborate on redacted of files — specs, drawings, RFIs, submittals. Studio sat between Revu (desktop) and Cloud (web), making it the natural bridge for search. But finding anything meant manually opening folder after folder.

Studio’s existing “search” wasn’t search. It was keyword filtering by filename only, among files already downloaded locally. No content search. No subfolder search.

Customers told us they’d spend days hunting for specs across thousands of pages. Crews would wait on-site while someone searched folder-by-folder for a single document. At multiple companies, it was best practice to avoid Studio Projects because search was broken.

But the problem was bigger than broken search. Bluebeam had no centralized projects, no unified document storage. Studio, Revu, and Cloud existed in silos. We’d never leveraged basic indexing. We were way behind.

Search wasn’t just a feature gap. It was a forcing function for the unification Bluebeam needed.

Solution

One search bar. Every file. Real-time results.

I designed the end-to-end search experience for Studio Projects — search strategy, crawling logic, user experience, the search input, results display, filters, sorting, error states, and the flows that tie it all together. One search bar that reaches across your entire project. No more folder-by-folder hunting. No more guessing where something might be.

This wasn’t about rebuilding Google for construction documents. We grounded every decision in what our users actually needed: find specific things fast. Not discovery. Not exploration. Precision.

The design approach: Don’t index the world. Index what matters.

The obvious solution — crawl and index all of Studio upfront — would cost redacted with redacted/month maintenance. We found a 4x cost reduction through ad-hoc indexing: only crawl projects when users actually search them. 99% of Studio Projects would index in under 1 minute.

The technical unlock: concurrent segment search. Users don’t wait for the full crawl to finish. Results stream in as files are indexed. The target file often appears in 10–15 seconds, even though the full crawl takes 60 seconds.

Core Flows

The essential search experiences.

Initiating a search

Type your query, hit Enter — we start crawling and searching simultaneously.

Filtering by match type

Show only matches in filenames, folder names, or content — never all three at once.

Sorting by relevance or recency

Default to BM25 relevance, or override to find the newest version.

Opening a file from results

One click takes you directly to the file in Revu or web viewer.

Search in Bluebeam Web

Intelligent Search isn’t just for the desktop. The same experience — real-time results, filters, and one-click file opening — ships in Bluebeam Web too.

The Case for Intelligent Search

Why this was the moment to act.

Customers were working around us

We talked to architects, engineers, contractors, and GIS analysts. The pattern was clear: customers weren’t asking for better search. They’d given up. They were actively avoiding Studio Projects.

“We need to search for keywords like ‘conduit’ across those thousand pages. But finding everything relevant is like looking for a needle in a haystack.”

— M.D., PM

Hours became days. Work slowed. He turned to other tools.

“The search function is limited to your current location — you’re forced to navigate to the proper location first. If we can’t find the right folder, we’ll never find the file.”

— M.L., Construction Site Inspector

Twenty minutes to find one document. Crew waiting in the rain.

“Really hard to index and search thousands of documents all at once.”

— R.G., Senior GIS Analyst [4]

At multiple companies, it was best practice to not use Studio Projects. Because it was too painful.

Hypothesis: Broken search is an existential threat — customers are actively avoiding our product.

Measured by: Studio Project abandonment rate, support tickets citing search, feature requests for basic findability.

The industry had moved on

AEC data storage relative growth (2018–2023, indexed to 2018)

Hours per week spent searching for information (2018–2023)

Between 2018 and 2023, AEC data storage grew 8x while time spent searching doubled to 13 hours per week. [1][2] The industry recognized the crisis: 58% of construction firms were investing in new technology specifically for better data access. [5]

Meanwhile, Bluebeam had never leveraged basic indexing capabilities. We were way behind the times.

Hypothesis: Search capability is now table stakes — we’re at risk of losing customers to competitors who solved this years ago.

Measured by: Customer churn citing search; competitive loss rate; feature request volume.

We own the ecosystem

Studio

Files & folders

Revu

Desktop PDF editor

Cloud

Web collaboration

Data silos — no unified search

Studio Projects house redacted of files. We own the data, the platform, and the workflow. If anyone should be able to search construction documents effectively, it’s us.

But our products were fragmented. Studio, Revu, and Cloud existed in silos. No centralized projects. No unified document storage. Search couldn’t exist in one product — it had to bridge them all.

Hypothesis: We’re uniquely positioned to solve this, but only if we’re willing to unify the platform.

Measured by: Cross-product integration depth, centralized project adoption.

The forcing function

StudioRevuCloudSearchUnified platform+ AI-ready data layer

Leadership’s directive: become an AI-centric company in 2024. Search was the foundation. You can’t build AI features on fragmented data.

But search also forced a harder conversation: product unification. You can’t build effective search across silos. Building search meant confronting the architectural fragmentation we’d been avoiding.

Search wasn’t just a feature. It was the wedge that would force Bluebeam to evolve from a collection of tools into a unified platform.

Hypothesis: Search drives unification and enables AI — it’s infrastructure, not just a feature.

Measured by: AI feature readiness, architectural alignment, platform integration.

How We Shipped It

Beta first, then native integration.

I worked with PM and Engineering to phase the project into two releases. Beta validated demand and gathered usage data. V1 delivered the native, integrated experience.

PhaseApproachWhat Shipped
Beta (2024)Web-based proof of conceptManual crawl, browser-based search, file opening in Revu
V1 (2025)Native integrationIn-Revu search, ad-hoc indexing, debuted at Unbound 2025
Click buttonin Revu1Opensweb tab2Crawls StudioProject3Searches4Clicksresult5Opens filein Revu6

Beta flow — deliberately clunky

The beta model was deliberately clunky: user clicks a button in Revu → opens web tab → crawls Studio Project → searches → clicks result → opens file in Revu. Far from ideal, but it let us validate demand, gather usage data, and buy time to build something that could scale. We knew going in: the beta proves the value, V1 delivers the experience.

Beta learnings validated demand

80%

Don't use a separate CMS or PIS system

60%+

Cited time savings as biggest impact

43%

Primarily doing keyword searches

36%

Searching for filenames

Design Decisions

Hard choices, explicit tradeoffs.

Building search for Studio meant making decisions we could defend. Here are the ones that shaped the product.

Don’t index the world. Index what matters.

The obvious approach: crawl and index all of Studio upfront. Every project, every file, immediately searchable. That’s the best user experience. It’s also redacted upfront, redacted/month to maintain.

The tension: Do we pay for perfection, or find a cheaper way that’s still good?

I asked: What if we only crawl a project when someone actually searches it?

Most projects would never need indexing. And the ones that did would index fast:

99%

Studio Projects have ≤11,000 files

15K

Files per minute crawl throughput

<1m

Indexing time for 99% of projects

4x

Cost reduction vs. full index

The tradeoff: a ~1 minute wait on the very first search of a project. Every search after that is instant. The user’s intent — “I want to search this” — becomes the signal to index. No “Make Searchable” button. No setup. Just search.

The constraint made the decision. The question is never “what’s the best experience?” It’s “what’s the best experience given the constraints?”

Concurrent segment search: perception of speed.

Even with ad-hoc indexing, a full crawl takes ~60 seconds. Users won’t wait. The design challenge: how do you make 60 seconds feel fast?

The answer: don’t make them wait at all. As each segment finishes crawling, we search it immediately and stream results — newest files first. The target often appears in 10–15 seconds, while the rest indexes in the background.

Traditional searchindex everything first, then return results
A5.2 Wall Detail100%
Spec 26 05 33100%
RFI #11296%
Submittal E-04193%
Schedule E0.189%
waiting for index to complete…
015s30s45s60s
Concurrent segment searchresults stream in as each segment finishes indexing
A5.2 Wall Detail100%
Spec 26 05 33100%
RFI #11296%
Submittal E-04193%
Schedule E0.189%
015s30s45s60s2s12s24s38s50s
First results in 2s vs 45s22× faster to first result

Concurrent segment search — results stream as each archive segment finishes indexing

Why it works psychologically. Seeing 12 results at 2 seconds, then 29 at 4, then 47 at 6 feels instant — even when the full index takes 60. A blank screen for the same 60 seconds reads as broken instead of working. That first interaction decides whether users trust search or go back to folder trees.

The tradeoff. Relevance ranking (BM25) needs global statistics — how rare a term is across all files. Stream before the crawl finishes, and those stats are incomplete. The top result might be 3rd-most-relevant, not 1st.

Why that was fine. AEC search is retrieval, not discovery. Users aren’t exploring — they’re after “A-201” or “RFI-247,” things they know exist. As long as the target is on the first page, its exact rank doesn’t matter. And indexing newest-first wasn’t a guess: document access follows a power-law, with ~90% of accesses targeting files less than a year old. [6] We indexed in the order users needed results.

Search on Enter, not on every keystroke.

Modern search feels live — results updating with every character, Google-style. The design question: does that fit how construction professionals actually search?

It doesn’t. Live search assumes you’re exploring, refining a vague query as you watch results shift. But AEC users type things like “A-201” or “ELEC-PANEL-3B” — exact identifiers they already know. They’re not browsing toward an answer. They have one in mind.

Live searchresult on every keystroke
Search on Enterone commit, one result set
|
queries fired:0
|
queries fired:0
“ELEC-PANEL-3B” fires 12 queries live — 1 on Enter

So we search on Enter. The user composes the full query, commits, and gets one clean set of results — no flicker, no half-formed matches for “A-2” before they finish typing “A-201.”

It was also the responsible choice technically. Every keystroke is a query. Live search on “ELEC-PANEL-3B” fires a dozen queries to answer one question. Enter fires one.

Filters that narrow, never expand.

A single query can match in three different places: inside a file’s content, in its name, or in its folder’s name. By default, we search all three — so a search for “conduit” surfaces a file named conduit-detail.pdf, a file containing the word, and anything inside a folder called /conduit/.

The design question: how do users narrow to just the kind of match they want — without learning a query syntax?

conduit

Match type

Content
File names
Folder names

Nothing checked = search all

6 results — all match types

conduit-detail.pdfFile names
conduit-specs.pdfFile names
Load Calc Rev3.pdfContent
Electrical Notes.pdfContent
Panel Schedule.pdfFolder names
Wire Gauge Chart.pdfFolder names
Rule:Nothing checked → search all three.  Something checked → only that.  Multiple checked → OR between them.

Checkboxes, with one rule users never have to learn: nothing checked → search all three. Something checked → only that. Check “File names” and “Folder names,” and you get either — an OR between selections.

The tradeoff: no compound logic. You can’t express “file names AND modified this week” as a strict AND. Everything across selections is OR. But Boolean filter builders are where simple search UIs go to die. Predictable beats powerful when the user just wants to narrow a list.

Every dead-end needs an exit sign.

Search has more ways to fail than most features. The project isn’t indexed yet. A file got deleted after it was indexed. The user doesn’t have permission to the file they just matched. The connection drops mid-crawl. Each of these is rare individually — but across a system this size, every rare failure is somebody’s Tuesday.

The easy path is a generic error: “Something went wrong.” The design work was making each failure tell the user what happened and what to do next.

  • No results → not just “0 results,” but a nudge: check spelling, broaden terms, or “this project may still be indexing.”
  • No permission → matched files the user can’t open are hidden entirely, not teased. A locked door you can see is worse than one you can’t.
  • Offline → “Connect to search,” with the last results still visible — not a blank, broken screen.
  • Stale index → a file deleted after indexing drops from results on click rather than opening a dead link.

The principle, borrowed from any well-run job site: never leave someone stranded. Every dead-end gets an exit sign.

Measure time-to-open, not engagement.

The default way to measure a feature is engagement: searches per user, time spent searching, weekly active searchers. Every one of those would have been the wrong target.

Engagement metrics assume the activity is the value — more searching means a healthier product. But nobody wants to search more. They want to search less: find the file, get back to work. Optimizing for time-spent-searching would mean celebrating the exact thing users were trying to escape.

Wrong target

Searches per user ↑

High engagement looks like success. But it means users are struggling to find what they need.

Right target

Time-to-open ↓

Seconds from query to file on screen. Captures the whole journey: crawl, rank, click, open.

So I started somewhere else: forget the product for a second. What does the user actually want? To open the right file. What are they doing to get it? Searching. How well is it working? Time-to-open — the seconds from typing a query to the file on screen.

That became the primary metric, with a target: under 30 seconds, end to end. It’s honest because it captures the whole journey — query, crawl, results, click, open. If indexing is slow, ranking is off, or the open is clunky, the number moves. One metric, accountable for the entire experience, pointed at the only outcome the user cares about.

Outcome

Shipped on schedule. The 30-second target, met.

redacted%

Of searches open the target file in under 30 seconds

4x

Cost reduction vs. full upfront indexing

20m → <30s

Time to find a file, before and after

We hit the primary metric: redacted% of time-to-open completed in under 30 seconds — down from the 20-minute, folder-by-folder hunt it replaced. Beta to GA shipped across 2024–2025, and ad-hoc indexing delivered the experience at a quarter of the projected cost.

In the Wild

Press, coverage, and official media.

Official sizzle reels

Sizzle Reel #1

Sizzle Reel #2

Unbound 2025 keynote

Intelligent Search presented by Bluebeam Founder Don Jacob

Try It

Search a construction project.

This demo searches 200+ simulated AEC documents across three projects — a mixed-use tower, a municipal renovation, and a wind farm. Try a natural language query like “fire suppression systems” or a keyword like “RFI-0112.”

Search across 200+ simulated AEC construction documents.

Reflection

What I learned

Cost constraints forced better design.

We couldn’t afford to index all of Studio upfront (redacted). Good. Ad-hoc indexing — crawl only when users search — cut costs by 4x and made the product feel smarter. The system learns what matters by watching what people actually search for. Constraint killed waste.

Engagement metrics are a trap.

The temptation was to measure searches per user or time spent searching. Those metrics feel like success — high engagement, lots of activity. But users don’t want to search more. They want to find things faster and get back to work. Time-to-open forced us to care about speed, relevance, and integration — the things that actually matter.

Perception of speed beats actual speed.

The full crawl takes ~60 seconds. But results start appearing in 10–15 seconds (concurrent segment search). Users don’t care if 100% of the project is indexed — they care if their file shows up fast. Streaming results made search feel instant, even when the backend was still working.

Sometimes the feature is the forcing function.

Search wasn’t chosen because the market demanded it. It was chosen because Bluebeam’s product architecture was fragmented — no centralized projects, no unified storage. Search became the wedge that forced those conversations. You can’t build effective search across silos. The feature made the structural problem impossible to ignore.

Sources

[1] AEC data storage growth (8x, 2018–2023): Egnyte AEC Data Insights Report, 2024

[2] Construction professionals search time (13 hours/week, doubled in 5 years): Autodesk/Deloitte, State of Data Capabilities in Construction, 2023

[3] 48% of rework from miscommunication/poor data: Plangrid Construction Rework Study, 2018

[4] Robert Graham quote: Bluebeam Community Forums

[5] 58% of construction firms invest in tech for better data access: PwC / KPMG Global Construction Survey

[6] Document access power-law (~90% of accesses target files <1 year old): Dumais, S., Cutrell, E., Cadiz, J., et al. “Stuff I’ve Seen: A System for Personal Information Retrieval and Re-Use.” SIGIR 2003.