All skills
placesfacebook Local & Places

Unhappy-Customer Win-Back Miner

Find local businesses whose own 1-star reviews — on Google and (optionally) Facebook — name the exact pain your product fixes, then hand you the owner to pitch

Run this skill with your agent
1. Connect the MCP server
https://apidirect.io/mcp?token=YOUR_API_KEY
2. Then ask your agent — name the skill so it runs this exact playbook
Use the unhappy-customer-winback-miner skill: Find {category} in {city} whose worst reviews complain about {pain_keyword}, and get me the owner's contact for each
Naming the skill (unhappy-customer-winback-miner) makes your agent run this exact playbook instead of improvising its own searches. In clients that support MCP prompts (Claude Desktop, Claude Code, Cursor) it also appears as a prompt named unhappy-customer-winback-miner, and any agent can call get_skill(skill_id="unhappy-customer-winback-miner") directly.

What it does

A business's worst reviews name the exact problem you solve. Sentiment-filtering the lowest-rated reviews across Google Places and Facebook Pages for anger plus your keyword surfaces warm prospects and gives you their verbatim complaint to lead the pitch with — wherever they vent.

Who it's for: Founders selling a fix for a specific operational pain

Inputs

Input Required Description Example
category Yes Type of business to scan dentist
city Yes City and region to search Phoenix, Arizona
pain_keyword Yes The pain your product solves, as customers phrase it wait time
platforms No Comma-separated list of platforms to run — options: places, facebook. Omit to run all of them; name specific platforms to limit the run. places, facebook
scan_depth No Optional. How many pages to pull per search and per review lookup, controlling result volume vs. speed. Maps to the pages param on every search/review step. Defaults to 3-5. 5
country No Optional. Two-letter country code passed to the Places search, reviews, and details calls to localize results for non-US markets. Defaults to us. us
translate_reviews No Optional. When true, translates non-English Google reviews so the anger + pain_keyword filter works in any market. Maps to place_reviews.translate_reviews. Defaults to false. true

How your agent runs it

  1. 1
    search_places(query="{category} {city}", pages=3)

    Collect place_id, rating, and review_count for OPERATIONAL {category} businesses that have enough reviews to mine. Prioritize places with a low overall rating AND a high review_count, since those are the warmest, most-evidenced win-back targets.

  2. 2
    place_reviews(place_id=<place_id>, sort_by=lowest_ranking, pages=3, get_sentiment=true)

    Keep reviews where dominant_emotion is anger or disgust and the text mentions {pain_keyword}, capturing the exact quote and date to lead the pitch with.

  3. 3
    place_details(place_id=<place_id>)

    For businesses with matching painful reviews, pull owner_name, owner_link, and emails_and_contacts so you can send a tailored 'I can fix this' message.

  4. 4
    search_facebook_pages(query="{category} {city}", pages=3)

    Only run if {platforms} includes facebook: Find the official Facebook Pages for {category} businesses in {city}, capturing each page_id and page url. This widens the net to businesses that gather more complaints on Facebook than on Google.

  5. 5
    facebook_page_reviews(page_id=<page_id>, get_sentiment=true, pages=3)

    Only run if {platforms} includes facebook: Keep reviews/recommendations whose dominant_emotion is anger or disgust and whose text mentions {pain_keyword}, capturing the exact quote and date. Dedupe businesses already flagged via Google so each prospect appears once with the strongest complaint.

  6. 6
    facebook_page_details(url=<page_url>)

    Only run if {platforms} includes facebook: For pages with matching painful reviews, pull the listed phone, email, and website so you can reach the owner with the same tailored 'I can fix this' pitch.

Delivers: A deduped prospect list of {category} businesses in {city} with a verbatim complaint matching {pain_keyword} — mined from Google reviews and, when enabled, Facebook Page reviews — plus the owner's contact for a win-back pitch

Tools used

The full playbook

This is exactly what the MCP returns to your agent (via the unhappy-customer-winback-miner prompt or get_skill tool), with your inputs filled in.

SKILL: Unhappy-Customer Win-Back Miner
A business's worst reviews name the exact problem you solve. Sentiment-filtering the lowest-rated reviews across Google Places and Facebook Pages for anger plus your keyword surfaces warm prospects and gives you their verbatim complaint to lead the pitch with — wherever they vent.

You are running this skill on API Direct via its MCP tools. Execute the steps below yourself by calling the named tools in order — values in <angle brackets> come from a previous step. Then deliver the result described at the end.

INPUTS:
  - category (required): <category — ASK THE USER>
      Type of business to scan
  - city (required): <city — ASK THE USER>
      City and region to search
  - pain_keyword (required): <pain_keyword — ASK THE USER>
      The pain your product solves, as customers phrase it
  - platforms (optional): (optional — e.g. places, facebook)
      Comma-separated list of platforms to run — options: places, facebook. Omit to run all of them; name specific platforms to limit the run.
  - scan_depth (optional): 3 (default — override if you like)
      Optional. How many pages to pull per search and per review lookup, controlling result volume vs. speed. Maps to the pages param on every search/review step. Defaults to 3-5.
  - country (optional): (optional — e.g. us)
      Optional. Two-letter country code passed to the Places search, reviews, and details calls to localize results for non-US markets. Defaults to us.
  - translate_reviews (optional): (optional — e.g. true)
      Optional. When true, translates non-English Google reviews so the anger + pain_keyword filter works in any market. Maps to place_reviews.translate_reviews. Defaults to false.

PLATFORM SELECTION: some steps are gated with "Only run if {platforms} includes X". If the user supplied a `platforms` value, run only the steps whose platform is listed. If the user did NOT supply `platforms`, run ALL steps — every platform the skill supports.

STEPS:
  1. Tool `search_places` — search_places(query="{category} {city}", pages=3)
     Collect place_id, rating, and review_count for OPERATIONAL {category} businesses that have enough reviews to mine. Prioritize places with a low overall rating AND a high review_count, since those are the warmest, most-evidenced win-back targets.
  2. Tool `place_reviews` — place_reviews(place_id=<place_id>, sort_by=lowest_ranking, pages=3, get_sentiment=true)
     Keep reviews where dominant_emotion is anger or disgust and the text mentions {pain_keyword}, capturing the exact quote and date to lead the pitch with.
  3. Tool `place_details` — place_details(place_id=<place_id>)
     For businesses with matching painful reviews, pull owner_name, owner_link, and emails_and_contacts so you can send a tailored 'I can fix this' message.
  4. Tool `search_facebook_pages` — search_facebook_pages(query="{category} {city}", pages=3)
     Only run if {platforms} includes facebook: Find the official Facebook Pages for {category} businesses in {city}, capturing each page_id and page url. This widens the net to businesses that gather more complaints on Facebook than on Google.
  5. Tool `facebook_page_reviews` — facebook_page_reviews(page_id=<page_id>, get_sentiment=true, pages=3)
     Only run if {platforms} includes facebook: Keep reviews/recommendations whose dominant_emotion is anger or disgust and whose text mentions {pain_keyword}, capturing the exact quote and date. Dedupe businesses already flagged via Google so each prospect appears once with the strongest complaint.
  6. Tool `facebook_page_details` — facebook_page_details(url=<page_url>)
     Only run if {platforms} includes facebook: For pages with matching painful reviews, pull the listed phone, email, and website so you can reach the owner with the same tailored 'I can fix this' pitch.

DELIVER: A deduped prospect list of {category} businesses in {city} with a verbatim complaint matching {pain_keyword} — mined from Google reviews and, when enabled, Facebook Page reviews — plus the owner's contact for a win-back pitch

Note: each underlying tool call is billed at its normal endpoint price; get_sentiment adds a small per-page surcharge. Page through results as needed but stop once you have enough to deliver the outcome.