Direct booking, from search to host follow-up
VacationHolm is a direct-booking marketplace for holiday homes in the Azores and Madeira. Guests can find a suitable stay and contact the host with a consistent quote. Hosts keep control of the conversation, availability, and payment arrangement, then record enough of the result to understand where future inquiries stall.
The product is built around one operating loop. A guest searches with dates and party details. VacationHolm checks what it can know about availability, calculates the stay price, and saves the same quote with the inquiry. The host responds in context, closes the booking directly with the guest, records what happened, and uses the resulting evidence to improve the listing or response library. The platform never takes payment.
From a regional premise to a working product
My partner brought the idea of a direct-booking listings platform for the Azores and Madeira, along with local market knowledge and commercial outreach. I turned that premise into the product: defining most of the workflows, designing the data and interfaces, and implementing the application end to end. Our discussions shaped the details, including traveler search, bilingual communication and host onboarding.
The development went beyond implementing listing pages. I proposed ways to reduce onboarding friction, connect guests and hosts across languages, and turn host activity into decisions. The resulting product combines search and inquiries with calendar control, reviewed reply drafts and an Insights action center.
Six situations the product is designed to handle
A guest finds a plausible stay and sees one consistent quote
- When
- A traveler searches by island, dates, guest composition, bedrooms, price, amenities, or house rules, then opens a property that appears to fit.
- What happens
- The results reflect active listings and the requested date range. The guest sees a stay total built from the property's base, weekend, and date-specific rates, any eligible weekly or monthly discount, and the cleaning fee, with a nightly breakdown in the listing's currency. VacationHolm checks the dates and price again when the guest sends the inquiry. If the rate changed, the guest is asked to review the new quote before continuing.
- Why it helps
- The guest can understand how the stay total was formed, while the host receives the dates, party details, and preserved quote that the guest actually reviewed. A price change is visible instead of silently replacing the guest's earlier total.
- Limit
- The quote is an inquiry quote, subject to host confirmation. If no recent calendar sync supports an available result, VacationHolm reports availability as unknown rather than presenting an empty calendar as proof that the dates are free.
A host handles a follow-up with a grounded, reviewable draft
The host starts in a dashboard of owned listings and waiting work. An overdue guest reply can be opened from the attention queue; a failed calendar refresh has its own sync action. The conversation then keeps the guest’s request, original stay quote and proposed answer together.
- When
- A guest asks a follow-up about check-in, pets, parking, cancellation terms, or another detail that may already exist in the listing or the host's approved response library.
- What happens
- VacationHolm prepares an English and European Portuguese draft from the current listing, the inquiry quote, the current availability state, and approved knowledge for this conversation, property, or host portfolio. The drafting instructions require the same facts in both languages, identify the supporting sources, and tell the model to flag missing or conflicting information. The host sees the draft and its sources, then reviews, edits, and chooses whether to send.
- Why it helps
- Routine answers can begin with the same property facts and reviewed policy language the host has already chosen, while a changed listing or withdrawn approval invalidates stale draft context.
- Limit
- Smart Reply produces a draft; it does not send autonomously or guarantee that every conflict is detected. Coverage depends on maintained listing data and approved source material, and the host remains responsible for the final reply.
A host reconciles imported calendars with direct decisions
- When
- An external iCal feed changes, the host needs to block dates manually, or a direct inquiry changes from confirmed to still discussing or did not book.
- What happens
- An imported calendar refresh updates that feed's dates without removing separate manual or direct-booking blocks. The host can see the last attempt, last successful sync, and any current error, and can request a property sync. The rate calendar supports manual blocks. Confirming a direct booking blocks its future stay dates; changing that outcome releases only the dates blocked by that inquiry.
- Why it helps
- VacationHolm preserves why a date is unavailable, so a change to one source does not erase a block owned by another. A reversed confirmation or failed booking does not require a broad calendar reset.
- Limit
- iCal is periodic and can be delayed. A stale, failed, or never-successful sync is surfaced as uncertain availability; VacationHolm does not promise instant propagation between marketplaces.
A host closes the loop on a booking arranged off platform
- When
- After the conversation moves to a direct agreement, the host knows that the inquiry is still being discussed, has become a confirmed booking, or did not book.
- What happens
- The host records the current outcome inside the conversation. A confirmed result can include an optional host-reported amount in the inquiry currency. A failed booking requires one controlled reason, such as unavailable dates, price, minimum stay, property fit, changed guest plans, another booking, a host decline, or a guest who stopped replying. Optional free text stays as context instead of being merged into the grouped reason. Previous recorded states remain in the history.
- Why it helps
- The active calendar follows the host's latest report, while the historical record preserves when the reported state changed. The product can distinguish an unresolved conversation from a known loss and show which reasons recur across properties, arrival months, and stay lengths.
- Limit
- These are host reports about an agreement and payment handled elsewhere. VacationHolm does not verify the amount, collect funds, or treat the record as platform revenue.
A repeated guest question becomes a review task, then approved knowledge
- When
- The same topic appears in unanswered messages, questions for which Smart Reply found no matching knowledge, dismissed drafts, or replies that the host changed substantially before sending.
- What happens
- The recurring-question view groups those signals by property and topic, keeps short examples linked to their conversations, and shows a draft beside the substantially edited sent reply when that relationship was recorded. A host can save the corrected answer as a draft, inspect its exact source question and answer, choose its scope and dates, and approve that version for future drafts. Editing an approved item sends it back through review; withdrawal removes it from future reply context.
- Why it helps
- A vague sense that guests keep asking about parking can become a specific decision: clarify the listing, add a property policy, or approve the answer the host already used. The next comparable draft can then cite maintained knowledge instead of relying on an old transcript.
- Limit
- The panel reports recorded follow-up signals, not every question a guest may have asked. Older manual replies without an exact message link can reduce attribution coverage, and saving an answer creates a draft rather than approving it automatically.
A host decides what to improve using demand, funnel, and change evidence
- When
- A property receives fewer visits or inquiries than expected, recorded searches suggest a near fit, or the host has changed listing copy, photos, a policy, or an approved answer and wants to inspect what followed.
- What happens
- The missed-demand view groups near misses against the host's listings, including capacity, bedrooms, amenities, house rules, dates, and price basis, with examples and capture-health notes. The funnel follows journeys recorded after analytics consent from a search impression through listing visit, quote, inquiry form, sent inquiry, and later host-reported confirmation. Change measurement compares equal 14-day windows around a listing, photo, policy, or approved-answer change. A partial after window stays pending; a baseline from before tracking stays unavailable.
- Why it helps
- The host can separate discovery friction from inquiry handling. A search-to-visit drop suggests revisiting the card, photos, or fit; a visit-to-inquiry drop suggests checking the full listing, dates, or quote; recurring near misses may indicate a segment worth investigating that the current portfolio cannot serve. Change rows give the host a disciplined place to inspect before and after counts.
- Limit
- These are descriptive product signals. Search snapshots are sampled client observations, not verified human demand, and may include automated traffic. Analytics consent, instrumentation coverage, sample size, overlapping edits, calendar freshness, and outcome-recording coverage all affect what can be shown. A before-and-after difference does not prove that the change caused it.
What holds the loop together
One saved inquiry
The inquiry, first message, quote snapshot, and reply job are created together. A partial write does not leave the host with an orphaned conversation or the guest with a missing opening message.
Provenance over confidence
Availability rows retain their origin. Drafts retain supporting source IDs. Outcome history distinguishes current state from prior host reports. Insight rates expose the count underneath the percentage.
Unknown stays unknown
Stale availability, an unobserved baseline, a partial comparison window, and an unrecorded outcome are shown as different states. The interface does not quietly turn any of them into zero.
For a hiring reader, the engineering through-line is evidence carried across the workflow. The saved quote anchors the inquiry, approved source IDs anchor a reply draft, calendar origins anchor availability, and outcome history anchors later insight. That makes the analytics useful without claiming it observed more than it did.
Delivery and current status
The product shipped, and the venture is now on hold while the partner seeks Portuguese government funding. The September review checked a newer local source snapshot, including migrations and background-job behavior. It did not verify those changes in the hosted environment. Product delivery and deployment verification of later improvements are separate facts.
When the venture resumes, a supervised trial can measure whether guests receive consistent quote explanations, whether hosts can identify uncertain availability before making a promise, how often reply drafts are supported and then edited, how completely hosts record outcomes, and which insight panels lead to a concrete listing or knowledge change. This case study does not establish those operating measurements. The useful decision is whether this connected workflow makes direct booking easier to operate without hiding the manual judgment it still requires.