MCP App Store
Business
Meticulate icon

Meticulate

by Sales Armada, Inc.

Overview

Meticulate helps sales and go-to-market teams research companies directly in ChatGPT. Upload a company list or describe the accounts you care about, then identify companies, find similar targets, pull key business details, and answer structured research questions across accounts.

Tools

add_companies_to_list

ChatGPT
Add companies to an existing company list. Uses standard company IDs from company search or existing company rows. REQUIRES POLLING: call get_lists or get_companies with company_filters.list_id after waiting.

add_customer_story

ChatGPT
Add one live customer story. Call get_config(requested_field='customer_stories') first when you need to inspect existing story labels and avoid duplicates.

add_people_to_list

ChatGPT
Add existing org people to a people list.

approve_proposal

ChatGPT
Approve a proposal so Meticulate can send it. Use edit_proposal first if the user asked to change the proposal before approval. This approves one sequence and may nullify superseded sequences for the same person, matching app behavior.

create_calibration_session

ChatGPT
Create a Calibration Studio session. Use get_options first when you need IDs for the owner, sequence format, ruleset, style, event play, or context play. Choose focus.type based on what the user wants to work on: core_configs for company targeting, person targeting, or messaging setup; build_style for drafting style changes; event_play for event-based messaging; context_play for reusable messaging ideas. Use send_calibration_chat_message for AI-assisted edits after creation. For core_configs, enable at least one of company_targeting, person_targeting, or messaging. REQUIRES POLLING wait_for_calibration_session when session_mode is simulate_current_setup.

create_company_list

ChatGPT
Create a company list. std_co_ids are optional. When provided, companies are added through the same background path as the app. REQUIRES POLLING when std_co_ids is non-empty: call get_lists or get_companies with company_filters.list_id after waiting.

create_people_list

ChatGPT
Create a people list and optionally add existing org people.

create_topics

ChatGPT
Create new topic definitions for the organization. IMPORTANT: Before creating topics, call list_topics first to check if a matching topic already exists. Reuse existing topic IDs instead of creating duplicates. Topics are custom research questions that get answered for each company using AI analysis of public data. Each topic requires: - display_name (str): human-readable name for the topic - instructions (dict): defines the question and output format. Must include a 'format' key set to one of the formats below, plus format-specific fields: score: Rate companies 0-5 on a question. - question (str, required): the scoring question - guidance (str, optional): extra context for the scorer - rubric (dict, optional): keys 'zero' through 'five', each a string describing what that score means. Each level should be specific enough that two independent reviewers would assign the same score. number: Estimate a numeric value (e.g. location count, revenue). - stat_to_estimate (str, required): what number to estimate. Include the unit when values span wide ranges (e.g. "Annual revenue in millions of USD"). - guidance (str, required): how to estimate it — what sources to check, what proxies to use - integers_only (bool, optional, default false) singleselect: Classify into one mutually exclusive category. - question (str, required): the classification question. Frame as "Does this company do X?" for targeted detection rather than "What does this company do?" for better accuracy on large companies. - options (list, required): each {id: str, label: str, description?: str}. Each option's description (10-15 words) should specify observable signals that differentiate it from other options. - allow_none_of_the_above (bool, required): set true if companies might not fit any option multiselect: Tag with one or more non-exclusive labels. - question (str, required): the classification question - options (list, required): each {id: str, label: str, description?: str}. Descriptions should clarify what evidence qualifies a company. text_output: Free-text answer for open-ended research. - question (str, required): the question to answer - example_format (str, optional): example of the desired answer format, showing structure and level of detail expected Optional fields (defaults provided if omitted): - info_to_use: dict specifying what data sources the AI uses to answer. Keys: topic_ids (list[str]): other topic IDs whose answers to include as context. Use sparingly — each dependency adds recomputation cost. standard_elements (list[str]): data sources to feed in. Pick 1-4 that are relevant to the question: - 'basic_firmographics': company size, funding, location, industry, business model, offerings, customer segments. Sufficient for most classification questions. - 'tech_detections': technologies the company uses - 'job_listings': current job postings - 'employee_roles': employee titles and departments - 'sec_reports_transcripts': SEC filings and earnings calls - 'co_linkedin_posts': company LinkedIn activity - 'new_joiners': recent hires - 'landing_page': company website content, product positioning. Add only when the topic needs detail beyond basic_firmographics. websearch_volume (int): number of web searches to run (0 = none). Reserve for topics that need recent news, partnerships, or events. Defaults to empty (basic firmographic info only). - run_conditions: dict controlling when the topic is generated. Defaults to {generate_when_requested: true}. Returns the list of newly created topics with their assigned IDs.

edit_proposal

ChatGPT
Edit a proposal sequence. First call get_proposals with requested_fields=['steps'] to get step IDs. Pass only the fields to change. message edits email bodies or LinkedIn text; subject edits email subjects; guidance edits phone call guidance. This saves the proposal but does not approve it.

find_people

ChatGPT
Find prospects at selected companies and match them to org-defined persona fits. Use this after get_companies, get_company_searches, or a company list gives you standard company IDs. Pass org_personas_to_find when the user asks to find existing target personas, persona fits, buyers, prospects, or the right people at a company. Use custom_persona_to_find only when the user gives a new freeform persona that is not one of the org's configured personas. Do not invent a custom_persona_to_find for broad requests like "persona fits" or "decision-makers"; use the org's configured personas. If the user seems to want a custom profile but has not specified it clearly, ask them to confirm the custom persona before running. Add found people to exactly one destination: either an existing people list via people_list_id, or a new people list via people_list_title. REQUIRES POLLING: call get_people with person_filters.list_id or get_lists(type='person') using the returned people_list_id.

find_similar_companies

ChatGPT
Find companies similar to a given company using vector similarity. Takes a reference company's standard ID (from recognize_companies or search_companies) and finds companies with similar semantic profiles (business model, offerings) via embedding similarity. Important: results get broader/noisier at higher volumes. At limit=20 you get close matches; at limit=100+ you'll see adjacent-market companies that share some overlap but aren't direct competitors. For large competitor lists, combine this with search_companies using a specific description of the reference company's niche for better precision. The reference company itself may appear in results — filter it out if needed. Filter fields (all optional) narrow the results: - employee_min/employee_max, year_founded_min/year_founded_max - hq_country (list of 2-letter ISO country codes, e.g. ['US']) - ownership_types, estimated_revenue_min/estimated_revenue_max - limit: max results (default 20, max 500) Returns a list of standard company IDs (UUIDs as strings). Use get_basic_company_info to fetch details for these IDs.

get_basic_company_info

ChatGPT
Get basic firmographic information for a list of companies by their IDs. Takes standard company IDs (UUIDs as strings) from recognize_companies, search_companies, or find_similar_companies. Pass all IDs in a single call — the tool handles batching internally and is more efficient than multiple separate calls. Returns company data including: - name, domain, company_type (private/public) - employee_guess, employee_min, employee_max, employee_count_90day_growth - revenue_min, revenue_max (USD) - year_founded - hq_country, hq_region, hq_metro - linkedin_followers, linkedin_followers_90day_growth - tags (industry/vertical labels) - web_traffic, hype_rating, product_score Use this for quick lookups, comparisons, and filtering. For custom analytical questions not covered by these fields, use create_topics and run_topics_on_companies instead. Returns null for company IDs not found.

get_calibration_session

ChatGPT
Read one Calibration Session. For readiness/review questions, prefer review_calibration_session. Use get_calibration_session when you need one specific piece of a session: status/latest_runs for progress and latest result pointers; messages/chat_history for the visible session conversation; working_config/base_config/diff with runbook for one editable config area; working_config_search with query to find text in working configs; simulation_results with surface for one paginated simulation-result set; calibration_summary only when the full summary text is needed. Broad working_configs/base_configs are supported, but can be large. Avoid broad combined reads for normal review workflows. For simulation_results, pass surface to choose company_targeting, person_targeting, or messaging. Use limit and offset to page through simulation result entries; those pagination parameters only apply to simulation_results. Pass run_id only when inspecting a specific run instead of the latest run for that surface.

get_calibrations

ChatGPT
Discover recent Calibration Sessions. Use this first for recent/latest/most relevant calibration sessions, then call get_calibration_session with the chosen session_id for details. requested_fields can include calibration_summary and run_summaries. Enriched calibration-list requests are capped at limit <= 3.

get_companies

ChatGPT
Read companies in an org. requested_fields can include standard_company, company_info, people, signals, exclusion, notes, heat_score, detailed_topic_answers, targeting_qa, account_research, and people_finding. Default rows are designed for broad targeting review: company identity, min-criteria status, targeting state, overview.icps, lightweight firmographics, and overview.topic_answers with one compact value per configured company topic. Use requested_fields=["targeting_qa"] when you need fit/non-fit reasons, ICP pass/fail details, and min-criteria context. Requested fields add nested sections and capped evidence. Heavy enriched company requests are capped at limit <= 3. Use company_filters to narrow by CRM, ICP/min-criteria, lists, owners, prospecting state, exclusions, company IDs, names, or topic answers. Omit it when no filtering is needed. count is the total matched row count; pagination.returned_count is the number of rows returned on this page. Default sorting prioritizes companies that look more outbound-ready over alphabetical edge cases.

get_company_searches

ChatGPT
Read saved Company Searcher searches and optionally include result pages. Without results, each search is returned as metadata with no result count. With results, count_accuracy indicates whether the count is exact, estimated, or capped.

get_config

ChatGPT
Read one area of an org's configuration. Choose exactly one requested_field per call: enterprise, company_targeting, person_targeting, rulesets, styles, guidance_notes, customer_stories, or calibration. Use compact detail for review/audit questions. Use full detail only when the user needs the complete text or structured body for that one area. The enterprise field returns org/business and operational settings. company_targeting returns min criteria, company topics, ICPs, and company search recommendations. person_targeting returns personas, person topics, and person targeting filters. The customer_stories field returns live customer-story collateral. The calibration field returns the org-level calibration summary and log. Full rulesets/styles can be long, so their blocks are paged per item with block_offset and block_limit. Start with block_offset=0 and continue while any returned item has has_more_blocks=true.

get_interactions

ChatGPT
Read sent and received prospect interactions. Use this for recent outbound activity, replies, prior touches, event/context-play usage, and account history. Returns subject/body previews and guidance-note labels when available. By default this only returns interactions associated with Meticulate prospecting. Set include_unassociated=true only when explicitly debugging raw CRM/mailbox records outside Meticulate workflows.

get_lists

ChatGPT
Read person or company lists for an org. Use limit and offset for pagination.

get_options

ChatGPT
Read lightweight setup options. Use this when you need IDs or labels for owners, sequence formats, rulesets, styles, event plays, context plays, locations, CRM owners, or outbounding accounts. Returns lightweight details only. Use get_config when you need full ruleset, style, event play, or context play details.

get_people

ChatGPT
Read people in an org. Default rows include the person's core profile/contact fields. requested_fields can add company_info, interactions, signals, current_sequence, proposal, outbounding_plan, exclusion, notes, persona_fit, topic_answers, and guidance_notes. Requested fields add compact nested sections and capped evidence; enriched people requests are capped at limit <= 5. Use person_filters and company_filters to narrow by CRM, lists, owners, personas, titles, location, contact data, prospecting state, heat score, exclusions, ICP/min-criteria, or topic answers. Omit filters when no filtering is needed. count is the total matched row count; pagination.returned_count is the number of rows returned on this page.

get_product_doc

ChatGPT
Read one product detail doc by slug. Use when the Overview names a relevant detail slug and more detail is needed for guidance. If the slug is unknown, this returns the valid detail slugs.

get_product_overview

ChatGPT
Read the product Overview doc. Call this before answering user questions to decide how Meticulate can help with the user's goal. Use the Overview to route the answer through the relevant Meticulate workflow, page, config, org data, or tool. If more detail is needed about a specific product area, call get_product_doc with the relevant slug from the Overview before answering.

get_product_qa_examples

ChatGPT
Read example product questions and answers. Use this after the product Overview when the user needs guidance, explanation, interpretation, or help choosing how to use Meticulate. Skip it for straightforward requests that only require reading or changing clearly identified org data.

get_proposals

ChatGPT
Read proposal/action sequences. Use this for pending proposals, approved sequences, queued sequences, active drafting, aborted, or nullified sequences. status='drafting' includes both queued and in-progress drafting; status='queued' and status='in_progress_drafting' split them apart. sequence_ids reads exact sequences and is the polling surface for proposal redrafts; omit status when polling exact sequence_ids unless the user asked for a specific status. Filter by guidance_note_ids for event/context-play usage. Date filters apply to time_queued, time_finished_drafting, or approved_at. requested_fields can include steps and warnings; when present, full records are returned in sequences in addition to compact objects. Use person_filters and company_filters to narrow by people/company properties. list_id is a shortcut for filtering to one people list. Enriched proposal requests are capped at limit <= 25.

get_topic_answers

ChatGPT
Get topic answer results for companies. Takes a list of standard company IDs and topic IDs (UUIDs as strings). Returns only answers for the specified topics. Returns: - overall_status: 'complete' or 'computing' - results: list of per-company results, each with: - company_id: the requested company ID - topic_answers: list of {topic_id, value, computing_status, format} - next_step (only when computing): instructions to sleep then retry If overall_status is 'computing', follow the next_step instructions: run the sleep script in Code Interpreter, then call this tool again with the same parameters. Keep repeating until complete — do NOT stop unless the user tells you to.

list_topics

ChatGPT
List all topic definitions for the organization. Returns a list of topics, each with id, display_name, format, and instructions. Topics define custom research questions that can be run on companies.

recognize_companies

ChatGPT
Identify and normalize companies from names, websites, or LinkedIn URLs. Use this as the first step when you have company names or URLs and need to resolve them to standard IDs for use with other tools. Each item in the list should have at least one of: name, website, linkedin_url. Optionally include 'description' to improve matching accuracy when only a name is provided. Returns a list of results, each containing: - recognized_id: the standard company UUID (or null if not found) - recognized_domain: the company's primary domain (or null) - recognition_type: EXACT_MATCH, REDIRECT, DIFFERENT_DOMAIN, NOT_FOUND, etc. The recognized_id can then be passed to get_basic_company_info, find_similar_companies, or run_topics_on_companies.

remove_companies_from_list

ChatGPT
Remove companies from a company list.

remove_customer_story

ChatGPT
Remove one live customer story. Target exactly one story by story_label or zero-based story_index. Call get_config(requested_field='customer_stories') first when you need current labels or indexes.

remove_people_from_list

ChatGPT
Remove people from a people list.

rename_company_list

ChatGPT
Rename a company list.

rename_people_list

ChatGPT
Rename a people list.

request_proposal_redraft

ChatGPT
Request AI redrafts for proposal sequences. This creates replacement proposal drafts and immediately nullifies existing unapproved proposals for the selected people. Pass sequence_ids for exact proposals when available. Otherwise pass universe_person_ids to redraft each person's current pending proposal. REQUIRES POLLING: call get_proposals with sequence_ids from this response.

review_calibration_session

ChatGPT
Review whether a Calibration Session is ready to make live. Use this for analyst-style Calibration Studio review. It returns a compact bundle for each requested surface: session status, dirty/made-live state, working-copy diff summary, latest simulation pointer, metrics, stale/no-entry warnings, and failed examples with denormalized subject details. Prefer this over broad working_configs/base_configs/ simulation_results when the user asks what changed, whether tests improved, what still fails, or whether the session is ready to make live. surfaces defaults to company_targeting, person_targeting, and messaging.

run_calibration_simulation

ChatGPT
Run tests/simulations for the current Calibration Session. Use this when the user asks to simulate, run tests, or validate the current session without asking for another edit. After this returns, call wait_for_calibration_session before judging results. If the session is still running, call wait_for_calibration_session again; try at least 3 waits before giving up unless the user asked not to wait.

run_topics_on_companies

ChatGPT
Run specific topics on companies. Processing happens asynchronously and can take 30-120 seconds per company depending on topic count and data sources. Args: - company_ids: list of standard company UUIDs as strings (from recognize_companies, search_companies, or find_similar_companies) - topic_ids: list of topic UUIDs as strings (from list_topics or create_topics) IMPORTANT: Always call list_topics first to get existing topic IDs. Only call create_topics if no existing topic matches the question. Companies are automatically added to the organization's universe if not already present. Immediately marks the requested topic answers as "computing" in the database and returns. The actual computation runs in the background. IMPORTANT: After this returns, follow the next_step instructions in the response. You must run the sleep script in Code Interpreter, then poll get_topic_answers. Keep repeating until overall_status is 'complete'. Do NOT stop unless the user tells you to. Returns: - results: per-company status ('initiated' or 'invalid_company_id') - next_step: instructions for polling (includes sleep script and parameters)

search_companies

ChatGPT
Search for companies by semantic description and/or filters. Use this to discover companies in a market or industry. Combines semantic similarity search (what the company does) with firmographic filters. Semantic search fields (at least core_business is required): - core_business: what the company does, its industry or market (required) - main_offerings: specific products, services, or solutions they provide - customers: who they sell to — industries, segments, or buyer types - tech_innovations: technologies they build or use Be specific with semantic fields for better results. For example, "cloud GPU infrastructure for AI model training" is much better than "technology company". Filter fields (all optional): - employee_min/employee_max: employee count range - year_founded_min/year_founded_max: founding year range - hq_country: list of 2-letter ISO country codes (e.g. ['US'], ['US', 'CA', 'GB']) - ownership_types: list of company types (e.g. 'private', 'public') - estimated_revenue_min/estimated_revenue_max: revenue range in USD - limit: max results (default 20, max 500) Returns a list of standard company IDs (UUIDs as strings). Use get_basic_company_info to fetch details for these IDs.

send_calibration_chat_message

ChatGPT
Send a message to a Calibration Session's AI assistant. This submits chat or edit work and returns before the assistant finishes. send_mode controls behavior: chat asks a question, edit_only asks for an edit without tests, and edit_and_test asks for an edit followed by tests. To test current changes without another edit, use run_calibration_simulation. After this returns, call wait_for_calibration_session before judging results. If the session is still running, call wait_for_calibration_session again; try at least 3 waits before giving up unless the user asked not to wait.

update_calibration_working_config

ChatGPT
Replace one editable working-config slice in a calibration session. runbook can be ctr, ptr, ruleset/prr, style/psr, guidance_notes, customer_stories, mrr, or messaging_concepts. The payload must be the full replacement object/list for that slice, not a patch or natural-language edit request. Prefer send_calibration_chat_message for AI-assisted edits. The tool validates the payload, applies the same edit-mode and session ownership gates as Calibration Studio, updates dirty_runbooks, and returns the updated slice plus a compact top-level diff.

update_customer_story

ChatGPT
Update one live customer story. Target exactly one story by story_label or zero-based story_index. This edits live customer-story collateral only; use Calibration Studio for broader messaging or targeting changes. Call get_config(requested_field='customer_stories') first when you need current labels, indexes, or contents.

update_org_calibration_summary

ChatGPT
Write the org-level calibration summary for an org. This updates only calibration_configs.calibration_summary for the resolved org. It does not update any specific Calibration Session and must not be used for any other config fields.

wait_for_calibration_session

ChatGPT
Wait briefly for Calibration Session work to finish. Use after send_calibration_chat_message or run_calibration_simulation. It returns when the session is no longer busy or when max_wait_seconds elapses. If is_terminal=false, call this tool again; try at least 3 waits before giving up unless the user asked not to wait. If you stop waiting while the session is still running, explicitly tell the user to ask again in a bit for the result after the session finishes.

App Stats

46

Tools

0

Prompts

May 12, 2026

First seen

ChatGPT

Platforms

Works with

ChatGPT

Data refreshed daily