PrivSource Buyside Mandates
Buyside mandate tools are buyer-side. They manage the authorized buyer account's own acquisition mandates — the criteria sellers browse when looking for buyers — and the deal matches PrivSource finds for published mandates. Drafts are private; publishing makes a mandate visible to seller accounts.
Workflow
- Call
privsource_whoami if unsure whether the account has buyside-mandates access.
- Call
list_buyside_mandates to find existing mandates before creating a new one. Filter with status (draft, published, archived).
- Call
create_buyside_mandate with a title to start a draft. Add criteria in the same call or later with update_buyside_mandate.
- Call
get_buyside_mandate and check publishable and missing_fields before publishing.
- Call
publish_buyside_mandate only when the user asks to publish and missing_fields is empty. Publishing makes the mandate visible to sellers, so confirm intent first.
Reviewing Deal Matches
PrivSource matches live deals against published mandates. Each mandate from list_buyside_mandates includes match_count, strong_match_count, to_review_count, and in_pipeline_count — use them to pick which mandate has matches worth reviewing.
- Call
get_buyside_mandate_matches with the mandate id. Matches come back ordered by fit with a score, a fit_band (strong or possible), an explanation, and a review_state. Filter with review_state (to_review, in_pipeline, not_a_fit); meta.review_state_counts shows the split.
- If
meta.matches_first_time_finding is true, PrivSource is still building the mandate's first matches — say matching is in progress rather than reporting that nothing matched.
- Each match includes a deal summary.
available: false means an engaged stale match remains visible for history but the deal is no longer on the market. direct_listing: true means the seller shared it directly; shared_by identifies that seller, and Direct Listings lead their fit band.
- Pass an available match's
deal.id to get_deal for full details; send_deal_outreach works on contactable deals.
- Use
update_buyside_mandate_match for Save, Not a fit, and undo, the same actions as the dashboard. It changes only the given match: review_state: in_pipeline saves the deal to the buyer's Pipeline (on a Direct Listing, Save tells the seller), not_a_fit passes on the deal and removes it from To Review, and to_review undoes either. For not_a_fit matches, set feedback_reasons, feedback_comment, or both. The sourcing agent uses them to decide what to bring back next.
- Saving to pipeline and hiding act for the whole buyer account, so confirm intent before changing review states in bulk.
- Use
bulk_review_buyside_mandate_matches to apply one review state to up to 50 matches of one live mandate, like the dashboard bulk action. If one match is locked or not on the mandate, nothing changes.
- Paid buyers can pass
sort (revenue or ebitda) with direction for to_review, and deal_type (all, direct_listing, sourced) outside in_pipeline. These are paid dashboard filters.
Not a fit reasons are too_small, too_big, wrong_location, wrong_industry, wrong_business_model, and already_seen. They match the dashboard chips. feedback_reasons replaces the stored list.
Pipeline Stages
Each saved match has a pipeline object. It is null for matches that are not saved.
stage: action_needed, waiting_on_seller, connected, cim_received, signed_loi, acquired, or closed. stage_label is the dashboard name.
closed_reason: passed, off_market, or under_loi when stage is closed.
editable: false when the deal is off market. Only signed_loi, acquired, and Closed off_market remain available then.
follow_up: present while stage is waiting_on_seller. It has waiting_since, available_on, available, requested_at, and report_back_by.
Call get_buyside_mandate_matches with review_state: in_pipeline to list saved deals in stage order. Add pipeline_stage to list one stage. meta.pipeline_stage_counts gives the count for each stage.
Move a deal with update_buyside_mandate_match and pipeline_stage. This is the same as the dashboard stage menu. Closed needs closed_reason: passed when the buyer is no longer interested, or off_market when the deal is no longer available. Save and set a stage in one call when the buyer already reached out: review_state: in_pipeline with pipeline_stage: waiting_on_seller.
send_deal_outreach moves saved Action needed matches to Waiting on advisor. A seller reply moves a Direct Listing to Connected. When a deal goes off market, PrivSource closes it. PrivSource never moves a deal to Signed LOI or Acquired; only the buyer does.
When follow_up.available is true, call request_buyside_mandate_match_follow_up if the buyer asks PrivSource to follow up.
This is the dashboard Nudge the advisor action. It needs a paid membership.
On a Direct Listing, the nudge emails the advisor a follow-up from the buyer at once.
Sourced deals, including relay deals and synced listings, use staff follow-up.
Each nudge needs a buyer request. The second nudge becomes available five business days after the first.
A repeat during the same wait returns the current state and sends nothing. The limit is two nudges per saved deal.
Use report_buyside_mandate_match_progress for the dashboard report buttons:
reached_out: the buyer contacted the advisor outside PrivSource. An unsaved deal is saved first.
connected: the advisor replied.
signed_nda: the buyer signed the NDA outside PrivSource. All saved matches for the deal record it.
passed: the buyer is no longer interested.
A report that already applies changes nothing.
Free accounts see their unlocked sourced deals. Other sourced matches appear as meta.sourced_deals counts with an upgrade_required action, not match rows.
Mandate Learnings
When the account has mandate learnings, get_buyside_mandate includes learnings and archived_learnings arrays from the buyer's match feedback. Each learning has these fields:
id: the identifier for update_buyside_mandate_learning.
dimension: the observable deal attribute (sector, geo, size, business_model, customer, or characteristic).
direction: the ranking effect (exclude, penalize, or boost).
rule: one declarative matching rule.
evidence_type: explicit for comments or implicit for behavior.
event_count: the number of supporting feedback events.
status: pending for a one-event signal or active after two or more supporting events.
observations and evidence_match_ids: the evidence summary and referenced matches.
learnings_analyzing is true while a refresh is running. Treat a pending learning as a weak signal.
Review active learnings before editing a mandate. Apply agreed changes with update_buyside_mandate.
Ignore a learning with update_buyside_mandate_learning and archived: true. Restore it with archived: false. These are the same actions as the dashboard.
Field Meaning
All criteria describe the companies the buyer wants to acquire.
min_revenue / max_revenue and min_ebitda / max_ebitda: target company financials in whole US dollars. Revenue bounds run from $10K to $500M and EBITDA bounds from $10K to $100M. Use the no_min_* / no_max_* booleans when the mandate explicitly has no bound, including a maximum above these limits; a minimum of 0 means no minimum. min_ebitda cannot exceed max_revenue.
industry_groups: the primary industry must come from the PrivSource mandate taxonomy (enumerated in the tool schema); each group takes optional sub_industries and a free-text niche. The array replaces the mandate's existing groups.
locations: PrivSource location names such as countries, U.S. regions, U.S. states, or Remote. The array replaces the mandate's existing locations.
industry_agnostic / no_geographic_preference: set these instead of industries/locations when the mandate has no preference.
description: the investment thesis; must be at least 100 characters before publishing.
Publish Requirements
Publishing requires a descriptive title, a 100+ character description, industry preferences (groups, agnostic, or exclusions), at least one revenue or EBITDA value, and geography (locations or no preference). Resolve missing_fields from get_buyside_mandate first.
Error Handling
- Use
archive_buyside_mandate and restore_buyside_mandate with id. Restore archived mandates before publishing.
- If a tool reports validation errors, fix the named fields and retry rather than guessing new values.
Feedback reasons and notes are only available for not_a_fit matches. Set the state and the feedback together, or edit existing feedback. pipeline_stage needs a saved match with full deal access.
Exports
Call get_buyside_mandate_matches_export with the mandate id.
The response returns the file directly in export.content. No browser sign-in is needed.
If encoding is base64, decode content to bytes. If it is utf-8, use the text directly.
Save the result using filename and content_type, or analyze the CSV text in the agent.
Check ready first. Unavailable exports return unavailable_reason without file content.
The CSV includes all dashboard review states and fixed columns. Paid buyer and Deal Network access are required.
dashboard_url is optional context. It is not required to get the file.
update_buyside_mandate rejects archived, including requests that also edit content.
Use archive_buyside_mandate or restore_buyside_mandate. Send content edits separately.
Refresh the tools or reconnect if your session still shows the old input.
Notifications and firm profile
get_buyside_mandate returns match_emails for each member of a published mandate.
Use set_buyside_mandate_match_emails with enabled to turn match emails on or off. The default member is the signed-in user.
Use get_buyer_firm_profile and update_buyer_firm_profile for the buyer firm profile, the same fields as the dashboard profile page.