Juniper Real Estate Co. is a boutique real estate team in San Diego. In late 2025, Miguel Chairez brought on an agency to fix the website and get content moving. Months went by and the work never landed.
In late February 2026 he brought the problem to me. I rebuilt every page on the site with an AI content engine, shipped 23 pages in a single week, and kept publishing through the end of April.
The chart below is what happened next.

Eight flat months, then liftoff
For eight straight months, from July 2025 through mid-March 2026, junipersdre.com earned somewhere between 10 and 60 Google impressions a day. That is what a stalled site looks like: real business, real expertise, invisible in search.
The engine content started landing in early March. On March 13, daily impressions crossed 100 for the first time in the dataset. One week later the site was over 500 a day. By June it was running 1,000 to 1,700 a day, and the curve is still climbing.
New pages were only half of it. The rebuild fixed the technical foundation at the same time, so the day content went live, Google could crawl it, read it, and rank it. That is a big part of why the line turns when it does, and I break down that groundwork further down.
Comparing two equal periods of about 110 days each tells it plainly. From mid-November to mid-March, the site earned roughly 4,100 impressions and 46 clicks. From mid-March to early July, it earned roughly 81,200 impressions and 190 clicks. That is close to 20x the impressions and 4x the clicks, with June alone accounting for about 35,000 impressions.
Volume was not the only thing that moved. Average position improved from the twenties before the rebuild to around 11 after, which means the site is competing on far more queries and placing better on them at the same time.
Clicks are accelerating, not plateauing
Impressions are visibility. Clicks are people actually arriving. For most of the year before the rebuild, the site pulled under 10 clicks a month. The engine pages blew past that within weeks, and the pace keeps rising.

At the end of March the trailing 28 days held about 20 clicks. By early July it was 85. Search compounds slowly and then quickly, and this site is in the quickly phase now.
What I actually built
This was not a batch of blog posts. The work covered every page, homepage through the neighborhood community pages, with a content engine built on top: a system trained on Juniper’s market, voice, and data that produces publish-ready pages with a quality gate that rejects filler.
It does not stop at words. Visuals come three ways: branded charts and graphics the engine generates, my own photography, and licensed stock from image services, all set on brand. That is where the charts on Juniper’s pages and in this write-up came from, no separate designer needed.
The pages that came out of it are doing the work. Over the last 90 days:
- Best Neighborhoods in San Diego: 14,600 impressions, the site’s biggest page.
- How Much Home Can You Afford in San Diego: 6,700 impressions.
- Moving to San Diego with Kids: 3,800 impressions.
- North Park coffee guide: 3,700 impressions, and more on this one below.
- ADU Permits by Neighborhood: built on real permit records, and the best click-through rate on the site at about 2 percent.
The rebuilt community pages lifted too. The Mission Valley page alone pulled 7,000 impressions in the same window.
The engine also runs the whole pipe, not just the blog. It published, optimized, and distributed on a schedule Miguel never had to touch.
The wedge: data no one else was publishing
Before a single page was written, the bet was positioning. San Diego has no shortage of real estate content, but almost all of it is the same recycled market-summary fluff. What nobody was producing at Juniper’s level was genuinely data-backed local coverage: real permit records, real affordability math, real neighborhood detail, written for the exact questions San Diego buyers actually ask.
That was the wedge I gave Miguel. Instead of fighting for the crowded terms every agent in the city chases, Juniper would own the hyperlocal, evidence-first coverage the market was missing. The ADU permits page is the clearest example: nothing but real permit data by neighborhood, the kind of hyperspecific answer no one else was willing to write.
How the engine finds pages inside that wedge
Traditional keyword research starts with a database. You type in a phrase, get back monthly search volumes that are often months out of date, and write toward the biggest number. Everyone using the same tool ends up chasing the same crowded terms.
Juniper’s engine starts with live data instead. Before it writes anything, it scrapes what is happening in San Diego search right now: the questions people are actually asking, the pages already ranking, and the gaps those pages leave open. That is how it finds the pages worth building inside the wedge, and the signal is current, not pulled from last year’s snapshot.
The North Park coffee guide was not a lucky guess. The engine found real, present-day demand around the neighborhood and thin, generic coverage answering it, then wrote the page that covered the question better than anything already there. Live signal in, targeted page out. That is the difference between guessing at keywords and answering what your market is searching for today.
Every page built to be found
Good writing only ranks if search engines can read it cleanly, so the technical layer was its own piece of strategy, not an afterthought. I configured the whole site on RankMath, then went page by page with the agent to set each one correctly: a title tag and meta description written for the exact query the page targets, and JSON-LD schema that tells Google and AI engines what the page is, who wrote it, and where it applies.
That schema work is a big reason the pages get pulled into AI answers. When a model can parse a page as a structured guide with a clear subject, author, and location, it is far easier to cite than a wall of unlabeled text. Good writing gets a page read; structure is what lets a machine hand it back as a source.
That technical groundwork is now its own offering, The Foundation, for sites that need it fixed before the engine goes on top.
AI search started citing the work
Rankings were the first result. The second was newer: AI assistants started using Juniper’s pages as sources.
In March, two weeks after the North Park coffee guide went live, ChatGPT was citing it for North Park coffee queries, ranked alongside names like Thrillist and San Diego Magazine. A real estate site, cited for coffee, because the page had hard data, neighborhood detail, and structure an AI can extract.

It was not just ChatGPT. Perplexity, Claude, and Google’s Gemini pulled the same guide into their sources too.



And the visibility turned into something warmer than traffic: a North Park coffee shop reached out to Juniper after finding the guide. That is a local business walking in the door because of a page the engine wrote.
When I asked Miguel what the rebuild changed, he framed it around strategy, not traffic:
Ryan didn’t just build pages, he helped me figure out what we should actually be known for. Instead of chasing the same market updates every agent in San Diego posts, we focused on the local questions people were really asking.
Why this worked
Strategy first, then the machine. The wedge decided what Juniper should own; the engine put it in front of people. Neither half works alone: strategy without the engine stays a plan on a page, and the engine without strategy just makes generic content faster. It is the same pattern behind every content engine build, including the one I ran for a product consultancy, where the strategy was positioning instead of data.
The agency billed for months and shipped nothing, because agencies run on time and coordination. The engine turned the same job in a week, because there was nothing to coordinate: one person, one system, and a client who knows his market cold.
Where this goes from here
This build proved the hard part: going from no visibility to ranked and cited across Google and AI search in a matter of months. The next question is what to do with all that reach.
The lever now is click-through. At this scale of impressions, small gains compound fast, and the moves are known ones: sharper titles and meta, pages tuned to what each searcher actually wants, and the structure Google rewards with a rich snippet.
A build gets you seen. An ongoing engine keeps refining what is already live, so more of those impressions turn into visits month after month.
If your site has been sitting flat like this one was, the content engine page explains what a build looks like, or you can get in touch and I’ll look at where you stand first.