Case study
Quarry
A new CIO, a closed raise, a business changing hands. Every Friday, the people behind this week's events, each one linked to the source.
90-second version
- Prospect lists go cold on arrival. The event that makes someone a buyer is public and dated, and nobody at a small firm has time to watch for it.
- Monitors on appointments, filings, raises, maturities and deals, a search workflow written for each client's market, and a Friday delivery that stops at a review gate before it goes out.
- Multiple firms in paid pilots. I designed and launched the usage-based pricing: a one-time setup, a monthly platform fee, per-new-prospect usage with a cap.

Problem
Financial advisors, bankers and fund managers buy lead lists. A list is a snapshot of who existed the day it was pulled, and it goes cold on the way to the client. The signal that turns a name into a buyer is an event: a new CIO lands, a fund closes, a company changes hands. Those events are public and they are dated. They sit in appointment notices, filings, raise announcements, debt maturities and deal news, and nobody at a small firm has time to read all of that every week.
Non-obvious insight
Prospecting is not a database problem, it's a real-time semantic search problem. Timing beats volume: a client would rather have a short list where every name has a reason and a date than a long one that matches a filter. So the search runs against the live web and every prospect carries the event that put it there. Exa does the searching. The workflow around it is written per client, because a trigger for a fund manager raising from LPs looks nothing like a trigger for a CRE capital markets team.
Bets I made
- Plain English beats a filter builder. The client describes who they want in an intake session, and that becomes a written search playbook for their market.
- The reason a name is on the list is the product. Every prospect ships with the event that produced it, dated, with a link the client can open. Nobody buys a list they can't check.
- The first message belongs next to the prospect. Quarry drafts it, the client sends it. Quarry never contacts a prospect on anyone's behalf, and the fee never depends on whether the deal closes.
- Charge for new names only. Repeats are suppressed and free, usage is capped by the month, and a wrong contact comes off the bill.
What shipped
- Monitors on the public record for each client's market: appointments, filings, raises, maturities, deals. Every event lands dated and linked to the source it came from.
- The Friday delivery: net-new people behind that week's events, emails graded for deliverability, and a first message drafted for the client to send. Contacts carry a confidence grade (high, medium, low, or best guess) instead of a checkmark. Nothing ships unreviewed: every batch stops at a review gate.
- A client portal that keeps every run. The client filters the week's prospects, tracks who they have contacted, and asks questions of their own data in chat. The chat reads the client's own rows and cannot act on them.
- The usage-based pricing, designed and launched: a one-time setup (intake, the written playbook, monitors built, first delivery), a monthly platform fee for the always-on monitors and the weekly delivery, then per-new-prospect usage with a monthly cap.
- Multiple firms in paid pilots. The markets are investment banking and M&A advisory, fund managers raising from LPs, CRE capital markets teams, and financial advisors, where Quarry started.


Evals and instrumentation
Every prospect traces to one dated event with a link, so the client can check the work instead of taking my word for it. Emails are graded for deliverability before delivery, and contacts carry a confidence grade rather than a checkmark, because a binary "verified" label is a promise the data cannot keep. Every batch stops at a review gate before it leaves. The portal meters every model call into MarginFront, so the cost of a week's run is a number, not a guess. Pilot firms are tracked on reply rate, meetings booked, and time to first reply against the list vendor they used before.
What broke
Early runs found the right people and gave the client the wrong contact details. A dead email wastes the client's send and spends the trust I need for the next batch. Now every name passes multiple layers of checks before it ships, and in live runs roughly 40% of raw candidates fail those checks and never reach the client or the bill. That 40% is the product doing its job. It took a wasted send to see it that way.
What's next
Alerts the moment a trigger fires, so a client working a hot market isn't waiting on Friday. A CRM push, so the drafted first message lands in the tool the advisor already has open. Both shorten the gap between the event and the client's first move. That gap is the whole product.