Docs / PRISM — Matching / PRISM Engine
Pillar 2 — Connect

PRISM Engine.

40% of bank-FinTech partnerships fail, according to EY-Parthenon's 2025 report. The #1 cause: wrong fit at the outset. PRISM is TECH's proprietary three-layer AI matching system designed to cut that number. It ranks 30,000+ global FinTechs against every FDIC-insured US institution using vector similarity, LLM fit scoring, and continuous feedback reinforcement — all with PII stripped before anything touches a third-party model.

What it does

PRISM turns the question "who should we partner with?" into a ranked, explainable short-list. Every night at 06:00 UTC, and on-demand any time a user clicks Regenerate, PRISM evaluates your organization's profile, strategy, and historic feedback against every other member and returns the top 10 matches — each one scored, each one explained in plain English.

Matches are symmetric: when the engine surfaces a bank for your FinTech, that same bank independently sees your FinTech on their own feed. A mutual match — where both sides click Accept — opens a FINRA-compliant messaging channel between the two organizations.

At a glance
Input: your organization profile + objectives + historic match feedback.
Output: ranked top-10 partners with a 1-10 fit score, AI rationale, and shared objectives.
Latency: ~60 seconds for a full regeneration (8 candidates × Claude scoring). Runs in a Celery background task so the UI stays responsive.

How it works — three layers

PRISM is deliberately architected as three sequential layers, each narrowing the candidate set and adding more expensive intelligence. The split means we can afford to run layer 2 (the LLM) only on the strongest candidates from layer 1 — keeping cost linear in membership size, not quadratic.

1 Vector Similarity
pgvector cosine distance

Every organization has a 1,536-dimensional embedding generated from its name, sector, stage, description, partnership objectives, and target criteria. We use PostgreSQL 16 with the pgvector extension (version 0.8.2) to run a cosine-distance nearest-neighbour query against the entire membership in a single SQL round-trip. The top 50 candidates graduate to layer 2.

2 LLM Re-ranking
Claude Sonnet fit scoring

Each of the top 8 candidates is scored by Anthropic's claude-sonnet-4-5 model against a structured rubric covering problem alignment, technical compatibility, regulatory posture, cultural fit, and strategic value. The model returns a 1-10 fit score plus a short narrative explanation that becomes the match's Why This Match card in the UI. All PII is stripped before any prompt reaches the Claude API.

3 Feedback Reinforcement
Continuous re-weighting

When you accept, decline, rate, or message a match, PRISM records the signal and adjusts future rankings. Decline a bank three times in a row and the ranker learns to down-weight banks of that type for you. Accept a partnership and successfully close a deal in CORTEX and the engine amplifies the signal that brought you there. Each organization ends up with a personalised ranker that improves with every interaction.

When it acts

PRISM is always-on. There are four triggers that produce a new ranking:

Privacy and compliance

PRISM is designed to be compatible with the full compliance stack TECH operates under: FINRA Rule 4511, SEC Marketing Rule 206(4)-1, CCPA/CPRA, GLBA, BSA/AML, and DORA. Three design choices make this possible:

Compliance
PII stripped before inference. No name, email, phone, or free-text personal identifier is ever sent to Anthropic. The LLM only ever sees organization-level, sanitized fields.

Every match is AI-labelled. The API response carries an is_ai_generated: true flag, surfaced on the UI with an AI badge per SEC Marketing Rule 206(4)-1.

Immutable audit trail. Every match generation, acceptance, decline, and feedback event writes to the SHIELD compliance log with user, IP, timestamp, and (if applicable) model version.

Specifications

Embedding model
OpenAI text-embedding-3-small, 1,536 dimensions
Vector store
PostgreSQL 16 + pgvector 0.8.2, cosine distance index
LLM scorer
Anthropic claude-sonnet-4-5
Layer 1 recall
Top 50 of N members (typically <1s)
Layer 2 re-rank
Top 8 scored by LLM (~3-5s each, runs sequentially)
Final output
Top 10 matches with fit score 1-10 and narrative rationale
Match expiration
30 days from creation
Refresh cadence
Daily at 06:00 UTC + on-demand regenerate

API surface

PRISM is exposed through the authenticated REST API under /api/v1/matching/. The endpoints your app uses on every login:

GET /feed/
Your current top 10 pending matches
POST /generate/
Enqueue a regeneration — returns 202 + task id
GET /<id>/why/
The AI rationale for a specific match
POST /<id>/accept/
Accept on your side — opens channel if mutual
POST /<id>/decline/
Decline — feeds layer 3 reinforcement
POST /<id>/feedback/
Rate the relevance (highly_relevant / somewhat / not)
See it in action

Open the Matches page in the app.

Sign in, open Matches, and watch PRISM's ranked feed. Click the Why This Match card on any result to see the exact AI rationale — the output of layer 2 described above.

Open Matches →