What to look at today
—
The short version
How every property compares
| # | Property | Spend | Conv. | CPA | Conv. rate | Sessions | vs. portfolio |
|---|
Spend & conversions
Sessions by source
Free search traffic
Cited by AI search
Map & profile activity
This period vs. the previous period
Every number on this dashboard is live — pulled from Google Ads, Meta, and GA4 and refreshed automatically. One thing to keep in mind: Google Ads reports with a short lag, so the most recent day or two can read slightly low until they finalize — site analytics (GA4) is same-day.
The traffic you are not paying for, and how to get more of it
Search Console feeds us every query a renter actually typed to find you, with rankings and clicks per community. A weekly crawl checks titles, schema, page speed and broken links, then turns what it finds into a ranked “do this first” list you can hand straight to a web team.
Clicks and impressions, day by day
Top pages
The full keyword list
What Google puts above the blue links
These are the keywords we chose to chase, checked from the property’s own neighborhood. A different question from the previous tab: Search Console shows what already earns impressions; this shows where we stand on terms worth winning — including the ones nobody finds us for yet.
Where you rank, over time
How many terms sit where
Stuck on page two
A listing problem, not a ranking one
This month’s highest-value moves
Ranked by estimated clicks gained, computed from Search Console’s query-and-page data for this property — not written by hand.
Being built next · seven more views land here as their data pipelines come online
- Proof of work — every shipped change scored against an 8-week verdict window, reverts shown rather than hidden.
- Keyword gaps & content plan — the pages competitors rank with that this site doesn’t have.
- Two pages fighting each other — needs query and page joined in the weekly fetch; one fetcher change away.
- Technical SEO health — Core Web Vitals, broken links, schema; needs a site crawler.
- Page types missing across the portfolio — readable from the nightly floorplan scan with a small extension.
- Organic sessions & landing pages — GA4; waiting on a per-page dimension in the sync job.
- Share of organic voice — page-one share vs the comp set, derivable from the rank scan’s competitor capture.
Whether ChatGPT names you when a renter asks where to live
Each month we run real prospect questions through ChatGPT, Gemini, Google AI Overviews, AI Mode and Bing Copilot, and record whether your community is named, cited, and priced correctly. When a competitor gets cited instead, we trace it back to the gap that caused it and tell you the fix.
Fifteen questions a real renter would actually ask an assistant
Where you show up
Who AI recommends in your market
Real questions renters ask AI
| Prompt | You cited? | Cited instead |
|---|---|---|
| best luxury apartments in [city] | ✓ Yes | — |
| apartments with covered parking [city] | ✓ Yes | — |
| pet friendly apartments near downtown | ✗ No | Competitor A |
| new apartments [neighborhood] 2026 | ✗ No | Competitor B |
| apartments with best amenities [city] | ✓ Yes | — |
What to tell your web developer, and what to tell marketing
Built from the 15 tracked prompts above — grouped by why each one isn’t citing you, with the exact competitor domains winning instead.
When AI quotes your rent, does it quote the right number?
Not built yet. The current scan checks whether assistants cite and name you — it doesn’t yet ask each one a price question and compare the answer against that morning’s floorplan scan. That’s a real, addable feature, just not one we’re showing example numbers for until it exists.
Every dollar of Google and Meta spend, in one place
Spend, clicks, conversions and cost per lead are pulled straight from the Google Ads and Meta APIs every 30 minutes — no exports, no screenshots, no waiting on a monthly deck. Campaigns are broken out per community, so you can see which ones are earning their budget and which are quietly draining it.
This property — $0/mo ad spend
All campaigns
All campaigns
Brand vs. non-brand
| Campaign type | Spend | % of spend | Conv. | % of conv. | CPA | Conv. rate |
|---|
Conversion actions by campaign
| Campaign | Account | Conversions | Cost / conv. |
|---|
Every campaign in range
| Campaign | Platform | Spend | Impressions | Clicks | Conv. | CPA | CTR | CPC | Status |
|---|
What actually happens after a renter picks up the phone
Call tracking on your paid numbers records every call, who asked for a live person, and whether that transfer actually connected. We also check the rent quoted on the call against what the website said that morning — so a stale price gets caught the same day rather than at the end of the month.
—
Darker means more callers asked for a person and never reached one in that hour.
—
Quoted rent vs. the website, same morning
By campaign · repeat and junk calls filtered out
Everything here reads from call tracking on the paid numbers — nothing from the AI agent
How this works — no auto-dialer, no test calls, no scripts
The number a renter dials is what tells us where they came from — that is the whole mechanism. Each source gets its own number, and every one rings the leasing office’s real phone in under a second. Their actual number never changes and the team answers exactly as they do today.
LOGS & FORWARDS →
Call metadata is always stored — who called, when, from which ad. Turning on call recording is the one extra switch, and it is what makes the quote-accuracy check possible; the standard “this call may be recorded” disclosure plays automatically where consent laws require it.
Every review site AI reads, checked every day
Google, ApartmentRatings, Yelp and Niche are scanned daily for new reviews, rating movement, and anything still sitting unanswered. Recurring themes are pulled out of the review text so you can see what residents keep raising. Monitoring only — nothing is posted or replied to on your behalf.
The problem: reviews live on four sites and AI assistants read all of them, but the team only watches Google — so a 2.9 on ApartmentRatings quietly drags down every AI recommendation while the portfolio believes it’s a 4.6 operation. Monitoring only: no review is ever drafted, written, or posted from Pulse. Responses stay with the leasing team, exactly as they work today.
Where AI actually reads from
What the team checks vs. what AI also reads
Recurring themes across every review
| Theme & a sample review | Mentions by platform | Sentiment | Trend |
|---|
Every community, every platform, ranked by what needs attention
| Property | ApartmentRatings | Yelp | Niche | Unanswered | Gap |
|---|
Monitoring and reporting only — no review writing in Pulse
Respond to Google Reviews
Search queries
Posts & activity this month
| Activity | Status | Engagement |
|---|---|---|
| Post · “New look tours available this weekend” | Published | 142 views |
| Post · “Resident amenity spotlight: rooftop lounge” | Published | 98 views |
| FAQ update · pet policy & parking | Published | — |
| New prospect questions monitored | Answered | — |
This week’s Google Business posts
Nobody has to remember to post
Google pushes a profile down when it goes quiet, and posting weekly across every community is a job that never survives a busy month. This runs itself up to the point where a person is genuinely needed — approving what goes out under the property’s name.
Four angles, on a four-week loop
Each community gets one post a week, written from that morning’s scan of its own website. If a week’s angle has nothing true to say — no special running, no availability figure — it drops to the next one down rather than inventing something.
Nothing is published automatically. Every draft waits for approval, and you get one email a week with all of them in it.
Three listing sites, three different prices, and nobody checking daily
The same morning scan that reads your website also reads your Apartments.com, Zillow and Rent.com listings, then compares them line by line. A wrong price, a missing special or a stale availability count is flagged the day it appears, copy-paste ready for whoever manages the listing. We never edit a listing ourselves.
—
Read from the community website
—
What renters actually do once they reach the website
GA4 reports sessions, users, engagement and key events for each community, split by paid, organic, direct and AI referral. Landing pages are ranked so you can see which ones turn a visit into a tour request — and which ones quietly lose people.
Sessions, engagement & leads by channel
| Channel | Sessions | Key events |
|---|
Where visits start
| Page | Sessions | Key events |
|---|
What counted as a key event
| Event | Count | Share |
|---|
AI-referred sessions
Sessions by channel
Key events (leads) & conversion rate
Track every floorplan’s price & special — and push it live to your ads
Every morning we open each community’s own floorplans page the way a renter’s browser would, wait for live pricing to load, and read the real “starting at” price and current special for every unit. That lowest price can then sync straight into your Google Ads headlines automatically, so the ad always matches the website.
Floorplans & current starting prices
| Floorplan | Type | Sq ft | Starting at | Availability | 7-day change |
|---|---|---|---|---|---|
| Cove | Studio | 415 | $1,335 | Available | — |
| Glow | 1 bd / 1 ba | 538 | $1,595 | Available | — |
| Retreat | 1 bd / 1 ba | 678 | $1,635 | Available | — |
| Vivid | 1 bd / 1 ba | 746 | $1,760 | Available | — |
| Noble | 1 bd / 1 ba | 780 | $1,810 | Available | — |
| Serene | 1 bd / 1 ba | 823 | $1,890 | Available | — |
| Eden | 1 bd / 1 ba | 927 | $2,085 | Available | — |
| Luminous | 2 bd / 2 ba | 1,080 | $2,305 | Available | — |
| Haven | 2 bd / 2 ba | 1,262 | $2,415 | Available | — |
| Horizon | 2 bd / 2 ba | 1,298 | $2,429 | Available | — |
| Radiance | 3 bd / 2 ba | 1,353 | $3,384 | Available | — |
The offer running right now
Where the price goes
What’s featured in your ads right now
From scan to published post — you are step 4
Lowest advertised price by bedroom, every community
What a renter sees when they shop you against the competition
You name the five communities you actually compete with; from there it runs itself. The daily scan reads their floorplan pricing, square footage and homepage concession exactly the way it reads yours, then puts them side by side — on advertised rent, and again on net effective once every concession is valued in dollars.
Advertised price vs. what a renter actually pays
Every competitor, every bedroom type
| Property | Dist. | Built | Units | Studio | 1 Bed | 2 Bed | 3 Bed | Current special | Verified |
|---|
What each community is advertising right now
Rent normalised for size
What they advertise that you don’t — and the reverse
Price and concession changes, dated
How many homes each community is advertising, and which way that is moving
The morning scan counts every home each community currently has listed as available, and stores it. Compared day over day, that count becomes a demand signal — a number climbing week after week usually shows up in pricing before it shows up in a report.
Every community, with what marketing is spending against it
More homes to fill, no more money behind them
Homes advertised, day by day
Homes advertised, day by day
Where the availability sits
Homes advertised by floorplan
Three ways to run Pulse
The reporting dashboard comes with your ads management and stays yours for as long as you’re a client. The two add-ons beyond it are optional, priced per property, and independent of each other — take either one, bundle both, or take neither. The coloured badge next to a page in the left menu tells you which package that page belongs to.
Where your money went, and whether it worked.
- Portfolio overview — every community ranked side by side
- Google Ads and Meta in one view, straight from the platforms
- Website traffic split by paid, organic, direct and AI referral
- Trends and period-over-period comparisons
- A “What’s happening / the numbers / our next move” readout at the top of every page, written from the live data
- One alerts feed across every automation — plain sentences, sorted by urgency, each one linked to the exact card it came from
- An email the moment a data feed stops reporting
- Plain-English summary of what actually moved
Every ads client, from day one. No upgrade needed, ever.
What you’re charging, what they’re charging, and what AI says about both.
- Live floorplan pricing read off every community website
- “What moved” — every reprice, concession change and availability swing, dated, with the before and after
- Homes advertised available, trended daily
- Your real competitors’ websites read daily — price and concession changes dated the morning they happen
- The comp set side by side by bedroom type, each offer valued in dollars per month on a 12-month lease
- Google Ads pinned headline control — feature any floorplan’s live price in the ad with one click
- Advertised rent and net-effective rank — two different answers
- Whether AI assistants quote your rent correctly, and their source
- Listing sites scanned daily against your own website — a wrong price or missing special flagged the same day, copy-paste ready for the listing manager
Regionals, revenue teams, and anyone who has lost a tour to “the place down the road is cheaper.”
Where renters find you without you paying for the click.
- Organic search — every query a renter actually typed, with a ranked “do this first” list
- AI visibility — whether ChatGPT and Google’s AI answers name you, and a categorized action plan when they don’t
- One Google Business post per community per week, drafted from that morning’s scan — you approve or edit every word before it goes out
- Reputation across Google, ApartmentRatings, Yelp and Niche — the sites AI reads — with review themes traced to the platform and review behind them. Monitoring only
- Speed to Lead for the AI-answered era: every call gets picked up, so we measure the handoff — who asked for a person, whether the transfer connected, and whether the rent quoted matched the website that morning. All from call tracking on the paid numbers; nothing needed from the AI vendor
- Recommendations you can mark done, tracked in Impact Tracking
- Technical site health with a downloadable fix list
The marketing director tired of only being able to talk about paid.
The two add-ons answer different questions for different people — pricing is a regional and revenue-team tool, organic is a marketing-director tool. Most communities want one of them, some want both, and the bundle costs less than the two separately. Nothing is a prerequisite for anything else.
Built for apartment marketing — and it never stops running
General marketing and SEO software is built for everyone. It reports, and then it stops — it knows nothing about your rents, your availability, your concessions or your ad accounts. Pulse is built for multifamily, it connects those things to each other, and it refreshes on a schedule rather than when someone remembers to pull a report.
| Generic marketing & SEO tools | Jamesday Pulse | How often it runs | |
|---|---|---|---|
| Google Ads & Meta spend in one view | — | ✓ Direct API, both platforms | 48× a dayevery 30 minutes |
| Website analytics, per community | ✓ Generic | ✓ Split by paid, organic, direct and AI referral | 48× a day |
| A feed stops reporting and somebody is told | — | ✓ Email the moment it breaks, and again when it recovers | 48× a daychecked, not just sent |
| Live floorplan pricing across the portfolio | — | ✓ Every community, every plan | 1× a day30 min after your reprice |
| Price movement history per floorplan | — | ✓ 7-day change, with the date it moved | 1× a day |
| Homes advertised available, and which way that is trending | — | ✓ Portfolio and per community | 1× a day |
| Move-in specials read off the site and alerted | — | ✓ Same-day email with the before-and-after wording | 1× a day |
| Every community ranked side by side | — | ✓ Sortable on spend, conversions, cost per conversion | Liveon every page load |
| Checks that each community is still reporting through each source | — | ✓ Spend without conversions, silent analytics, missed scans | Liveon every page load |
| Plain-English summary of what actually moved | — | ✓ Written automatically for the property and dates you pick | Liveon every page load |
| Pushes your live price back into Google Ads | — | ✓ The ad headline follows the website automatically | Built — one switchon when you want it on |
| Technical SEO health check | ✓ | ✓ Plus a downloadable fix list | Organic add-on |
| AI-search visibility — and whether AI quotes your rent correctly | Limited | ✓ 4 assistants, checked against your real price | Pricing add-on |
| Your five real competitors, tracked the same way you are | — | ✓ Their prices, their concessions, and where you sit in the set | Pricing add-onyou name the comp set |
| Google Business Profile activity | Limited | ✓ Calls, direction requests, posts | Organic add-on |
| New Google reviews caught so somebody can reply | — | ✓ Rating, review count and how many are still unanswered, per community | Organic add-onchecked daily once on |
| Reputation across the review sites AI actually reads | Google only | ✓ Google, ApartmentRatings, Yelp and Niche in one view, with recurring themes | Organic add-onmonitoring only — no posting |
| Calls answered, missed, and called back — costed against ad spend | — | ✓ Answer rate by community, source and hour; missed paid calls priced at that community’s CPA | Organic add-onneeds call tracking connected |
| Listing sites checked against the community’s own website | — | ✓ Price, special and availability parity on Apartments.com, Zillow and Rent.com | Pricing add-onsame-day mismatch alert |
| Built for apartment communities | — | ✓ | — |
—
Everything else is reporting normally
| Source | Status | Detail |
|---|
Is every number on this dashboard still arriving?
Take the numbers out of the dashboard
The selected property and date range, exported as a branded client report or as raw rows. Same figures as the screen — nothing is recalculated on the way out.
One-click client report
Exports the currently selected property + date range as a branded PDF or CSV — Paid, Organic, AI Visibility, Google Business and GA4, each in its own section. Same numbers as the dashboard, always.
Auto-delivery
Not built yet — no reports are actually being sent on a schedule right now. This will show real, active deliveries (recipient, cadence) once auto-delivery is wired up.
Every change, and whether it did anything
Read this first. This is the record of what we changed and what happened afterwards — wins and misses in the same list, never summarised away. It is here so you can hold the work to account on numbers rather than on activity reports.
Every change is recorded with the keywords it was meant to move, the numbers on the day it went live, and a verdict date eight weeks out. Wins and misses both, in the same list.
What’s been marked done, across every property
Checked off from Organic SEO’s “Do this first” and the AI visibility action plan. Uncheck here to put something back on the list.
What we shipped, newest first
| Target keyword | Before | Now | Clicks |
|---|---|---|---|
| pet friendly apartments | — | 24 | +2 |
| dog friendly apartments | — | 31 | +1 |
| apartments with dog park | — | 19 | +3 |
| Target keyword | Before | Now | Clicks |
|---|---|---|---|
| rich result eligibility | 0 of 32 | 32 of 32 | — |
| AI citation rate, portfolio | 14% | 23% | — |
| Target keyword | Before | Now | Clicks |
|---|---|---|---|
| pet friendly apartments phoenix | — | 7 | +41 |
| dog friendly apartments phoenix | — | 9 | +22 |
| apartments with dog park | — | 4 | +18 |
| pet rent phoenix | 31 | 11 | +9 |
| no weight limit apartments | — | 6 | +7 |
| cat friendly apartments | — | — | — |
| Target keyword | Before | Now | Clicks |
|---|---|---|---|
| 2 bedroom apartments | 5 | 5 | — |
| floor plans citizen | 3 | 3 | +2 |
| 2 br apartments | 14 | 13 | — |
| Target keyword | Before | Now | Clicks |
|---|---|---|---|
| studio apartments indianapolis | — | 5 | +62 |
| 1 bedroom apartments indianapolis | 19 | 6 | +58 |
| 2 bedroom apartments indianapolis | 22 | 8 | +44 |
| 3 bedroom apartments indianapolis | — | 12 | +22 |
| Target keyword | Before | Now | Clicks |
|---|---|---|---|
| versa apartments | 1 | 4 | −38 |
| apartments milwaukee | 11 | 19 | −12 |
| Target keyword | Before | Now | Clicks |
|---|---|---|---|
| apartments downtown kansas city | — | 8 | +38 |
| living in the crossroads | — | 3 | +29 |
| apartments near streetcar | — | 6 | +18 |
| best neighborhood kansas city | — | — | — |
| Target keyword | Before | Now | Clicks |
|---|---|---|---|
| image search impressions | 1,240 | 1,310 | +18 |
| Target keyword | Before | Now | Clicks |
|---|---|---|---|
| oxlley apartments | 1 | 1 | +19 |
| apartments kansas city | 8 | 8 | +12 |
| Target keyword | Before | Now | Clicks |
|---|---|---|---|
| 2 bedroom apartments phoenix | 14 | 6 | +34 |
| apartments with balcony phoenix | — | 14 | +15 |
| large apartments phoenix | — | 11 | +9 |
Organic clicks per month, against what would have happened anyway
The lower line is what the properties that haven’t had these changes actually did over the same months. The shaded gap between the two is the part we can claim — not the whole number.
Google Business posts to approve
480 findings. Three things to do.
These are not 480 problems. They are 12 patterns repeated across 32 near-identical sites — six of the twelve are one change to the Jonah template that lands everywhere at once. The queue groups by fix, never by property, and releases a fixed number a week so the backlog can never bury you.
Send these first
The only rows here where only you can finish it
TICKET T1 — Expose per-page SEO fields in the CMS
Scope: shared Ridgeline community site template (32 properties)
Priority: build first
PROBLEM
There is no way to edit a page's title tag, meta description, or an image's
alt text from the CMS. Every one of those changes currently has to come to
Jonah as a ticket.
WHAT WE NEED
On every page-edit screen, an SEO panel with:
- Title tag text, 60 char soft counter
- Meta description textarea, 155 char soft counter
- Canonical URL text, optional (blank = self-referencing)
- H1 override text, optional
- noindex toggle checkbox, default off
On the image upload control anywhere it appears:
- Alt text text, required-with-warning (not blocking)
ACCEPTANCE CRITERIA
- Editing the title tag and saving changes the <title> element, no deploy.
- Leaving any field blank produces exactly today's output. Must be
non-breaking for all 32 existing sites.
- Alt text set in the CMS renders as the alt attribute on the <img>.
- Character counters are advisory; they never block saving.
QUESTION
Is there an existing per-page metadata store we can extend, or does this
need a new table?TICKET T2 — ApartmentComplex JSON-LD schema
Scope: shared Ridgeline community site template (32 properties)
PROBLEM
No Ridgeline site emits structured data. Every competitor site we track does.
WHAT WE NEED
A <script type="application/ld+json"> block in <head> on every property
homepage, populated from data the CMS already holds:
{
"@context": "https://schema.org",
"@type": "ApartmentComplex",
"name": "{{property.name}}",
"url": "{{site.url}}",
"telephone": "{{property.phone}}",
"address": { "@type": "PostalAddress",
"streetAddress": "{{property.street}}",
"addressLocality": "{{property.city}}",
"addressRegion": "{{property.state}}",
"postalCode": "{{property.zip}}", "addressCountry": "US" },
"geo": { "@type": "GeoCoordinates",
"latitude": "{{property.lat}}", "longitude": "{{property.lng}}" },
"numberOfAccommodationUnits": "{{property.totalUnits}}",
"petsAllowed": "{{property.petsAllowed}}",
"priceRange": "${{property.minRent}} - ${{property.maxRent}}",
"amenityFeature": [ { "@type": "LocationFeatureSpecification",
"name": "{{amenity.name}}", "value": true } ]
}
NOTES
- Loop amenityFeature over the existing amenity list.
- If a CMS field is empty, OMIT the key. Do not emit null or "".
- No hard-coded property data in the template.
ACCEPTANCE CRITERIA
- Every property homepage passes Google's Rich Results Test, zero errors.
- Changing the phone number in the CMS changes it in the JSON-LD.Hi — quick one for the team. Fourteen Ridgeline listings on Apartments.com have the pet policy section blank. Apartments.com ranks #1 for pet-related apartment searches in most of these markets, so a renter filtering for pet-friendly never sees these communities. Each listing needs: pets allowed yes/no, breed restrictions, weight limit, number of pets, pet rent, and one-time pet fee. The 14: Ridgeline Park (Austin) Copper Social (Denver) The Meridian (Charlotte) North Fifty (Nashville) Harbor View (Tampa) The Wynwood (Orlando) Canvas Flats (Raleigh) Lumen District (Phoenix) Stonebrook (Columbus) The Arcade (Atlanta) Estimated impact across the 14: about 410 additional organic clicks/month. Happy to do these myself if someone can share access. — Cameron
Ridgeline Park welcomes cats and dogs — up to two pets per apartment home, with no weight limit and no breed restrictions beyond those required by the City of Phoenix. Living close to the city should not mean leaving anyone behind, and the community was built with that in mind.
Up to two pets per home. Cats and dogs both welcome. No weight limit. Breed restrictions are limited to those required by City of Phoenix ordinance. Proof of vaccination required at move-in.
$35 per month, per pet. One-time non-refundable pet fee of $300 for the first pet, $150 for a second. No pet deposit.
Fenced dog run on the second-floor amenity deck, open dawn to dusk. Pet wash station with warm water and a raised basin, off the parking garage entrance on level P1. Waste stations on every residential floor.
Papago Park — 1.2 mi, with trail loops and shaded ramadas. The nearest off-leash park, veterinary clinics and pet supply stores are pulled from a live local search when the ticket is generated, with their real names and distances from 48th Street.
Not urgent, worth a nudge
Cleared this week · 0
Every special, ready for Google Ads
| Community | Special, as written on the site | Ad headline · 30 max | Discount | Comes off · 20 max | Ends | Status |
|---|---|---|---|---|---|---|
| Reading the daily scan files… | ||||||
Your edits win, until the offer changes. The moment you type in a row it stops being managed and your wording is kept. But an edit is written against one specific offer — so when the website’s special changes, the hold releases, the row goes back to a fresh suggestion, and it is flagged with what you had written before. An override that outlived its offer would quietly run last month’s concession forever.
End dates come off the page. Most of these specials publish their own deadline — “apply by July 31”, “move in by 8/31”. That date is used, because it is the one the leasing office will honour. Where a property names no date, the field is left empty rather than inventing an expiry: the daily scan is already the expiry mechanism, and a promo that ends early stops serving while the website still advertises it.
What sits behind each of those numbers
Every number on this dashboard is pulled straight from the source that owns it — Google, Meta, and your own community websites — in real time. No spreadsheets, no manual updates, no middle layer guessing. Here's exactly what powers it and why it holds up against anything on the market.
Google Ads & Meta
Spend, clicks, cost-per-lead and campaign performance read live from Google Ads and Meta through their official APIs — the direct connection, not a reseller dashboard that adds a markup or a delay.
Website Analytics
Traffic, sources, conversions and the search queries bringing renters to each community come straight from GA4 and Search Console — Google's own first-party measurement, tied to the exact property you're viewing.
Floorplan Pricing & Specials
Every morning the platform visits each community's own website the way a renter's browser would, waits for live pricing to load, and reads the real "starting at" price for every floorplan plus the current special — across all 30+ communities automatically.
Same-Day Specials Alerts
The moment a community changes its concession — "12 Weeks Free" becomes "$1,000 Off" — you get one email that morning showing the exact before-and-after wording, per property.
Google Ads Price Sync
A one-click control pins your live lowest price into your Google Ads headline — "Studio from $1,335" — or features a specific bedroom type when you want to push it — "2BR from $2,305" — always under Google's 30-character limit. As the price moves, the headline updates on its own.
Website Health
Checks indexing, broken links, page speed, mobile health and schema mark-up, then gives you a plain-English punch list you can download and hand to a web team — with the "why it matters" and the fix for each item.
AI Search (GEO)
Renters increasingly ask AI — "how much are apartments at this community" — instead of scrolling search results. The platform asks those same AI tools and records whether your community is named, cited and priced correctly in the answer.
Google Business Profile
Auto-posting real price drops and current specials to each community's Google Business Profile — so the freshest pricing reaches renters searching Google Maps and Google's AI. Built and ready; waiting only on Google granting API access.
Competitor Analysis
You tell us the five communities you actually compete with at each property — the ones your leasing team already names on a tour. From there it runs itself. The same daily read that prices your own floorplans reads theirs, so you can see where you sit in your own comp set on advertised rent, and again on net effective once everyone's concessions are counted. Those two positions are often not the same, and the gap between them is the part worth knowing.