Ticket triage · Production

Linear uses LLMs and vector embeddings to surface similar and duplicate issues

The problem

Large engineering teams face a persistent duplicate-issue problem where, at worst, multiple engineers unknowingly fix the same bug; support teams also waste time manually aggregating related customer messages across tools.

First attempt

Initial experiments storing vector embeddings as blobs in the primary database worked for prototyping but posed performance risks; several dedicated vector databases were rejected due to scaling downtime, cost, or ops complexity; naive similarity queries without indexing regularly timed out on tens of millions of issues.

Workflow diagram · grounded in source
1
Issue creation trigger
Trigger
When a user starts filling out a new issue, similar-issue detection is initiated.
source quote
“When you start filling out a new issue, @linear will now use LLM's to semantically find similar issues so that you don't enter duplicates”
2
LLM embedding generation
Ai action
Issue text is converted to a vector embedding that encodes its semantic meaning as a matrix of floating point numbers.
source quote
“Embeddings encode the semantic meaning or concept of a piece of data as a matrix of floating point numbers so you can search and group items with similar meaning using simple mathematical operations. For example, "bug", "problem", "broken" are all …”
3
Cosine similarity search
Ai action
Cosine similarity queries run against stored embeddings to score conceptual closeness between issues, with scores near 1 indicating similar issues and scores near -1 indicating opposing ideas.
source quote
“Using cosine similarity queries, issues that are conceptually similar would have a score closer to 1, whereas opposing ideas would be closer to -1”
4
Similar issues surfaced
Output
The support team can see if a related issue already exists and its current status without switching tools.
source quote
“the support team can clearly see if a related issue already exists and what its status is. Without having to jump between different tools, they can respond accordingly”
5
Triage duplicate marking
Human review
In the Triage inbox, similar issues are shown front and center, making it easy to mark them as duplicates.
source quote
“we'd be able to show existing similar issues front and center and make it easy to mark them as duplicates”
Reported outcome

The Similar Issues feature was rolled out to all Linear workspaces and has already helped the customer experience team consolidate support issues in Intercom with less manual aggregation time, with early community feedback confirming improved backlog management.

Reported metrics
Manual support message aggregation timeless time spent manually aggregating messages
Backlog management qualityhelping folks better manage their backlogs
Reported stack
LLMspgvectorPostgreSQLElasticSearchIntercomGoogle Cloud
◆ Does this fit your context?

Compare to your context

Tell us your scale, team, and constraints. We'll show what changes at your size, what fails at your scale, and whether this case is a fit, needs adaptation, or won't scale to you. Free demo, no signup.

Compare to your context →
~30 seconds · free
Source
https://linear.app/now/using-ai-to-detect-similar-issues
Read source ↗

Frequently asked questions

What did this team achieve with this AI workflow?

The Similar Issues feature was rolled out to all Linear workspaces and has already helped the customer experience team consolidate support issues in Intercom with less manual aggregation time, with early community fee…

What tools did this team use?

LLMs, pgvector, PostgreSQL, ElasticSearch, Intercom, Google Cloud.

What results were reported?

Manual support message aggregation time: less time spent manually aggregating messages; Backlog management quality: helping folks better manage their backlogs (source-reported, not independently verified).

What failed first in this deployment?

Initial experiments storing vector embeddings as blobs in the primary database worked for prototyping but posed performance risks; several dedicated vector databases were rejected due to scaling downtime, cost, or ops…

How is this ticket triage AI workflow structured?

Issue creation trigger → LLM embedding generation → Cosine similarity search → Similar issues surfaced → Triage duplicate marking.

WHAT TO DO WITH THIS

Now compare it to your context

This case is one data point. Whether its pattern fits you depends on your volumes, your stack, and your exception load — that comparison is the step no case study can do for you.