How to Integrate OpenAI for investment banking with Pinecone for startups
Combining OpenAI with Pinecone gives you a practical pattern for startup-grade investment banking workflows: generate analysis with the model, then ground it in your own deal docs, CIMs, pitch decks, and market notes stored in a vector index. That means your agent can answer questions like “summarize the last 3 comps for this target,” “draft an IC memo from these materials,” or “find every mention of revenue concentration risk across the data room” without hallucinating.
Prerequisites
- •Python 3.10+
- •An OpenAI API key
- •A Pinecone API key and an existing index
- •Access to your banking documents:
- •PDFs
- •pitch decks
- •markdown notes
- •exported diligence Q&A
- •Installed packages:
- •
openai - •
pinecone - •
tiktokenor your preferred chunking library
- •
- •A basic document ingestion pipeline that can split text into chunks
Install dependencies:
pip install openai pinecone tiktoken
Set environment variables:
export OPENAI_API_KEY="your-openai-key"
export PINECONE_API_KEY="your-pinecone-key"
export PINECONE_INDEX_NAME="investment-banking-docs"
Integration Steps
1) Initialize OpenAI and Pinecone clients
Use OpenAI for embeddings and generation, and Pinecone for retrieval. Keep the clients separate so you can swap models or indexes later without rewriting the pipeline.
import os
from openai import OpenAI
from pinecone import Pinecone
openai_client = OpenAI(api_key=os.environ["OPENAI_API_KEY"])
pc = Pinecone(api_key=os.environ["PINECONE_API_KEY"])
index_name = os.environ["PINECONE_INDEX_NAME"]
index = pc.Index(index_name)
2) Chunk your banking documents and create embeddings
For investment banking use cases, chunk by section boundaries where possible: executive summary, financial highlights, risks, valuation, and appendix. Then embed each chunk with text-embedding-3-small or text-embedding-3-large.
docs = [
{
"id": "dealnote_001",
"text": "Company X reported $42M revenue in FY24, up 18% YoY. Gross margin improved to 61%. Customer concentration remains elevated with top 3 customers at 38% of ARR."
},
{
"id": "dealnote_002",
"text": "Comparable Company A trades at 4.8x EV/Revenue. Comparable Company B trades at 5.2x EV/Revenue. Market sentiment remains stable for software names."
}
]
texts = [d["text"] for d in docs]
embeddings_response = openai_client.embeddings.create(
model="text-embedding-3-small",
input=texts
)
vectors = []
for doc, emb in zip(docs, embeddings_response.data):
vectors.append({
"id": doc["id"],
"values": emb.embedding,
"metadata": {
"text": doc["text"],
"source": "banking_note"
}
})
3) Upsert vectors into Pinecone
Store the embedding plus metadata so you can retrieve the original text and trace results back to source material.
upsert_result = index.upsert(vectors=vectors)
print(upsert_result)
If you’re indexing thousands of pages, batch the upserts in chunks of a few hundred vectors to keep latency predictable.
4) Retrieve relevant context from Pinecone for a banking query
When a user asks a question, embed the query with the same model, search Pinecone, then pass the retrieved context into OpenAI for synthesis.
query = "What are the main risks in this target company?"
query_embedding = openai_client.embeddings.create(
model="text-embedding-3-small",
input=[query]
).data[0].embedding
search_results = index.query(
vector=query_embedding,
top_k=3,
include_metadata=True
)
contexts = []
for match in search_results.matches:
contexts.append(match.metadata["text"])
context_block = "\n\n".join(contexts)
print(context_block)
5) Generate an investment banking answer grounded in retrieved context
This is where OpenAI does the actual reasoning and drafting. Use a tight system prompt so the model stays within the retrieved evidence.
response = openai_client.responses.create(
model="gpt-4.1-mini",
input=[
{
"role": "system",
"content": (
"You are an investment banking analyst. "
"Answer only using the provided context. "
"If evidence is missing, say so clearly."
)
},
{
"role": "user",
"content": f"""
Question: {query}
Context:
{context_block}
"""
}
]
)
print(response.output_text)
Testing the Integration
Run a simple end-to-end test: embed sample deal notes, store them in Pinecone, retrieve by query, then generate a response from OpenAI.
test_query = "Summarize revenue growth and key risks."
q_emb = openai_client.embeddings.create(
model="text-embedding-3-small",
input=[test_query]
).data[0].embedding
matches = index.query(vector=q_emb, top_k=2, include_metadata=True).matches
test_context = "\n".join([m.metadata["text"] for m in matches])
result = openai_client.responses.create(
model="gpt-4.1-mini",
input=[
{"role": "system", "content": "Answer using only provided context."},
{"role": "user", "content": f"Question: {test_query}\n\nContext:\n{test_context}"}
]
)
print(result.output_text)
Expected output:
Revenue grew 18% YoY to $42M in FY24. Gross margin improved to 61%.
Key risks include customer concentration, with the top 3 customers representing 38% of ARR.
Comparable trading data suggests public market multiples around 4.8x to 5.2x EV/Revenue.
Real-World Use Cases
- •
IC memo drafting
- •Pull relevant deal notes from Pinecone and have OpenAI draft an investment committee memo with thesis, risks, valuation summary, and recommendation.
- •
Diligence Q&A assistant
- •Let bankers ask natural language questions over CIMs, data room exports, and management call notes without manually searching folders.
- •
Comparable company analysis helper
- •Store comps research in Pinecone and use OpenAI to summarize trading ranges, outliers, and narrative drivers for a pitch book.
If you want this production-ready for startups or internal banking teams, add metadata filters by client name, deal stage, sector, and date. That gives you controlled retrieval instead of dumping every document into one giant semantic pool.
Keep learning
- •The complete AI Agents Roadmap — my full 8-step breakdown
- •Free: The AI Agent Starter Kit — PDF checklist + starter code
- •Work with me — I build AI for banks and insurance companies
By Cyprian Aarons, AI Consultant at Topiax.
Want the complete 8-step roadmap?
Grab the free AI Agent Starter Kit — architecture templates, compliance checklists, and a 7-email deep-dive course.
Get the Starter Kit