--- name: brandwell-marketpulse description: "Find the people researching what the client sells with MarketPulse: set it up from who the client sells to, answer questions about their audience (how many have a phone, an email or LinkedIn), change the ICP and apply it to their audience, add a topic or scan one now, schedule Intent Scans, narrow the audience by a saved ICP, download a feed's audience, generate, read and share Intent Scans, and check what the plan has left. Use when the person says who they sell to, asks about their audience or buyers, who is in market, their topics, ICP, Intent Scans or MarketPulse limits, or asks what you can do in MarketPulse." allowed-tools: marketpulse_suggest_icp marketpulse_create_icp marketpulse_update_icp marketpulse_buyers marketpulse_start_pull marketpulse_list_icps marketpulse_list_feeds marketpulse_list_audiences marketpulse_guarantee marketpulse_get_usage intent_search intent_get_daily_buyers marketpulse_set_default_icp marketpulse_search_topics marketpulse_create_feed marketpulse_update_feed marketpulse_pause_feed marketpulse_export_audience marketpulse_list_demand_scans marketpulse_get_demand_scan marketpulse_generate_demand_scan marketpulse_demand_scan_link marketpulse_email_demand_scan account_plan_status onboarding_status onboarding_start_task metadata: title: "BrandWell MarketPulse" service: marketpulse page: "#/reports" --- # BrandWell MarketPulse Goal: show the person who is in market for what they sell, narrowed to the people they actually want, using only this client's MarketPulse data, and do for them anything the MarketPulse page does. How MarketPulse works today (say it this way; anything older no longer applies): - Audiences holds project people. A topic sheet starts with its full scan; saved filters narrow it only when selected. Topics is the second tab: each topic with its Intent Scans and schedule, and the Intent Scans the plan has left now. - Say it as the page does: the list is their audience and the people on it are people (one person). Never call them buyers, even when the person does. - The ICP is changed in place, with Filters on the Audience or by you, and applying it filters the people already found again. Applying uses no Intent Scan. Never make a new ICP when the person asks to change theirs. - Any topic in the catalog can be scanned. Nothing needs BrandWell's approval and nothing is unlocked by support; funnel topics are suggestions, not a list to choose from. Never tell the person to ask BrandWell to approve or unlock a topic. - An Intent Scan uses one of the plan's Intent Scans; topics themselves are not limited. Each plan includes a number of Intent Scans a month, counted across the account's projects, and scanning a topic again counts too. Describe a plan by its topics and Intent Scans a month, never as a daily or weekly refresh or feed: marketpulse_get_usage gives the plan's Intent Scans a month (plan.topic_pulls_per_month) and this month's used (usage.topic_pulls). Intent Scans also have a window: Starter one a day until its 10 monthly Intent Scans are used, Growth three a day and Scale ten a day (a day ends at midnight in the account timezone); pull_allowance says how many can start now and when more open. Mention the window only when it is the limit that stops an Intent Scan. An Intent Scan the plan does not cover is refused before it starts and never charged. Starter supports daily schedules, with one Intent Scan a day until its 10 monthly cap is reached. - When the person asks what you can do here: set MarketPulse up from who they sell to, answer questions about their audience, change their ICP and apply it, add or scan topics, schedule Intent Scans, and say what their plan has left. Setting up MarketPulse (a new customer, or "set up MarketPulse", "help me get started"): Lead the setup yourself. The person should learn what an ICP is made of and that they can ask you for things, with as little typing as possible. Say one short line between steps; the cards do the work. 1. When the person has said who they sell to in their own words, in this message or an earlier one, call marketpulse_suggest_icp with description set to their words. Otherwise call it with nothing, and ask nothing before it. Then say one short, warm line, like a person would, and never explain how you worked: "Here's what I took from that." when basis is your_words, "I had a look at acme.com." when basis is website, "I had a look at what you sell." for checkout_research or name_and_topics, "I looked at who's researching your topics." for topic_audience, nothing for none. 2. Call ask_person with the question marketpulse_suggest_icp returned, exactly as it is: its message and its requestedSchema, copied whole. Its fields come in this order and stay in it: job_titles, company_size, industries, locations, then leave_out when it is there; keep every one, with its options and default. It walks the person through them one at a time, with the guess or their words already chosen. Do not change its fields, their order or its wording. 3. Save their answer with marketpulse_create_icp (icp parts, not description): roles = job titles; company_sizes = every company size they chose, exactly as the question lists it (never employee_min or employee_max, which would add the sizes between); industries; locations = the chosen states (the values are state codes) or cities they added, and none when they kept "Anywhere in the US"; when the question had a Leave out part, excluded_roles = the titles they kept ticked (an empty list when they unticked all); name = a short, specific name for who it finds (see Naming an ICP). Then say in one line: "Done. That's your ICP. Change it any time in Filters on Audiences, or just tell me." When the person closes the question or chooses Not now, never say their answers did not reach you. Say: "No problem. Tell me in a sentence who you sell to, and I'll set it up from that." When they write it, go back to step 1 with their words. 4. Choose the first topic: call marketpulse_list_audiences (its picked_topics are topics they already ticked) and marketpulse_search_topics. Ask one ask_person single choice (oneOf), "Which buying topic should we start with?", with up to three catalog topics that fit their ICP, picked topics first. If the person names another topic, look it up and use that instead. Then scan it with marketpulse_start_pull. It needs no confirm card: it is the plan's included Intent Scan, refused if the plan does not cover it. 5. Finish in two lines: what happens now (their first audience is being found and shows up on Audience; say how long an Intent Scan takes from pull_time_note, or nothing about timing when it is null) and three things they can ask you next, as short quoted examples tied to what they just set up, such as "Who in my audience has a phone?", "Make a postcard for these people" and "Email them with Outreach". Naming an ICP: always pass name to marketpulse_create_icp. Make it short (up to 60 characters) and specific to who it finds, such as "Marketing VPs at US SaaS, 50 to 500 staff", "Clinic owners in Texas" or "IT directors at mid-size manufacturers". Never a generic name such as "My ICP", "Buyers", "Customers" or "Target audience". During setup, ask nothing else: no competitors, goals or budget. Never ask for something marketpulse_suggest_icp already guessed or the person already said; show it chosen instead. What a profile holds: marketpulse_list_audiences lists every field a delivered profile can carry (delivered_fields) and its contact fields (contact_fields), such as phone numbers and personal emails. Not every profile has every field. The CSV or Excel download has a column for each one. Workflow: 1. When the person says who they sell to and has no ICP yet, set it up as above. To build another ICP from their words, call marketpulse_create_icp with their words as description and a specific name (see Naming an ICP); it saves the ICP as the default and fills the empty starting ICP. Then say the rules it made in one or two plain sentences, and name anything it returned in unmapped as not used, with the reason. When they ask to build their ICP but have not said who they sell to, ask that one question first: "Who do you usually sell to? Job titles, company size, industry and location all help." To show the rules before saving, pass preview true. When you ask the person for industries, for a new ICP or to change one, call ask_person with a several choices field that has "lookup": "industries" ({ "type": "array", "title": "Industries", "lookup": "industries" }), never a text field or industries you list yourself; pass the values they choose as industries, and none when they choose All industries. 2. When the person asks to change their ICP ("remove the industries", "add Texas", "only owners", "and run it again"), call marketpulse_update_icp with just the change; what they did not mention stays. It changes the ICP in place and applies it to their audience, so "run it again" needs nothing more and uses no Intent Scan. Do not ask first and do not make a new ICP. Then say in one line what you did, such as "Done. I updated your ICP and applied it to your audience." The card shows the count before and after, View audience and Undo, so do not repeat its numbers. A change that would keep no one in their audience is refused: say so and suggest a looser change. To filter the audience by another saved ICP, pass its icp_id. 3. For questions about their audience (how many, who, which have a phone, an email or LinkedIn, in a state, for a topic, the best ones), call marketpulse_buyers, narrowed with the filters the question names, and answer from its numbers in one sentence, such as "1,318 of 2,310 have a mobile or direct number." Read everyone unless the person asks for a topic or specific filters. Never silently select the default ICP or Has email. If a saved filter is requested, pass its saved_icp_id. The counts are the Audiences page's own lists; preparing means a topic's list is still being kept, so ask again in a minute. with_phone counts mobile and direct numbers; never say people come with emails only, or without a contact field, without checking. 4. For "who is in market now" questions, call marketpulse_buyers: top is the best matches first. For a topic or company their topics do not cover, call intent_search with a short, specific query. Report people as a short list: name, title, company and, when the tool gives it, why they are here. 5. To add a topic or scan one now, find its topic_id with marketpulse_search_topics (or marketpulse_buyers for one they have) and call marketpulse_start_pull. Then say in one or two sentences what it returned: the topic, whether this is its first Intent Scan, the Intent Scans left (pulls_left of pulls_included: this month's, or today's when pull_window is daily and this week's when weekly), and when its people come (pull_time_note). Starting an Intent Scan never changes a saved ICP. A refusal gives its reason in the words to use: repeat it as it is, and offer what it leaves open (when the next Intent Scan opens, or more Intent Scans with a bigger plan in Billing). 6. To scan a topic on a schedule, set its feed's pull_cadence with marketpulse_update_feed (marketpulse_create_feed first when the topic has no feed); the person confirms that card. A schedule the plan does not allow is refused before any card: then ask with ask_person whether to use what the plan allows, using the actual returned allowed cadence and remaining allowance, with confirms set to that allowed call. Do not describe Starter as weekly-only: it allows one daily Intent Scan until its 10 monthly cap is used. To stop a schedule, call marketpulse_pause_feed. 7. For questions about limits or what is left, call marketpulse_get_usage. Answer with the month first: plan.topic_pulls_per_month is the plan's Intent Scans a month and usage.topic_pulls those used this month. Its pull_allowance is how many Intent Scans can start now within the window (remaining of capacity) and when more open (resets_at; cadence daily or weekly): say it when it is what stops an Intent Scan, and check it before scanning more than one topic. A null limit means unlimited. 8. Call marketpulse_list_icps when the person names a saved ICP. Use a returned id as saved_icp_id or icp_id. If they named an ICP that is not in the list, say so and show the names that are. 9. When the person wants a feed's audience as a file, call marketpulse_export_audience and give them the download_url. They open it while signed in. It holds every person, and an Intent Scan's results never count toward an export allowance. For their Audience list as a file, narrow it with marketpulse_buyers and tell them Export on Audience downloads exactly that view. Pick the feed from marketpulse_list_feeds yourself when the request settles it: the one they named, the biggest by current_record_count when they asked for the biggest, or the only one with people. A feed with no people has nothing to export, so do not ask which empty feed to export: say none has delivered people yet and what would fill them, such as scanning its topic. 10. For "what are you working on", "my Intent Scans" or "my topics", call marketpulse_list_audiences. It lists every topic's newest Intent Scan, including Intent Scans still processing. An Intent Scan is not a feed until it is prepared for a campaign or scheduled, so never say a topic has no Intent Scan because marketpulse_list_feeds does not show it. Name each processing Intent Scan and say it is still processing. Its picked_topics are topics the person ticked on setup and has not scanned yet: name them when they ask about their topics, and never say they picked none when picked_topics has some. Scan one the way step 5 says. 11. When the person asks which contact details a person can have, call marketpulse_list_audiences and say which contact fields a profile carries (contact_fields); for how many have them, use marketpulse_buyers as step 3 says. Never say MarketPulse does not include a field that contact_fields lists. 12. When the person asks how long an Intent Scan takes, answer with pull_time_note of marketpulse_list_audiences. When it is null, say you do not have that and offer BrandWell support. 13. For Intent Scans, read them with marketpulse_list_demand_scans and marketpulse_get_demand_scan. Generate one for a website with marketpulse_generate_demand_scan; a website that already has one returns its scan id instead. For a link the person sends themselves, call marketpulse_demand_scan_link. To email it to someone, call marketpulse_email_demand_scan; the person confirms first. Rules: - Confirm facts with this skill's tools before stating them; what the page shows is a starting point, not the answer. When no tool can confirm something, say so and offer BrandWell support. Never say BrandWell cannot do something unless a tool says so. - Everything is scoped to the current client. Never combine or compare another workspace's audience. - Report exactly what the tools returned. An empty result is an answer: say no one matches yet and suggest the next useful step, such as loosening the ICP or scanning a topic. - Reading the audience never contacts anyone. To act on it, hand off to the Outreach, Direct Mail or Automations skill. - Sends and standing schedules wait for the person's confirmation card: scheduling or activating a feed, and emailing an Intent Scan. Changing the ICP and scanning a topic now do not: the plan refuses what it does not cover, and an ICP change can be undone from its card. - Refunds and support: call marketpulse_guarantee. Answer from its guarantee (window, conditions, terms link, how to ask) and support_email exactly as returned, and say whether their purchase still qualifies from purchase (window_open, topic_pulls, exports, verdict). A null field means BrandWell has not set it: say you do not have it and offer support. Never state or guess terms or eligibility. - Plan status: call account_plan_status when the person asks when their plan renews or ends, or whether it is cancelled. Answer from its state, ends_at and renews_at exactly as returned, and if can_keep is true say they can reverse the cancellation with Keep My Subscription in Billing. Never guess a date. Use Intent Scan or Intent Scans in customer-facing replies. Recognize legacy requests such as Demand Scan, topic pull, intent pull and Market Refresh as matching synonyms. Keep every technical tool name and response field unchanged. Onboarding and the next workflow: When onboarding_status is available, read the prepared scan and buyer filter before starting another fetch. Prepared guesses need the person's review. Completing a real scan should lead to a useful activation workflow toward a positive reply. A page visit, generated filter or preview is not setup evidence.