Developers
Search across
company data
Keyword search misses the paraphrase. Vector search misses the part number. Running both and merging the results is a job the runtime should already be doing.
Capabilities
How search works across your data
One call, three strategies, one ranked result set that knows who is asking.
Hybrid by default
Keyword and vector run together and are fused, rather than being two features you choose between.
Permission-aware
Filtering happens at query time against synced source permissions, not as a post-filter over results.
Traversal in the query
Follow relationships as part of retrieval, so a result can be reached through its neighbors.
Facets and filters
Typed fields mean filters on real values, not on guessed metadata.
Ranking you can inspect
See why a result scored where it did, which matters when someone disputes an answer.
Sub-second at scale
In memory across tens of terabytes, so the search box stays usable.
Questions for developers
The things worth asking first
Can I use my own embedding model?
Yes. Use a bundled local model, a hosted provider, an OpenAI compatible endpoint, or vectors you compute yourself. A different model means a new embedding index, and the graph is not touched.
How are permissions kept current?
Connectors write each record's access as team and user restrictions, and Studio checks them on every query, down to node types and fields. A revoked access applies on the next query after the connector syncs it, with no reindex.
Is there an API?
Yes. Curiosity.Library gives you the graph and its queries from C# or Python, and you publish your own REST endpoints in C# inside Studio. Studio also serves an MCP server and an OpenAI compatible chat API.
Your data. Your infrastructure.