Mark Gores

Product Builder

Resume

22 years in real estate gave me a front-row seat to the problems agents and their clients actually have, not the ones software companies imagine they have. I started building solutions myself, scoping each one around a specific pain point I could validate firsthand. Now I ship AI-powered products, learn from real usage, and iterate fast.

OfferPresenter screenshot

OfferPresenter

offerpresenter.com

The Problem

Listing agents drown in PDFs during multi-offer situations. They manually extract terms from each purchase agreement, build comparison spreadsheets by hand, and still miss details. Buyer's agents cobble together offer packages from loose files with no consistent format. I lived this on both sides of hundreds of transactions. The pain was consistent and unaddressed.

What I Built

An AI-powered tool that extracts offer terms from purchase agreement PDFs and generates color-coded comparison grids with net-to-seller calculations. For buyer's agents, it assembles polished offer packages with cover letters, shareable links, and ready-to-paste emails, all in under a minute.

Key Decisions

  • Scoped the MVP to PDF-in, comparison-out, with no form entry. I tested the idea with 10 agents first: every one said they'd use it if it read their existing documents. That validated the core bet before writing a line of code. The AI extraction layer had to handle messy, inconsistent PDFs from dozens of brokerages, so I iterated on prompt design and parsing logic until accuracy was high enough that agents trusted the output over their own manual process.
  • Free early access to de-risk adoption. Agents are notoriously resistant to new tools. Rather than guess at pricing, I launched free to measure actual usage patterns and identify which features drive repeat sessions.
  • Built shareable comparison links so every output becomes distribution. Each comparison shared with a seller puts the product in front of the listing agent on the other side. Growth is embedded in the workflow, not bolted on.

Stack

Next.jsOpenAI APIPDF ParsingClerk AuthTailwind CSSVercel
Prior Lake Events screenshot

Prior Lake Events

priorlakeevents.com

The Problem

Local events in Prior Lake were scattered across Facebook groups, city websites, church bulletins, and word of mouth. Residents missed things constantly. I kept hearing the same question from neighbors: 'What's happening this weekend?' There was no single answer, and after 40 years in this community, I knew the demand was real.

What I Built

A community events calendar that aggregates local happenings into one searchable hub with multiple views. Paired with a twice-weekly newsletter now reaching 850+ subscribers, delivered Monday and Friday so people can plan their weeks.

Key Decisions

  • WordPress over custom code. I needed to ship in days, not months. The Events Calendar plugin gave me 80% of what I needed immediately, so I could learn from real usage before investing in anything custom.
  • Newsletter as the core product, calendar as the engine. I tested both and open rates told the story: 65%+ consistently. Email is where this audience lives. The calendar feeds the newsletter, not the other way around.
  • Local business advertising as the revenue model. 800+ engaged, hyperlocal subscribers with high open rates is exactly the audience small businesses can't reach through Meta or Google. The unit economics work because the audience is narrow and high-intent.

Stack

WordPressThe Events CalendarMailPoetMeta PixelGoogle Analytics
priorlake.realestate screenshot

priorlake.realestate

priorlake.realestate

The Problem

Homeowners and buyers rely on Zillow estimates and national headlines to understand their local market, but both are misleading at the neighborhood level. Agents gate-keep this data behind lead capture forms. Every week, clients asked me questions Zillow couldn't answer accurately. The data existed in MLS. It just wasn't accessible to the people who needed it most.

What I Built

A real-time market intelligence dashboard analyzing 6,000+ MLS records updated every 15 minutes. Covers median prices, days on market, bidding war rates, waterfront premiums, neighborhood comparisons, seasonal patterns, and seller strategy guidance. All freely accessible, no email required.

Key Decisions

  • No lead capture wall. I deliberately chose trust over lead gen. The conventional play is to gate data behind a form, but I'd seen how much that frustrates consumers. Making it free generated more inbound calls than any lead form ever did.
  • 15-minute MLS refresh cycle. I tracked which pages had the highest bounce rates and stale data was the common factor. Freshness became the core quality metric. If a number doesn't match what someone's agent told them yesterday, they won't come back.
  • Segmented by what locals actually search for. Prior Lake is a lake community, and the 65% waterfront premium is the most-asked question I get. Structuring the dashboard around real user questions, not generic market categories, keeps engagement high.

Stack

Next.jsNorthstarMLS APIServer ComponentsTailwind CSSSVG Data VizVercel
Listings and Solds screenshot

Listings and SoldsShuttered

The Problem

Homebuyers and sellers are stuck using dumbed-down search tools on Zillow and Realtor.com while their agents have access to far more powerful MLS search behind a login. The best filters, the freshest data, the sold history: all gatekept. Consumers get lead capture forms disguised as search engines. I wanted to give the public the same tools I used every day as an agent, with nothing held back.

What I Built

A full MLS consumer search platform with feature parity to professional agent tools, plus something no MLS search offers at any level: computer vision integration that let users search by visual property features. Want homes with white kitchen cabinets, hardwood floors, or stone countertops? Upload a photo or describe what you want and the system matched against MLS listing photos. Built on a real-time MLS data feed with no registration wall.

Key Decisions

  • No login, no lead capture. Same philosophy as priorlake.realestate: trust over extraction. If the tool is good enough, people come back and eventually pick up the phone. Gatekeeping the data is the problem, not the business model.
  • Computer vision as the differentiator. Standard MLS search filters are keyword-based and agents barely fill them out. Visual search solved a real gap: buyers know what they want a kitchen to look like but can't describe it in dropdown menus. I built a working prototype using image classification models against MLS photo sets.
  • Shelved due to unit economics. The CV models worked but the cost of running inference against MLS-volume image datasets didn't scale on a solo budget. The product validated the concept but needed infrastructure investment beyond what I could justify independently. Knowing when to stop is as important as knowing what to build.

Stack

Next.jsAWS/S3Computer VisionNorthstarMLS APIVercel
Historical Pen Pals screenshot

The Problem

The greeting card market is a $7 disposable experience. Meanwhile, people (especially parents and history enthusiasts) are looking for something more meaningful than a screen. I saw whitespace at the intersection of physical mail, AI personalization, and storytelling. A different kind of product than anything I'd built before, which was the point.

What I Built

Personalized, handwritten letters from historical figures delivered by mail. Five letters for $29, written in character with real ink on premium paper. Recipients reply via QR code, and the historical figure remembers the conversation. 45+ figures from Einstein to Cleopatra.

Key Decisions

  • Physical mail, not email. The medium is the product. I tested the concept with a landing page and $50 in ads before building anything. Conversion rates confirmed people would pay for tangible over digital. That signal shaped the entire product.
  • Two-way correspondence with memory. Early buyers told me the first letter was a novelty but the reply is what hooked them. I built a prompt architecture that maintains character voice and conversation context across multiple exchanges. The AI has to stay in character as Einstein while referencing something a 10-year-old wrote last week. That continuity turned a one-time purchase into ongoing engagement.
  • Acquisition funnel built around the gift buyer, not the recipient. Ad data showed 70%+ of purchases were gifts. The buyer persona and the user persona are different people, so the landing page, copy, and targeting all speak to the person buying, not the person reading.

Stack

Next.jsOpenAI APIPrompt EngineeringMeta AdsTailwind CSSUSPS Fulfillment