Finance agents do not think in marketing names. They think in identifiers.

A portfolio-monitoring agent asks for MSFT, not “Microsoft Corporation.” A filing workflow watches GOOG and GOOGL, not a hand-maintained Alphabet synonym list. A research desk wants to ask one question across AMZN, USB, HII, and CTRA and trust that the answer is scoped to the right public-company Streams, not whatever text search happened to match.

That is now live in Synorb.

Public-company Streams now carry a machine-readable security identity layer: tickers for workflow ergonomics, equity ISINs for global instrument matching, CIKs for SEC filings, FIGIs where available, and the full identifier set for multi-class companies. Agents can use those identifiers directly through MCP and REST to find the right company Stream before pulling source-grounded Manifests.

In practice:

synorb-stream-search ticker="MSFT"

returns the Microsoft Stream.

synorb-stream-search ticker="GOOG"

returns Alphabet, even though Alphabet also has GOOGL.

synorb-stream-search ticker=["MSFT", "GOOG"]

returns both Microsoft and Alphabet in one call.

This sounds small. It is not. It turns public-company retrieval from fuzzy search into identifier-addressable context.

Ticker for asking, ISIN for matching

Tickers are how finance people ask questions. ISINs are how finance systems match instruments.

That distinction matters. Tickers are convenient, but they are local, reused, exchange-sensitive, and share-class sensitive. ISINs give downstream systems a stricter global identifier for listed equity instruments. Synorb now supports both patterns: agents can use the human-friendly ticker path, while portfolio systems, security masters, and compliance workflows can join on equity ISIN where they need instrument-level identity.

The practical model is:

Ask by ticker. Match by ISIN. Ground the answer in source-backed Manifests.

So a research workflow can start with ticker="GOOG" because that is what the analyst typed, then carry US02079K3059 through the downstream payload when the system needs a stricter listed-equity identifier.

The identifier lives on the company, not just the Stream

Under the hood, the canonical identifier record lives on the public-company organization tag. That is the source of truth for Synorb’s knowledge graph. Streams then carry a denormalized security payload so delivery is fast, visible, and stable for agents.

For a public company, a Stream can now expose a shape like:

{ "security": { "is_public_company": true, "ticker": "AMZN", "isin": "US0231351067", "figi": "BBG000BVPV84", "cik": "1018724", "identifiers": [ {"id_type": "ticker", "id_value": "AMZN", "is_primary": true}, {"id_type": "isin", "id_value": "US0231351067", "asset_class": "equity", "is_primary": true} ] } }

The important part is that this is not a display label. It is a queryable identity layer. Synorb still resolves claims, records, source channels, and Manifests through its tag graph; the Stream payload now gives finance agents the securities handle they expect.

What this unlocks

Finance users can now build workflows that start from the same identifiers their portfolios, models, and compliance systems already use.

Portfolio basket retrieval

Ask for a basket by ticker and get the live public-company Streams behind it. A portfolio agent can resolve ["MSFT", "GOOG", "AMZN", "USB"], then pull the last 7 or 30 days of source-grounded Manifests from those Streams.

That means less prompt glue, fewer brittle aliases, and fewer false positives from plain text search.

Example workflow:

1. Resolve ticker=["MSFT", "GOOG", "AMZN", "USB"] with synorb-stream-search. 2. Pull synorb-manifests for the returned stream_ids over the last 30 days. 3. Group source-backed claims by company. 4. Join the Stream security payload back to portfolio holdings by ticker or ISIN. 5. Send the analyst only the companies with material filings, IR updates, or product signals.

Share-class aware company lookup

Companies with multiple public share classes are handled as one company identity with multiple identifiers. Alphabet can resolve through both GOOG and GOOGL; Berkshire-style multi-class cases can carry the full identifier set without pretending there is only one ticker.

For agents, that means a ticker-specific question still lands on the right company Stream.

Example searches:

synorb-stream-search ticker="GOOG" synorb-stream-search ticker="GOOGL" synorb-stream-search ticker=["GOOG", "GOOGL"]

Exact routing for short or ambiguous tickers

Some tickers are terrible search terms: ON, IT, ALL, US. They are common words, and free-text search often drops or misreads them. Identifier routing fixes that by treating tickers as structured fields, not keywords.

Finance agents can now use the exact ticker parameter instead of hoping the search parser keeps the token.

Company context from primary sources

Ticker routing is not a quote feed. Synorb is not trying to be market-data infrastructure.

The point is source-grounded company context: SEC filings, investor relations, company newsrooms, engineering blogs, product updates, podcasts, and other curated source surfaces that explain what a company is saying, shipping, disclosing, or signaling.

Once the company Stream is resolved, agents can pull Manifests: structured claims and briefs with provenance. That is the material a research assistant, diligence workflow, or monitoring agent can reason over.

Example workflow:

1. Resolve ticker="HII" to the Huntington Ingalls Stream. 2. Pull the last 90 days of Manifests. 3. Filter for SEC filings, company news, and management commentary. 4. Ask the agent: "What changed in backlog, shipbuilding cadence, margin commentary, and capital allocation?" 5. Return claims with citations, not a generic web summary.

Cleaner downstream joins

Because identifiers are visible on the Stream payload, customers can connect Synorb output to their own systems more cleanly:

  • join retrieved company context to portfolio holdings by ticker or ISIN
  • store stable Stream IDs next to internal issuer records
  • build watchlists from external security masters
  • route alerts to the right analyst or strategy
  • audit why an agent selected a public-company Stream

Example searches and workflows

Here are the kinds of questions finance teams can now hand to agents without first building a custom company-resolution layer.

Daily portfolio change brief

Resolve ticker=["MSFT", "GOOG", "AMZN", "USB"]. Pull 24-hour Manifests from those Stream IDs. Separate filings, investor relations, product updates, and third-party context. Return only source-backed changes that could affect thesis, estimates, risk, or position sizing.

Event-driven filing sweep

Resolve ticker=["CTRA", "HII", "HOLX"]. Pull 8-K, 10-Q, 10-K, 6-K, or 20-F source channels where present. Summarize new disclosures, management language changes, financial guidance, and material event language. Include CIK and equity ISIN in the output metadata.

Public-company watchlist for a sector desk

Resolve a watchlist by ticker or ISIN. For each Stream, pull the last 7 days of company-first-party and regulatory Manifests. Cluster claims by theme: product, guidance, litigation, capital allocation, M&A, supply chain, AI, labor, regulation. Rank by novelty and citation quality.

Share-class safe company lookup

Resolve ticker="GOOG". Confirm the returned Stream is Alphabet. Expose all known identifiers on the Stream, including the alternate class ticker when available. Pull recent Manifests once at the company level instead of duplicating work by share class.

Compliance and audit trail

Start from an internal issuer record with ISIN. Resolve the visible Synorb Stream by ISIN. Pull the exact Manifests an agent used in a decision. Store Stream ID, ticker, ISIN, source URL, claim IDs, and retrieval window with the audit record.

Built for agents, not just humans

The new identifier layer works through MCP, where agent runtimes already discover tools and ask questions, and through REST, where backend systems need predictable filters and payloads.

A typical flow now looks like this:

1. synorb-stream-search ticker=["MSFT", "GOOG"] 2. take the returned stream_ids and security payloads 3. synorb-manifests stream_ids=[...] days=7 compact=true 4. summarize source-grounded changes by company 5. join the output back to holdings by ticker or ISIN

The first step is free and does not consume Manifest quota. The expensive step only happens after the agent has resolved the right Streams.

A better primitive for finance context

Most retrieval systems ask finance users to translate structured intent into unstructured search: write a query, hope it matches the right company, then clean up the misses.

Synorb is moving the other way. We want agents to start with the primitives finance systems already trust: tickers, equity ISINs, CIKs, FIGIs, Streams, source channels, dates, and provenance.

This release is a step in that direction. Public companies are now addressable by securities identifiers inside Synorb’s live context graph, so finance agents can spend less time finding the right company and more time reasoning over what changed.

Try it with:

synorb-stream-search ticker="MSFT" synorb-stream-search ticker="GOOG" synorb-stream-search ticker=["MSFT", "GOOG"] synorb-stream-search isin="US5949181045"

Then pull recent Manifests from the returned Stream IDs.