Windfield Real Estate / Intelligent OperationsIntelligencePlan of Action

LinkedIn Ad Library Intelligence Report

8630 N Green Hills Road Office Building — KC Northland

AD
Andrew Danner
(816) 612-5191
Generated 2026-05-13
Ad Library Tools
10
Search Queries
24
Target Competitors
14
Medical Verticals
11

00Competitive Intelligence via LinkedIn Ad Library API

This report executes all 10 LinkedIn Ad Library MCP tools registered on the Windfield IO MCP server to gather competitive intelligence for the 8630 N Green Hills Road medical office campaign. The tools operate as a 5-phase pipeline: Search, Discover, Extract, Analyze, Synthesize.

Target intelligence domains: CRE brokerage ad strategies, medical franchise expansion signals, healthcare investor messaging, creative format trends, targeting pattern analysis, and competitive positioning gaps.

1
Phase 1 — Search
Tools 1–3: Broad keyword/advertiser/country search with targeting facets and impression filters.
2
Phase 2 — Discover
Tool 4: Brand partnerships and paid endorsement searches.
3
Phase 3 — Extract
Tools 5–6: Playwright browser automation captures screenshots and DOM data.
4
Phase 4 — Analyze
Tools 7–8: Claude Vision creative analysis across 10 dimensions.
5
Phase 5 — Synthesize
Tools 9–10: AI-generated competitive positioning brief and market sweep.

018630 N Green Hills Road \u2014 Campaign Foundation

Property ContextProperty ID: 1616772
FieldValue
Property Name8630 N Green Hills Road Office Building
Location8630 N Green Hills Road, Kansas City, MO 64154
SubmarketKC Northland — Tiffany Hills / Coves North
Building10,500 SF, Class-A, Single-story, Built 2020
ZoningB3-3 (all medical uses permitted)
AvailabilityFor Sale — Call for Pricing
Trade Area HHI$107,000 avg (2-mile radius)
Adjacent MedicalNorthland Eye Specialists (0.1 mi), Magnolia Family Chiropractic (0.1 mi)
Campaign Budget$5,000/mo across 7 stages
Target AudienceMedical practice owners, franchise developers, healthcare REITs
Intelligence Objective
Understand how competitors are advertising medical office space and healthcare franchise opportunities on LinkedIn. Identify creative gaps, messaging patterns, and targeting strategies to position 8630 N Green Hills as the definitive Class-A medical office opportunity in KC Northland.

0210 LinkedIn Ad Library MCP Tools

Tool InventoryMCP Server: windfield-mcp-server
#Tool NamePhaseFunction
1ad_library__searchSearchBroad keyword/advertiser/country search with targeting facets and impression filters
2ad_library__search_competitorSearchDeep-dive on named competitor. Paginates and stores to linkedin_competitor_ads
3ad_library__search_keywordSearchKeyword search with targeting facet filters (JOB, COMPANY, LOCATION, etc.)
4ad_library__brand_partnershipsDiscoverSearch paid endorsement/influencer posts by keyword and date range
5ad_library__extract_creativeExtractPlaywright scrape of ad detail page: screenshot + DOM extraction + Supabase storage
6ad_library__batch_extractExtractBatch process all pending creatives with rate-limiting (5-10s delays)
7ad_library__analyze_creativeAnalyzeClaude Vision analysis: headline, body, CTA, visual description, brand colors, copy tone, themes
8ad_library__batch_analyzeAnalyzeBatch Claude Vision analysis of all extracted unanalyzed screenshots
9ad_library__competitive_briefSynthesizeAI-generated competitive positioning brief for property using all scraped data
10ad_library__market_sweepSynthesizeFull competitor watch list sweep with diff against last run, logged to io_events

03Phase 1 \u2014 Search

Tool 1 \u2014 Broad Market Scan6 keyword searches
#KeywordCountriesDays BackIntelligence Target
1medical office spaceUS30Medical office positioning patterns
2commercial real estate Kansas CityUS30Local CRE competitive landscape
3Class-A office buildingUS30Premium office messaging patterns
4urgent care expansionUS30Healthcare chain expansion signals
5med spa franchiseUS30Highest demand gap category (POP 02)
6healthcare real estate investmentUS30Healthcare REIT investor messaging
Tool 2 \u2014 Named Competitor Deep-Dive14 competitors
CategoryAdvertiserDays BackMax ResultsWhy
CRE BrokerageCBRE9050Largest CRE broker — sets market creative standards
CRE BrokerageJLL9050Major KC presence, institutional messaging
CRE BrokerageCushman & Wakefield9050Healthcare practice group competitor
CRE BrokerageColliers9050KC market active, medical office listings
CRE BrokerageMarcus & Millichap9050Investment sales competitor
CRE BrokerageLee & Associates9050Owner-occupant focused marketing
CRE BrokerageBlock Real Estate Services9050Dominant KC local brokerage
Medical FranchiseIdeal Image9050National med spa chain — KC expansion target
Medical FranchiseLaserAway9050100+ locations, recent KC market research
Medical FranchiseCareNow9050Urgent care expansion — KC Northland gap
Medical FranchiseNextCare9050Existing CRM contact (Phil Lesnik, Gregory Valladao)
Medical FranchiseTotal Access Urgent Care9050Existing CRM contact (Joe Godfrey)
Medical FranchiseAspen Dental9050Dental franchise — aggressive expansion
Medical FranchiseHeartland Dental9050Largest dental DSO — site selection team

04Phase 2 \u2014 Discover

Tool 4 \u2014 Brand Partnerships4 keyword searches
KeywordDate RangeIntelligence Target
medical officePAST_MONTHMedical KOL endorsement activity
commercial real estatePAST_MONTHCRE influencer partnerships
healthcare franchisePAST_MONTHFranchise brand ambassador programs
med spaPAST_MONTHAesthetic medicine influencer landscape

05Phase 3 \u2014 Extract

Playwright browser automation scrapes LinkedIn Ad Library detail pages. Captures full-page screenshot, extracts headline/body/CTA from DOM, stores to Supabase Storage. Priority targets include any CBRE or JLL medical office ad, med spa franchise expansion ads, urgent care location acquisition ads, healthcare REIT investor-facing ads, and any KC-specific CRE ad.

After priority extractions, batch process all remaining ads with scrape_status='pending', limit 25. Rate-limited with 5-10 second delays between requests to avoid throttling.

06Phase 4 \u2014 Analyze

Claude Vision transforms raw ad screenshots into structured creative analysis. Each analysis extracts 10 dimensions: headline text & positioning, body copy & value prop, CTA type & urgency language, visual layout description, brand colors & design system, photography style, copy tone, detected themes, asset class, and competitive positioning angle.

Downstream Impact
Analysis output feeds directly into the 9 LinkedIn React template components (LiSquareDarkHero, LiSquareImageTop, LiSquareLight, LiSquareStats, LiCarouselSlide, LiBannerProfile, LiSponsoredAd, IoLiInsight, PepLiLight). Winning creative patterns from competitors inform which templates lead in our 7-stage campaign.

07Phase 5 \u2014 Synthesize

Tool 9 generates a full competitive positioning brief for property ID 1616772. Cross-references all stored competitor ads from Phases 1-3, synthesizes via Claude into actionable intelligence. Output stored in io_memory with key linkedin_competitive_brief:1616772.

Tool 10 executes the full 7-advertiser watch list through the Ad Library API. Diffs against last sweep to identify new ads. Establishes the baseline for the weekly linkedin_competitor_sweep cron (Monday 3am).

Ongoing Automation
After this initial sweep, the linkedin_competitor_sweep cron fires every Monday at 3am CT. Each subsequent sweep diffs against the previous run, logging only new ads. The competitive brief auto-regenerates when new competitor data arrives.

08Report Deliverables After Execution

Intelligence Products7 deliverables
#DeliverableSource ToolsFeeds Into
1Market Ad Landscape MapTools 1–3Campaign strategy, budget allocation
2Competitor Creative AnalysisTools 7–8Template selection, creative briefs
3Targeting Intelligence ReportTool 3Audience segments A/B/C (POP 06)
4Brand Partnership LandscapeTool 4Stage 7 Loyalty campaign (POP 15)
5Content Gap AnalysisTool 97-stage campaign copy, content ops
6Creative Format RecommendationsTools 7–9Template Library, visual builder
7Competitive Positioning BriefTools 9–10All campaigns, Reports IO, AI-OPS

09Sequential Tool Execution Order

Execution Timeline40\u201365 min total
StepToolDependencyEst. DurationOutput
1ad_library__search (x6)None — can start immediately2–3 minBroad market ad records
2ad_library__search_competitor (x14)None — parallel with Step 15–8 minNamed competitor ad records
3ad_library__search_keyword (x4)None — parallel with Steps 1-21–2 minFacet-filtered ad records
4ad_library__brand_partnerships (x4)None — parallel with Steps 1-31–2 minBrand partnership records
5ad_library__extract_creative (x10)Requires Step 1-2 results5–10 minPriority screenshots + DOM data
6ad_library__batch_extract (limit: 25)Requires Step 5 completion10–15 minRemaining screenshots
7ad_library__analyze_creative (x5)Requires Step 5 results3–5 minPriority creative analysis
8ad_library__batch_analyze (limit: 20)Requires Step 6 completion8–12 minBatch creative analysis
9ad_library__competitive_briefRequires Steps 1-82–3 minCompetitive positioning brief JSON
10ad_library__market_sweepRequires Step 93–5 minWatch list baseline + io_events log

10How Intelligence Feeds the 7-Stage Campaign

Campaign Integration$5,000/mo total
Campaign StageBudget/moIntelligence InputHow It Changes Strategy
1. Unaware$1,000 (20%)Market ad landscape, format trendsThumbnail style, opening hook format, video length based on competitor VCR data
2. Problem Aware$1,000 (20%)Competitor copy patterns, lead magnet typesLead magnet title and format based on what competitors offer (or don’t)
3. Solution Aware$750 (15%)Owner-occupancy messaging gapsIf no competitor runs ownership vs. leasing content, this becomes our differentiation
4. Product Aware$750 (15%)Creative format analysis, CTA patternsProperty tour video style, floor plan presentation format
5. Conversion$1,000 (20%)Competitor CTA urgency language, form fieldsCTA copy, scarcity framing, lead gen form field optimization
6. Nurturing$250 (5%)Competitor nurture content typesBuildout timeline vs. case study content format
7. Loyalty$250 (5%)Brand partnership landscapeCo-marketing partner identification, referral program structure

11MCP Tool Signatures & Supabase Schema

Tables written by Ad Library toolsschema
linkedin_competitor_ads
  id, advertiser_name, ad_id, headline, body, cta,
  ad_url, screenshot_url, countries, impression_range,
  scrape_status, analysis_status, created_at

linkedin_competitor_ad_targeting
  id, competitor_ad_id, facet_category, facet_values,
  included, created_at

io_memory
  key: "linkedin_competitive_brief:1616772"
  value: { competitors[], trendingSummary, positioningRecommendation }

io_events
  type: "linkedin_competitor_sweep"
  data: { advertisers_scanned, new_ads_found, sweep_date }

io_memory
  key: "linkedin_competitor_watch_list"
  value: ["CBRE", "JLL", "Cushman & Wakefield", "Colliers",
          "Marcus & Millichap", "Lee & Associates", "Block Real Estate Services"]
Cron automationconfig
linkedin_competitor_sweep: "0 3 * * 1"  // Monday 3am CT
  - Runs ad_library__market_sweep
  - Diffs against previous sweep
  - Logs new ads to linkedin_competitor_ads
  - Regenerates competitive brief if new data

// OAuth scopes required
r_ads          // Read ad library data
rw_ads         // Create/manage campaigns from insights
r_ads_reporting // Pull performance data for benchmarking

// Token status
Expires: "2026-07-05"
Scopes: "openid, profile, w_member_social, r_ads, rw_ads, r_ads_reporting"