Blog

Below the CRM: How Breaknine Built Trustworthy Investor Signals on Orthogonal

Breaknine orthogonal case study

Breaknine helps VCs turn CRM data into outreach that actually lands, by matching each company’s moment to the investor’s own story. Routing discovery through Orthogonal gave Breaknine one stable interface to vetted sources — and in its first two weeks, 87% of surfaced updates were independently grounded.

Breaknine helps VCs turn CRM data into outreach that actually lands, by matching each company’s moment to the investor’s own story. To do that at scale, it needs trustworthy signals from across the web, but stitching together data providers one by one was slow, costly, and impossible to maintain. Routing discovery through Orthogonal gave Breaknine one stable interface to vetted sources, and in its first two weeks, 87% of surfaced updates were independently grounded, versus near zero before.

Breaknine: The Product

Activating the investor’s own story

The tools VC investors used to manage relationships have not kept up with the needs of the modern VC investor. Most VCs track hundreds of companies in their CRM, yet have no reliable system for knowing when to re-engage or what to say. They are relegated to arbitrary calendar reminders and hollow “just checking in” emails that rarely land. The result is a pipeline where promising companies fall through the cracks, not because investors lost interest, but because they had no meaningful catalyst to reach back out at the right moment.

Existing tools are exceptional at storing and surfacing company data, but they stop short of telling an investor why their specific background makes them the right person to reach out to a particular founder, right now. The real gap is on the investor side of the equation: no tool captures and activates the tacit knowledge an investor has built — the portfolio companies they’ve scaled, the sectors they’ve navigated, the problems they’ve personally solved — and connects it to the companies they’re tracking.

Today, the most sophisticated investors are doing this manually, copy-pasting CRM notes, company updates, and personal context into AI tools to draft outreach, a workflow that’s time-consuming, inconsistent, and impossible to scale. Breaknine sits below the CRM to automate that triangulation. To effectively do this triangulation, Breaknine continuously monitors public signals across a VC’s pipeline, and generates bespoke outreach that’s personalized to both the company’s moment and the investor’s own story.

The Challenge: Accessing high-quality data providers

Good data sources are gated, slow to access, and each one adds cost and upkeep

When we began building our macro-news discovery (non-company posted updates, but still relevant to the company) layer in Breaknine (B9), we experimented with Exa and Brave Search for broad web discovery, while Firecrawl and SerpApi helped us extract pages and retrieve search results. Together, these tools gave us access to a large corpus, but breadth alone did not produce actionable updates. Every provider required extensive evaluation, and differences in its output introduced new edge cases in the decision layer that determines what users see.

We then explored first-party professional network APIs for more targeted data, but access often required months long partnership processes or upfront commercial commitments. That meant we could not validate whether an API met our needs until after investing significant time and resources. Even when a provider worked, integrating services one by one was not a scalable strategy: each integration introduced another contract to maintain, output format to normalize, and evolving API to track. We needed an agentic discovery workflow that could dynamically match each research task to the vetted data source — while giving B9 a single and stable interface for the signals entering our decision layer.

The Solution: One layer to handle data discovery, access and management

Infrastructure that can be built on

That experience clarified what we needed: not another API dependency, but a clean separation between finding quality external data and deciding what that data means for an investor. We moved discovery into a focused, agentic retrieval layer powered by Orthogonal, where we could select vetted APIs for specific research tasks and quickly adopt better sources as they became available.

This insulated B9’s downstream decision layer from constant changes in the provider ecosystem. Instead of integrating, normalizing, and maintaining every provider ourselves, we could keep B9 focused on what differentiates us: combining external signals with private firm context, deciding what deserves attention, and turning it into relevant outreach.

Orthogonal: Infrastructure connecting Agents to Tools

What is Orthogonal?

Orthogonal can act as an API aggregation layer for data services, similar in spirit to what OpenRouter provides for AI models. It abstracts provider authentication, billing, and vendor management behind a single integration, giving B9 access to data from professional networks, Substack, X, and a broad range of other services without requiring us to build and maintain a separate integration for each one.

That breadth also makes our monitoring infrastructure more resilient. B9 is not locked into a single provider or dependent on one source remaining available: when a provider is unavailable, or a better source emerges, we can use another option without rebuilding the product around it. Drawing from multiple sources also gives users a more complete view than any one provider could offer on its own.

The division of responsibilities is deliberate. Orthogonal handles the infrastructure required to source and access external data providers; B9 handles categorizing those signals, combining them with private firm context, deciding what deserves to be surfaced, and translating the result into relevant outreach.

How we’re using Orthogonal

Discovery layer

To better explain, let’s consider a concrete research task on the company Ramp. We ask ourselves “What has happened recently around Ramp in spend management and corporate cards, over the last 30 days?”. In B9 this arrives as a typed object with its intent, domain, the industry terms we track, and a time window:

const input: MarketNewsInput = {
  intent: 'macro_news',
  domain: 'ramp.com',
  companyName: 'Ramp',
  industryTerms: ['spend management', 'corporate cards', 'fintech'],
  windowDays: 30
}

We never name a data provider. Instead we describe the kind of endpoint the task needs, in natural language, and ask Orthogonal which endpoints match:

API endpoints that return recent news and articles about Ramp (domain ramp.com) operating in spend management, corporate cards, fintech and its market. Provide news search, company news, market and industry news, press releases, funding announcements, leadership and product-launch coverage, and business-event signal APIs.

We then make a single call via /search with the provided prompt:

const discovery = yield* searchOrthogonalEndpoints({
  prompt: buildNewsDiscoveryPrompt(input),
  limit: MARKET_NEWS_DISCOVERY_LIMIT,
})

What comes back is a ranked set of candidate endpoints across providers, each with its path, method, description, relevance score, and price:

{
  "requestId": "req_01J9X2K...",
  "results": [
    {
      "slug": "predictleads",
      "name": "PredictLeads",
      "endpoints": [
        {
          "path": "/v3/companies/{company_id_or_domain}/news_events",
          "method": "GET",
          "description": "News events (funding, hiring, product launches) for a company",
          "price": 0.02,
          "isPayable": true,
          "score": 0.91
        },
        ...
      ]
    },
    ...
  ]
}

We flatten those into a single list of discovery endpoint candidates:

[
  {
    "key": "predictleads:/v3/companies/{company_id_or_domain}/news_events",
    "api": "predictleads",
    "path": "/v3/companies/{company_id_or_domain}/news_events",
    "method": "GET",
    "priceCents": 2,
    "description": "News events...",
    "score": 0.91
  },
  ...
]

B9 then runs the selected endpoints with a task specific payload instead of maintaining a direct integration with its underlying provider:

const run = yield* runOrthogonalEndpoint({
  endpoint,
  payload: buildNewsPayload(input),
  capability: 'news_discovery',
  intent: input.intent,
})

That capability is exposed to an AI SDK agent, which can make multiple research calls but must return evidence-grounded, structured output:

const agent = new ToolLoopAgent({
  model,
  instructions: 'Only return signals grounded in tool results and preserve their evidence URLs.',
  tools: { findMarketNews },
  output: Output.object({ schema: discoverySchema }),
  stopWhen: stepCountIs(8),
})

Before entering B9’s decision layer, each finding has a consistent shape and retains its source trace:

{
  "type": "hiring",
  "title": "...",
  "url": "...",
  "summary": "...",
  "publishedAt": "...",
  "confidence": 0.91,
  "metadata": {
    "provider": "orthogonal",
    "endpoint": { "api": "...", "path": "...", "key": "..." }
  }
}

The decision layer can evaluate the signal without needing to know which underlying provider produced it or how it was retrieved.

In practice, B9 uses Orthogonal agentically to combine company and person inputs from professional-network APIs most heavily, including Fiber AI API and Apollo API. Through the same Orthogonal integration, our discovery layer can also draw from Serper, Bytemine, Company Enrich, PredictLeads, Fundable, and Aviato to request current company and founder context alongside financing, hiring, product, and market activity.

Rather than exposing those responses directly, B9 normalizes them into traceable signals, combines them with the firm’s CRM and communication history, and evaluates whether each development is relevant enough to surface or useful enough to support outreach. This is where broader data access becomes a measurable product result rather than simply more information.

Three-layer triangulation

B9 combines three distinct inputs to generate a specific outreach suggestion:

  • Proprietary CRM notes;
  • Synced email context;
  • Orthogonal-sourced external signals. (Discovery layer)
Discovery layer
Research task
Orthogonal endpoint discovery
Run selected data endpoint
AI SDK grounding agent
Normalized, source-backed signal
Proprietary CRM notes
Synced email context
B9 context assembly
B9 decision layer
Traceable rationale
Specific outreach suggestion
External signals establish that a moment has arrived; CRM notes and email history establish whether this investor has standing to speak to it.

The Results: Signals investors can trust

Independently grounded evidence, moving investors from evidence to outreach

Improved update quality

The clearest measure of the Macro News layer’s quality is how well grounded its updates are. We call an update “independently grounded” when its supporting evidence comes from a domain other than the company being monitored. In its first 2 weeks in production, the Orthogonal-backed Macro News layer surfaced 622 updates drawn from 233 distinct source domains, and about 87% of them (539 of 622) were independently grounded. This is the opposite profile of B9’s earlier company owned source monitoring, where independent grounding was close to zero because nearly every update traced back to the company itself. Routing discovery through Orthogonal’s vetted providers meant the large majority of what reached B9’s review carried genuine updates that were far more trustworthy signals for an investor.

Feature expansion opportunities

That same contract is what makes new features inexpensive to build. Because every new endpoint is just another typed source behind the same interface, expanding what B9 monitors becomes a configuration change rather than a net new project. The provider ecosystem can keep evolving without requiring changes to B9’s decision layer, which stays focused on judging what matters the most for each investor.

New monitoring dashboard

In Breaknine, we revamped the new monitoring dashboard so investors can see the most relevant company developments in one place, understand why each external signal matters, and then move directly from evidence to outreach.

Monitoring dashboard showing company developments
In-app monitoring dashboard

Signal categories

Orthogonal routes to many providers that already tag their information as funding, acquisition, leadership changes, etc allowing B9 to verify and organize signals into consistent categories, such as funding, M&A, product launches, and hiring. Instead of spending hours building and running evaluations to infer a single signal type, we can use the provider’s explicit response contract and focus our evaluation work on whether the signal is relevant to the investor.

Signal category filters for funding, M&A, product launches, and hiring
Types to filter updates within app

The Conclusion: Build on the layer instead of maintaining it

Discovery keeps improving on its own, and B9 stays focused on judgment

Moving discovery onto Orthogonal changed what B9 has to worry about. We stopped chasing contracts, formats, and APIs, and started spending our time where we actually differentiate: deciding what matters for each investor and turning it into outreach worth sending. As Orthogonal adds providers, our monitoring gets broader and sharper on its own, with no re-architecting on our end.

Next article

How Breaknine Helps Investors Stay Top of Mind

Sourcing isn’t a database problem — it’s a relationship problem. How Breaknine helps investors maintain context, spot the moments that matter, and stay top of mind with the founders they care about most.