<aside> 🧭

Nav Links

</aside>

User Guides

Creating a Custom App in ChatGPT (Browser Only)

Installing a Private Content App in Claude

Connecting Cashmere MCP to ChatGPT

Connecting Cashmere MCP to Claude

How to access Wiley Content in Perplexity

How to get a Content License

Publisher Quickstart

Publisher Guides

Creating Omnipub Collections

Preparing Structured Data for Ingestion

Types of License Rights

Uploading New Content via the website

Developer Guides

API Docs

Cashmere Link Guide (OAuth) Overview

Third-Party OAuth Integration Guide for Publishers (BYOL / Short Link)

Connecting Wiley with Perplexity | DEPRECATED

Cashmere MCP Tools

Updated Nov. 17, 2025

This article uses a Fictional Private Markets Intelligence Platform as an Example

Organizations with structured or semi-structured datasets—such as company directories, investment databases, deal trackers, or fund analytics products—should prepare their content for Cashmere by converting each entity into a single materialized article view and submitting it to the POST /omnipub endpoint with correct metadata.

This guide uses a fictional Private Markets Intelligence Platform as the running example. In this fictional platform, the core entities include:

These entities live in their own relational tables but are presented to users as rich, joined profile pages. Cashmere needs those unified profile pages—converted to HTML or Markdown—as the ingestable content units.


image.png

1. Materialize Each Entity Into a Single Article View

A. How relational data becomes a profile page

In a relational system, an entity exists as a single row in a table, but the profile page users see is constructed from many joins.

Example: A Company profile may include:

Similarly, an Investor profile includes:

These views naturally contain cross-linked content and repeated rows.

This repetition is correct and required.

B. Repeat data everywhere it appears

When you materialize the profile into an article view:

Example:

This gives Cashmere a complete, self-contained, text-based representation of the relationships that exist in your dataset.

C. Remove internal/self-referential links

Your application UI likely has links to other profiles (e.g., clicking a Company name takes you to the Company profile).

For Cashmere ingestion:

Internal links confuse LLM interpretation of the content and undermine the goal of directing users to your canonical source_url.

D. Output the profile as HTML or Markdown with clear sections

Use headings to separate logical segments:

# Apex Robotics — Company Profile

## Overview
- Headquarters: Seattle, WA
- Founded: 2014
- Industry: Robotics

## Deal Activity
### Series A — Jan 2020
- Investors:
  - Highland Ridge Capital — $12M
  - Westport Ventures — $8M

### Seed — Jun 2018
- Investors:
  - Highland Ridge Capital — $3M

## Investors
- Highland Ridge Capital
- Westport Ventures

## Related News
- “Apex Robotics Launches Autonomous Drone Platform” — TechWire (2024)

Sectioning improves chunking, relationship inference, and grounding.


2. Submit Materialized Views via the Cashmere API

POST endpoint documentation.

Each submitted document should include:


Suggested Fields

collection_id

Comma-delimited list of collection IDs representing the groups this content belongs to. Collections need to exist prior to upload.

Collections can be retrieved using the list_collections endpoint, which will return the ID’s of the collections and can be used in this field.

Example:

external_id

Your internal ID for this record.

If IDs overlap across tables (e.g., all are integers), prefix them for global uniqueness:

tags

Optional comma-delimited list of descriptive labels. Tags do not need to exist prior to uploading content (can be created on the fly).