Get a 360-degree read on one city before you expand — local chatter on Facebook and Reddit, trending hooks, competitor density, and hiring momentum — running only the lenses you choose.
https://apidirect.io/mcp?token=YOUR_API_KEY
Use the city-market-entry-scan skill: Should I open a {niche} in {city}? Run a full market-entry scan.
city-market-entry-scan) 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
city-market-entry-scan, and any agent can call
get_skill(skill_id="city-market-entry-scan") directly.
Expanding into a new metro is guesswork until you layer independent lenses: what locals post on Facebook, what they discuss on Reddit, what's trending on Twitter, how saturated the map is with competitors on Google Places, and whether rivals are staffing up there on LinkedIn. Each lens resolves a different unknown, and you decide which to run via the platforms input — from a fast two-lens spot-check to the full five-lens scan.
Who it's for: Operators and franchise or expansion teams evaluating a new city
| Input | Required | Description | Example |
|---|---|---|---|
niche |
Yes | Your business category | boutique fitness studio |
city |
Yes | The target metro to evaluate | Nashville, Tennessee, United States |
platforms |
No | Comma-separated list of platforms to run — options: facebook, twitter, places, linkedin, reddit. Omit to run all of them; name specific platforms to limit the run. | facebook, places, reddit |
woeid |
No | Twitter WOEID for the metro, used to pull its local trends. Required only when 'twitter' is included in platforms. | 2457170 |
job_window |
No | How recent LinkedIn job posts must be when gauging hiring momentum. One of 1h, 24h, 7d, 30d. Defaults to 30d. | 7d |
result_depth |
No | How many pages of Google Places results to map for competitor density. Higher = wider coverage. Defaults to 10. | 20 |
search_facebook_locations(query="{city}")
Only run if {platforms} includes facebook: Resolve the city to a numeric location_id so the Facebook post search is geo-scoped to that metro.
search_facebook_posts(query="{niche}", location_id=<location_id>, get_sentiment=true)
Only run if {platforms} includes facebook: Read how locals actually talk about this category in-market — demand, complaints, and gaps surfaced by real residents.
twitter_trends(woeid={woeid})
Only run if {platforms} includes twitter: Pull what's trending in the metro right now to spot local events, sentiment, and hooks to localize the launch. Requires the woeid input.
search_places(query="{niche} {city}", zoom=12, pages=10)
Only run if {platforms} includes places: Map competitor density and ratings to judge saturation and find under-served pockets of the city. Set result_depth higher for wider coverage (default 10).
search_linkedin_jobs(query="{niche} {city}", sort_by=most_recent, posted_ago=30d)
Only run if {platforms} includes linkedin: Gauge whether rivals are staffing up locally; active job posts signal a growing, competitive market and reveal pay benchmarks. Tighten job_window (default 30d) for only the freshest reqs.
search_reddit(query="{niche} {city}", get_sentiment=true, sort_by=relevance)
Only run if {platforms} includes reddit: Surface organic local demand from city and niche threads — recommendation requests, complaints about incumbents, and unmet needs — a second, unprompted read on whether residents actually want this category.
search_facebook_locations
search_facebook_posts
twitter_trends
search_places
search_linkedin_jobs
search_reddit
This is exactly what the MCP returns to your agent (via the city-market-entry-scan prompt or get_skill tool), with your inputs filled in.
SKILL: City Market-Entry Scan
Expanding into a new metro is guesswork until you layer independent lenses: what locals post on Facebook, what they discuss on Reddit, what's trending on Twitter, how saturated the map is with competitors on Google Places, and whether rivals are staffing up there on LinkedIn. Each lens resolves a different unknown, and you decide which to run via the platforms input — from a fast two-lens spot-check to the full five-lens scan.
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:
- niche (required): <niche — ASK THE USER>
Your business category
- city (required): <city — ASK THE USER>
The target metro to evaluate
- platforms (optional): (optional — e.g. facebook, places, reddit)
Comma-separated list of platforms to run — options: facebook, twitter, places, linkedin, reddit. Omit to run all of them; name specific platforms to limit the run.
- woeid (optional): (optional — e.g. 2457170)
Twitter WOEID for the metro, used to pull its local trends. Required only when 'twitter' is included in platforms.
- job_window (optional): 30d (default — override if you like)
How recent LinkedIn job posts must be when gauging hiring momentum. One of 1h, 24h, 7d, 30d. Defaults to 30d.
- result_depth (optional): 10 (default — override if you like)
How many pages of Google Places results to map for competitor density. Higher = wider coverage. Defaults to 10.
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_facebook_locations` — search_facebook_locations(query="{city}")
Only run if {platforms} includes facebook: Resolve the city to a numeric location_id so the Facebook post search is geo-scoped to that metro.
2. Tool `search_facebook_posts` — search_facebook_posts(query="{niche}", location_id=<location_id>, get_sentiment=true)
Only run if {platforms} includes facebook: Read how locals actually talk about this category in-market — demand, complaints, and gaps surfaced by real residents.
3. Tool `twitter_trends` — twitter_trends(woeid={woeid})
Only run if {platforms} includes twitter: Pull what's trending in the metro right now to spot local events, sentiment, and hooks to localize the launch. Requires the woeid input.
4. Tool `search_places` — search_places(query="{niche} {city}", zoom=12, pages=10)
Only run if {platforms} includes places: Map competitor density and ratings to judge saturation and find under-served pockets of the city. Set result_depth higher for wider coverage (default 10).
5. Tool `search_linkedin_jobs` — search_linkedin_jobs(query="{niche} {city}", sort_by=most_recent, posted_ago=30d)
Only run if {platforms} includes linkedin: Gauge whether rivals are staffing up locally; active job posts signal a growing, competitive market and reveal pay benchmarks. Tighten job_window (default 30d) for only the freshest reqs.
6. Tool `search_reddit` — search_reddit(query="{niche} {city}", get_sentiment=true, sort_by=relevance)
Only run if {platforms} includes reddit: Surface organic local demand from city and niche threads — recommendation requests, complaints about incumbents, and unmet needs — a second, unprompted read on whether residents actually want this category.
DELIVER: A multi-lens market-entry brief for the city — local demand sentiment (Facebook and Reddit), trending hooks, competitor saturation, and hiring momentum — limited to the lenses you selected and capped with a go / no-go recommendation.
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 rising topic, find the B2B founders posting about it on LinkedIn and X, then surface their contact channel.
Turn a map full of local businesses into a contact-rich, multi-platform lead dossier for every place
Prove a niche is not just hot but accelerating by triangulating fresh demand and buyer-intent signals across up to six independent platforms — and run only the ones you trust