MadeMarket
Search pipeline and deals
- Category
- Sales & CRM
- Primary Subcategory
- Investor & Deal-Flow Relationship CRM
Integration details
Description
Bring your deal data into ChatGPT. Search active mandates, pull target lists, review activity history, and check pipeline status, then turn that data into dashboards, deal summaries, status updates, and client-ready deliverables without leaving your conversation. Ask natural language questions about your deal flow, or have ChatGPT generate presentations and reports from your live MadeMarket data. Built for the next generation of dealmakers, MadeMarket's MCP server makes ChatGPT your always-on deal management co-pilot.
- Integration type
- Plugin
- Verification status
- Not applicable
- Platform
- ChatGPT
- Primary Subcategory
- Investor & Deal-Flow Relationship CRM
- Secondary Subcategories
- None listed
- Brand
- MadeMarket
- Access
- Account required
- First tracked
- 2026-09-19
- Tool count
- 37
- Geography
- US
The Primary Subcategory used for this profile’s headline score.
Other Subcategories where the Integration is listed.
Get alerts for MadeMarket
Get updates when MadeMarket’s Discoverability Score or category rank changes.
ChatGPT Plugin Discovery Score
ChatGPT Plugin discovery is coming soon
ChatGPT can surface a Plugin when it matches a user's request.Your Plugin Discovery Score measures how often yours appears.
No spam. Unsubscribe any time.
What discovery looks like

Competing in ChatGPT Investor & Deal-Flow Relationship CRM
View Category37 tools agents can invoke
Search opportunities (prospects, leads, potential deals, pitches) across the user's entire firm, using free-text query and/or structured filters. The query performs a free-text search across opportunity name, associated firm name, and contact names. Leave query empty and use filters to browse by criteria alone. Direct filter params (comma-separated IDs): stage_id_list, status_id_list, tier_id_list — filter by pipeline stage, status, or tier. IDs come from opportunity configuration. user_id_list — filter by opportunity owner(s). opportunity_firm_tag_ids — filter by tags applied to the opportunity's firm. Pass comma-separated tag IDs (e.g. "5,12"). opportunity_list_ids — filter to opportunities in specific lists. The `field` param uses the same dict structure as firms_search (numbered keys, each with id/operator/value/condition). This is for power users who know their custom field IDs. If `get_tool_instructions` hasn't been called in this chat/thread/conversation, call it first. Note: * 'is_incomplete' means the opportunity is missing at least one valid contact/email path, and does NOT pertain to the opportunity's status. To search for opportunities by their status (such as Active, etc), use the 'status_id_list' filter. Args: query: Free-text search across opportunity name, firm name, and contacts (leave empty to match all) page: Page number for pagination (default 1) per: Results per page (default 50, max 500) stage_id_list: Comma-separated stage IDs to filter by status_id_list: Comma-separated status IDs to filter by tier_id_list: Comma-separated tier IDs to filter by user_id_list: Comma-separated user IDs to filter by owner opportunity_firm_tag_ids: Comma-separated tag IDs to filter by opportunity_list_ids: Comma-separated list IDs to filter by is_incomplete: Filter to incomplete opportunities only (true/false) field: Structured field filter (same format as firms_search) sort: Sort field (e.g. "opportunities.updated_at") direction: Sort direction — "ASC" or "DESC"
opportunities_search_advanced
Expand one or more activity references to their full payloads. Results from `activities_search` carry `{activity_class, id}` handles. Pass them here (batched — a single handle is just a list of length 1) to retrieve full activity detail, including subject, summary, logged-email subject/body, and the keyed `related` object of parent entities. Handles you may not access (another firm's, or an inaccessible deal's) are silently dropped from the response. If `get_tool_instructions` hasn't been called in this chat/thread/conversation, call it first. Args: handles: A list of {"activity_class": str, "id": int} references, e.g. [{"activity_class": "Activity", "id": 123}, {"activity_class": "ProjectActivity", "id": 9}].
activities_get
Get a single contact (person, client, relationship, banker, investor, counterparty) by ID. If `get_tool_instructions` hasn't been called in this chat/thread/conversation, call it first. Args: contact_id: The ID of the contact to retrieve
contacts_get
Get the current authenticated user's profile and identity. Returns the MadeMarket user profile associated with this user. If `get_tool_instructions` hasn't been called in this chat/thread/conversation, call it first.
users_get_current
Get a single deal (transaction, engagement, mandate, M&A deal, aka project) by ID. NOTE: A *deal* is NOT the same thing as an *opportunity*. Do not confuse the two. Deals are active engagements representing the workflow for a possible transaction. To view the activity log for a deal, use `deals_search_activities` for target-level activities or `deals_search_project_activities` for deal-level activities. If `get_tool_instructions` hasn't been called in this chat/thread/conversation, call it first. Args: deal_id: The ID of the deal to retrieve
deals_get
Get the stage/status change history for a deal (transaction, engagement, aka project). If `get_tool_instructions` hasn't been called in this chat/thread/conversation, call it first. Args: deal_id: The ID of the deal to retrieve history for
deals_get_stage_status_history
Get the allowed picklist/dropdown values for a custom field (field values, metadata). Look up a field by its numeric ID or string name (ID takes priority). Returns the list of selectable values for that field, useful for understanding what values are valid in search filters. Exactly one of field_id or name must be provided. If `get_tool_instructions` hasn't been called in this chat/thread/conversation, call it first. Args: field_id: The field ID (from firms_list_fields, opportunities_list_fields, etc.) name: The field name (e.g. "stage", "status", "industry")
fields_get_list_values
Get a single firm (company, organization, portfolio company, target, acquirer, sponsor, client) by ID. If `get_tool_instructions` hasn't been called in this chat/thread/conversation, call it first. Args: firm_id: The ID of the firm to retrieve
firms_get
Get a single opportunity (prospects, leads, potential deals, pitches) by ID. If `get_tool_instructions` hasn't been called in this chat/thread/conversation, call it first. Args: opportunity_id: The ID of the opportunity to retrieve
opportunities_get
Get the stage/status change history for an opportunity (prospects, leads, potential deals, pitches) . If `get_tool_instructions` hasn't been called in this chat/thread/conversation, call it first. Args: opportunity_id: The ID of the opportunity to retrieve history for
opportunities_get_stage_status_history
Returns setup instructions, behavioral guidance, formatting rules, and sample workflows for all MadeMarket tools (contacts, firms, deals, opportunities, tasks, activities, fields, users). MUST be called once at the start of each conversation before calling any other MadeMarket tools. Do not call it again if it has already been called in the current conversation.
get_tool_instructions
List activity categories (interaction types, meeting types, call types, email types). Without parameters, returns all activity categories for the account. When project_id is provided, returns deal-specific activity categories (target-level categories like "NDA Sent", "CIM Sent", etc.) scoped to that deal. Use this to resolve `activity_category_id` values found in target-level deal activity records from `deals_search_activities`. Note: for deal-level (key contact), opportunity, or contact activity categories, use the entity-specific tools instead: `deals_list_activity_categories`, `opportunities_list_activity_categories`, or `contacts_list_activity_categories`. If `get_tool_instructions` hasn't been called in this chat/thread/conversation, call it first. Args: project_id: Optional deal/project ID to scope categories to a specific deal page: Page number for pagination (default 1)
activities_list_categories
Get valid activity categories (interaction types, meeting types, call types) for contacts. Returns entity-specific activity category definitions with full field metadata. Use this to lookup or discover activity types that can be logged against contacts. If `get_tool_instructions` hasn't been called in this chat/thread/conversation, call it first.
contacts_list_activity_categories
List contacts (people, clients, relationships) with pagination. If `get_tool_instructions` hasn't been called in this chat/thread/conversation, call it first. Args: page: Page number for pagination (default 1)
contacts_list
Get valid activity categories for deal-level (key contact) activities. Returns categories used by `deals_search_project_activities` results. Use this to resolve `activity_category_id` values from deal-level activity records. NOTE: For *target-level* deal activities (from `deals_search_activities`), use `activities_list_categories(project_id=<deal_id>)` instead — those activities use a different category system. If `get_tool_instructions` hasn't been called in this chat/thread/conversation, call it first.
deals_list_activity_categories
List custom-field definitions enabled for targets on a specific deal. Returns field metadata (id, name, label, data_type) and, where applicable, the allowed values for select/picklist/boolean fields. Use the returned field IDs with deals_search_targets's `field` parameter to filter targets by custom criteria. Note: target fields are configured per-deal, so a deal_id is required. If `get_tool_instructions` hasn't been called in this chat/thread/conversation, call it first. Args: deal_id: The ID of the deal whose target field definitions to list
deals_list_target_fields
List available filter values for a deal's targets — tags, tiers, and statuses. Returns three lists: tags — custom target tags (e.g. "Strategic Buyer", "Monthly Renewal", "Eligible for Price Increase") configured for the firm. These are the same tags visible on each target in deals_search_targets responses. tiers — target tier levels for this deal (e.g. "1", "2", "3") statuses — enabled target statuses for the firm (e.g. "Active", "Passed") Use the returned IDs with deals_search_targets's buyer_tag_id_list, tier_id_list, or status_id_list parameters to filter targets by those criteria. If `get_tool_instructions` hasn't been called in this chat/thread/conversation, call it first. Args: deal_id: The ID of the deal whose target filter values to list
deals_list_field_list_values
List *active* deals (aka projects) with pagination under the current user. If `get_tool_instructions` hasn't been called in this chat/thread/conversation, call it first. Args: page: Page number for pagination (default 1)
deals_list
List firm detail custom field definitions (metadata, picklist, dropdown fields). If `get_tool_instructions` hasn't been called in this chat/thread/conversation, call it first. Args: page: Page number for pagination (default 1)
firms_list_fields
List firms (companies, organizations) with pagination. If `get_tool_instructions` hasn't been called in this chat/thread/conversation, call it first. Args: page: Page number for pagination (default 1)
firms_list
List all opportunities (prospects, leads, potential deals, pitches) under the current user. Note: an *opportunity* is NOT a *deal*, do not confuse the two. Opportunities are the pre-deal workflow and can eventually convert into deals. If `get_tool_instructions` hasn't been called in this chat/thread/conversation, call it first. Args: sort: Optional sort field (e.g. "opportunities.updated_at", "opportunities.created_at")
opportunities_list
Get valid activity categories (interaction types, meeting types, call types) for opportunities. Returns entity-specific activity category definitions with full field metadata. Use this to lookup or discover activity types that can be logged against opportunities. If `get_tool_instructions` hasn't been called in this chat/thread/conversation, call it first.
opportunities_list_activity_categories
List opportunity custom-field definitions (metadata, picklist, dropdown fields) for the current firm. This can be used to lookup the values for IDs of custom fields, such as status, active users, client stage, financial priority, heat, marketing distribution, opportunity source, owner, tags, tier, transaction type, and more. Returns field metadata (id, name, label, data_type) and, where applicable, the allowed values for select/picklist fields. Use the returned field IDs with opportunities_search_advanced's `field` parameter or with fields_get_list_values to look up allowed values. If `get_tool_instructions` hasn't been called in this chat/thread/conversation, call it first.
opportunities_list_fields
List all users (team members, bankers) in the current firm. Use this tool to map user IDs to names, or to discover users attached to the current firm. If `get_tool_instructions` hasn't been called in this chat/thread/conversation, call it first.
users_list
Search activity (interactions, meetings, calls, emails, notes, touchpoints, logged outreach, "Passed" decisions, comments) across the ENTIRE firm — no deal, firm, opportunity, or contact id required. Use this to answer open-ended, cross-system questions such as "has anyone passed on a deal and cited AR aging as an issue?" Compose a structured filter; results come back as structured JSON, newest first. Each result carries an `{activity_class, id}` handle and `parents` (the deal/firm/contact/ opportunity it attaches to). Pass handles to `activities_get` to expand any hit to its full payload, or pass a parent's id to deals_get / firms_get / contacts_get / opportunities_get. When searching, the user may be looking for activities by category_id and/or a specific string in the activity description. Sometimes users are inconsistent with their data entry, and may enter an activity in the description field, but not set the correct category ID. Conversely, users may enter a category ID but not set the correct activity description. Both of these queries, run separately, may return records responsive to their search terms, and you can avoid returning incomplete results by checking both fields separately. (However, be sure that hits on the description field are actually relevant to the user's query.) If `get_tool_instructions` hasn't been called in this chat/thread/conversation, call it first. Args: query: Free-text search on activity description/subject (and logged-email subject/body). category_ids: Filter deal/target activities to these activity-category ids (e.g. the "Passed" category). Use deals_list_activity_categories to discover ids. activity_types: Power-user passthrough of coarse type tokens (comma-separated). include_activity_classes: Result scope. Defaults to the five activity classes (Activity, ContactActivity, FirmDetailActivity, OpportunityActivity, ProjectActivity). Pass "all" to also include comments, or an explicit subset. project_ids: Restrict to specific deals (re-scoped to your firm). opportunity_ids: Restrict to specific opportunities (re-scoped to your firm). firm_detail_id: Restrict to a single firm (must be owned by your firm). contact_ids: Restrict to specific contacts (re-scoped to your firm). user_ids: Comma-separated user ids to filter by activity creator. start_date: ISO date for range start (e.g. "2025-01-01"). end_date: ISO date for range end (e.g. "2025-12-31"). detail: "compact" (default — lean fields + handle + parents + description) or "full" (adds subject, summary, email, and a fully-keyed related object inline). page: Page number for pagination (default 1). per: Results per page (default 25, max 100).
activities_search
Get activities (interactions, meetings, calls, emails, notes, touchpoints) for a contact with pagination and optional filters. If `get_tool_instructions` hasn't been called in this chat/thread/conversation, call it first. Args: contact_id: The contact ID additional_contact_ids: Comma-separated extra contact IDs for multi-contact lookup page: Page number for pagination (default 1) limit: Results per page (default 5) start_date: ISO date for range start (e.g. "2025-01-01") end_date: ISO date for range end (e.g. "2025-12-31") activity_types: Comma-separated activity types to filter by (e.g. "email,call") user_ids: Comma-separated user IDs to filter by activity creator query: Free-text search on activity description/subject project_ids: Filter to activities for specific deals opportunity_ids: Filter to activities for specific opportunities include_activity_classes: Filter to specific activity class types. Useful presets: Deal-related: ["Activity", "ProjectActivity", "ProjectStatusHistory", "Comment", "ProjectComment"] Opportunity-related: ["OpportunityActivity", "OpportunityStatusHistory", "OpportunityComment"]
contacts_search_activities
Get incomplete tasks (to-dos, action items, follow-ups) for a contact. If `get_tool_instructions` hasn't been called in this chat/thread/conversation, call it first. Args: contact_id: The contact ID
contacts_search_tasks
Search/autocomplete contacts (people, clients, relationships, bankers, investors, counterparties) by name, email, or firm. This is a free-text search endpoint (not field-based). The query matches against contact name, email, firm name, and title. Returns up to 10 results ranked by relevance. If `get_tool_instructions` hasn't been called in this chat/thread/conversation, call it first. Args: q: Free-text search query (matches against contact full name, email, firm name, and title) firm_detail_id: Filter results to contacts belonging to a specific firm contact_ids: Comma-separated contact IDs to exclude from results distribution_id: Filter to contacts who received a specific distribution
contacts_search
Get deal-level activities for a deal (activities not tied to a specific target). These are activities logged at the deal level itself, such as general deal notes, status updates, or internal discussions about the engagement. For target-level activities (tied to individual buyers/targets), use `deals_search_activities` instead. If `get_tool_instructions` hasn't been called in this chat/thread/conversation, call it first. Args: deal_id: The ID of the deal to retrieve project activities for page: Page number for pagination (default 1) per: Number of results per page (default 10)
deals_search_project_activities
Get target-level activities for a deal (interactions logged against individual buyers/targets). These are activities tied to specific targets on the deal, such as NDA tracking, CIM sends, or meetings with individual buyers. For deal-level activities not tied to a specific target, use `deals_search_project_activities` instead. If `get_tool_instructions` hasn't been called in this chat/thread/conversation, call it first. Args: deal_id: The ID of the deal to retrieve activities for page: Page number for pagination (default 1) per: Number of results per page (default 10)
deals_search_activities
Search and filter targets (buyers/investors) on a deal using free-text query and/or structured filters. The query performs a free-text search on target firm name. Leave query empty and use filters to browse by criteria alone. Each target in the response includes a `firm_buyer_tags` array of `{id, name}` objects showing which tags are assigned to that target. Direct filter params (comma-separated IDs): status_id_list — filter by target status (e.g. Active, Passed). tier_id_list — filter by target tier. buyer_tag_id_list — filter by target tags. To discover available tag names and their IDs, call `deals_list_field_list_values` first. user_id_list — filter by assigned users. Use `deals_list_target_fields` to discover custom field IDs for a deal, then pass them via the `field` param (same dict structure as firms_search / opportunities_search_advanced): {"0": {"id": "<field_id>", "operator": "is", "value": "yes", "condition": "AND"}} If `get_tool_instructions` hasn't been called in this chat/thread/conversation, call it first. Args: deal_id: The ID of the deal whose targets to search query: Free-text search on target firm name (leave empty to match all) page: Page number for pagination (default 1) per: Results per page (default 50, max 500) status_id_list: Comma-separated status IDs to filter by tier_id_list: Comma-separated tier IDs to filter by buyer_tag_id_list: Comma-separated tag IDs to filter by (call deals_list_field_list_values to discover available tags) user_id_list: Comma-separated user IDs to filter by assigned user field: Structured field filter (same format as firms_search) sort: Sort field for ordering results direction: Sort direction — "ASC" or "DESC"
deals_search_targets
Search for all deals (aka projects) by name across the user's entire firm. Results here may belong to any user under the current user's firm. This is a simple name-based search. It first attempts an exact match (case-insensitive), and if no exact match is found, falls back to a wildcard/substring match limited to 10 results. If `get_tool_instructions` hasn't been called in this chat/thread/conversation, call it first. Args: name: Deal/project name to search for (case-insensitive)
deals_search
Get activities (interactions, meetings, calls, emails, notes, touchpoints, outreach) for a firm with pagination and optional filters. Note: Activities for a ProjectBuyer (such as those logged against a deal) can be searched here, if you first lookup the corresponding FirmDetail ID for the ProjectBuyer. If `get_tool_instructions` hasn't been called in this chat/thread/conversation, call it first. Args: firm_id: The firm_detail ID page: Page number for pagination (default 1) limit: Results per page (default 10) start_date: ISO date for range start (e.g. "2025-01-01") end_date: ISO date for range end (e.g. "2025-12-31") activity_types: Comma-separated activity types to filter by (e.g. "email,call") user_ids: Comma-separated user IDs to filter by activity creator query: Free-text search on activity description/subject project_ids: Filter to activities for specific deals opportunity_ids: Filter to activities for specific opportunities include_activity_classes: Filter to specific activity class types. Useful presets: Deal-related: ["Activity", "ProjectActivity", "ProjectStatusHistory", "Comment", "ProjectComment"] Opportunity-related: ["OpportunityActivity", "OpportunityStatusHistory", "OpportunityComment"]
firms_search_activities
Get incomplete tasks (to-dos, action items, follow-ups) for a firm. If `get_tool_instructions` hasn't been called in this chat/thread/conversation, call it first. Args: firm_id: The firm detail ID
firms_search_tasks
Search firms (companies, organizations, portfolio companies, targets, acquirers, sponsors) by structured field filters, covering both standard and customer-defined custom fields. This is a FIELD-BASED filter, not a free-text search: every filter targets a specific field by its numeric ID. Field IDs vary by account, so call firms_list_fields first to discover the available fields and their IDs. Representative system field names (the actual IDs come from firms_list_fields): name, city, state_abbrv, country, phone_number, email, url, about, stage, firm_industry_id, annual_revenue, annual_ebitda, employees_count, year_founded, firm_detail_object_tags, firm_detail_lists, firm_relationships, created_at, updated_at, last_interaction_at, is_public_company, contact_count How to build the `field` filter: `field` is a dict whose keys are sequential strings ("0", "1", "2", ...). Each value is one condition with these properties: - id: field ID (integer, from firms_list_fields) - operator: "is", "not", "contains", "greater", "less", "blank", "blank_not", "before", "after", or "radius" - value: the value to match (see "Setting value" below), must be a string - condition: "AND" or "OR" — how this condition combines with the others. All "AND" returns firms matching every condition; "OR" returns firms matching any. Setting value: - One value: a string or number, e.g. "Acme" or 42. - Several values for a SINGLE field (matches ANY of them): a JSON array, e.g. [5, 12]. Do NOT pass several IDs as one comma-separated string such as "5,12" — that is read as a single literal value and matches nothing. Filtering by tag (firm_detail_object_tags): Find the "firm_detail_object_tags" field ID via firms_list_fields, then use operator "is" with the tag ID(s) as the value: - Firms with ANY of several tags — one condition, value = array of tag IDs: {"0": {"id": <tags_field_id>, "operator": "is", "value": [5, 12], "condition": "AND"}} - Firms with ALL of several tags — one condition per tag, combined with "AND": {"0": {"id": <tags_field_id>, "operator": "is", "value": [5], "condition": "AND"}, "1": {"id": <tags_field_id>, "operator": "is", "value": [12], "condition": "AND"}} Filtering by list membership: Use `firm_detail_list_id` to restrict to firms in a single list, or the "firm_detail_lists" field within `field` for more complex list conditions. If `get_tool_instructions` hasn't been called in this chat/thread/conversation, call it first. Args: page: Page number for pagination (default 1). per: Results per page (default 10). The server enforces a minimum of 50 and a maximum of 500. firm_detail_ids: Comma-separated firm detail IDs to restrict the search to specific firms (e.g. "101,202,303"). firm_detail_list_id: Restrict to firms belonging to a single firm list. field: Structured field filter — see "How to build the `field` filter" above. sort: Field to sort by (e.g. "firm_details.name"). direction: Sort direction — "ASC" or "DESC".
firms_search
Search for opportunities (prospects, leads, potential deals, pitches) by name across the user's entire firm. This is a simple name-based search. It first attempts an exact match (case-insensitive), and if no exact match is found, falls back to a wildcard/substring match limited to 10 results. For advanced filtering by stage, status, tier, owner, tags, or custom fields, use opportunities_search_advanced instead. If `get_tool_instructions` hasn't been called in this chat/thread/conversation, call it first. Args: name: Opportunity name to search for (case-insensitive; leave empty to list all) page: Page number for pagination (default 1)
opportunities_search
Search for tasks (to-dos, action items, follow-ups, deadlines) with optional filters. Returns tasks ordered by due date (ascending). Results are firm-wide; filtering by deal/project is not supported. If `get_tool_instructions` hasn't been called in this chat/thread/conversation, call it first. Args: status_ids: Integer status ID (or array of IDs) to filter by. Valid values: 301 (incomplete/open), 300 (complete). There is no "overdue" status; overdue tasks are open tasks whose due date is in the past. user_id: Filter to tasks assigned to a specific user name: Filter to tasks matching an exact name
tasks_search
How do I improve a ChatGPT Plugin's discoverability?
The levers are the listing surface agents actually read: names, descriptions, keywords, tool metadata, and registry health. Which lever matters depends on where discovery breaks, which is what continuous measurement shows.
What are MadeMarket alternatives on ChatGPT?
As of 2026-09-21, MadeMarket competes with 4Degrees, 4Degrees - KSA, Affinity, Rings AI in ChatGPT Investor & Deal-Flow Relationship CRM, ranked by public Discoverability Score.
Where is this profile measured?
This profile uses the geography attached to the latest public registry snapshot: US. Locale tags are intentionally omitted.