Sweep one-star reviews across a metro's category to surface the unmet needs nobody is solving
https://apidirect.io/mcp?token=YOUR_API_KEY
Mine one-star reviews for {category} businesses across {metro} and cluster the unmet needs I could build around
local-category-complaint-miner.
Any agent can also call get_skill(skill_id="local-category-complaint-miner") to pull these steps on demand.
A metro's lowest-rated reviews for a category are a free, honest backlog of unmet needs. Sentiment-filtering the angriest reviews across many local players reveals repeated pain you can productize or out-execute.
Who it's for: Founders, local-market entrants, and product strategists
| Input | Required | Description | Example |
|---|---|---|---|
category |
Yes | The business category to investigate | dog grooming |
metro |
Yes | City or metro to sweep | Austin, Texas |
search_places(query="{category} {metro}", pages=5)
Collect every local provider in the category with its place_id, rating, and review_count; prioritize those with enough reviews to mine.
place_reviews(place_id=<place_id>, sort_by=lowest_ranking, pages=3, get_sentiment=true)
For each provider pull the harshest reviews and keep only items with negative polarity or anger/disgust as the dominant emotion.
place_reviews(place_id=<place_id>, sort_by=newest, pages=2, get_sentiment=true)
Cross-check recent reviews to confirm the complaint is still live and not a fixed legacy issue.
place_details(place_id=<place_id>)
For the worst-offending providers pull owner and contact info to size the incumbent and flag differentiation or acquisition angles.
This is exactly what the MCP returns to your agent (via the local-category-complaint-miner prompt or get_skill tool), with your inputs filled in.
SKILL: Local Category Complaint Miner
A metro's lowest-rated reviews for a category are a free, honest backlog of unmet needs. Sentiment-filtering the angriest reviews across many local players reveals repeated pain you can productize or out-execute.
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>
- metro (required): <metro — ASK THE USER>
STEPS:
1. Tool `search_places` — search_places(query="<category> <metro>", pages=5)
Collect every local provider in the category with its place_id, rating, and review_count; prioritize those with enough reviews to mine.
2. Tool `place_reviews` — place_reviews(place_id=<place_id>, sort_by=lowest_ranking, pages=3, get_sentiment=true)
For each provider pull the harshest reviews and keep only items with negative polarity or anger/disgust as the dominant emotion.
3. Tool `place_reviews` — place_reviews(place_id=<place_id>, sort_by=newest, pages=2, get_sentiment=true)
Cross-check recent reviews to confirm the complaint is still live and not a fixed legacy issue.
4. Tool `place_details` — place_details(place_id=<place_id>)
For the worst-offending providers pull owner and contact info to size the incumbent and flag differentiation or acquisition angles.
DELIVER: A clustered list of recurring unmet needs across the metro's category, ranked by frequency and emotional intensity, with the worst-performing incumbents named.
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.
Catch a topic breaking in one region before it goes global by diffing live trend lists across markets
Map the affiliate, comparison, and AI-answer landscape that owns a high-intent buying keyword
Turn fresh job-posting velocity for an emerging skill into a forward demand signal and a map of who is investing