---
name: privsource-deal-search
description: Use when an agent searches live PrivSource acquisition opportunities, retrieves details for a specific deal, or sends buyer outreach through MCP or the REST API.
---

# PrivSource Deal Search

Deal tools are buyer-side. They search acquisition opportunities available to the authorized buyer account and can send outreach when a deal is contactable.

## Workflow

1. Call `privsource_whoami` if unsure whether the account has `deals` access.
2. Call `search_deals` with filters for companies/deals for sale.
3. Page through results with `page` and `per_page`.
4. Call `get_deal` with a deal id from `search_deals` when the user needs full details.
5. Call `send_deal_outreach` only after the user has selected a deal and asked to send a message. It sends a real message to the seller, so confirm intent and message body first.

## Filter Meaning

All search filters describe the company/deal for sale, not the buyer's own profile.

- `industry`: target deal industry.
- `location`: target deal location.
- `revenue_min` and `revenue_max`: annual revenue of the company for sale, in whole US dollars.
- `ebitda_min` and `ebitda_max`: EBITDA/cash flow of the company for sale, in whole US dollars.
- `margin_percent_min` and `margin_percent_max`: margin percentage of the company for sale.
- `deal_type`: investment/deal type.

## Output Handling

Summarize deal fit cautiously. If the user asks for details not present in the returned data, say the data is not available rather than inferring it.

When the buyer account has buyside mandates, `get_deal` responses include `mandate_matches` — how the deal matched the buyer's published mandates, with a fit band, explanation, and review state. Mention a strong mandate match when summarizing the deal, and use `update_buyside_mandate_match` (see the buyside mandates skill) to record the buyer's verdict on it.

## Outreach Handling

- Use `send_deal_outreach` only when the deal response has `outreach_available: true`.
- The `body` can include `{First Name}` for recipient personalization.
- If outreach is not available, explain that the deal is not currently contactable rather than trying another channel.

## Shared deals and next steps

Free buyers can read their shared deals and respond to shared mandate matches.
Use `update_buyside_mandate_match` with `review_state: in_pipeline` to save the deal to the pipeline (Interested on a direct listing).
Use `not_a_fit` for Not a fit, and `to_review` to undo.
If the deal has no mandate match, use `set_deal_interest` with `interested: true`.
Use `interested: false` to undo the unmatched-deal response.
Direct deal responses apply to sibling mandates for the same buyer and deal.
Read `materials_available` and `outreach_available` after each response.
Free buyers need an upgrade or a seller message that unlocks that shared deal.
Do not expose seller identity or recover missing material links from other sources.
For an eligible NDA, open `nda_submission.upload_link` in the dashboard.
The buyer downloads the NDA, signs it, and uploads the signed copy there.
The server reports `signature_method: download_re_upload` and `signed_at` after receipt.
This workflow does not provide electronic signatures or a file-upload MCP tool.

`get_deal` includes the dashboard `message_history` and `connected` state.
Message history is empty while deal materials are locked.
When connected and materials are open, `seller_contact` identifies the advisor who sent the message.
Use the dashboard link for file attachments and signed NDA uploads.
