The data was broken
About six or seven months ago, I started working closely with all the data about our family resort: the booking details, the booking records, and everything connected to them. What I found was a mess, and I mean that in a technical sense. The records were fragmented. They lived in different places, they weren't connected to each other, and they weren't normalized.
"Normalized" is a database term, and it matters for this whole story. In plain words, it means every fact is stored once, in one place, in one consistent form, and everything else points back to it. Ours was the opposite. The same guest could show up in several places, written in several ways. It was scattered, and honestly, it didn't look good.
Here is what that looked like day to day. The only key we had was the acknowledgment receipt number, the AR number we write on every receipt. A key is the one value that uniquely identifies a record, and the AR number is specific, but it identifies a receipt, not a guest. So when I wanted to know whether someone was a returning guest, or how many transactions they'd had with us, there was nothing to look up. One receipt number could even cover two, four, five, or more transactions from the same guest. A guest's name in our digital calendar might not match their name in the ledger, which is the record of money coming in and going out. And we didn't always ask for a phone number or an email, so often there was no way to reach a guest again.
Recording a single booking meant three manual steps: add the record to the spreadsheet, create a calendar event, and create a Google Drive folder. People might say that's just three steps. But three steps done by hand, every time, is where mistakes live, especially when a cancellation or a rebooking comes in and you have to go back through all of them.
I couldn't bear looking at it. This is our family resort, and seeing the system that fragmented didn't feel good. There was a second reason it bothered me. I believe in AI, and I wanted AI to help run this place. But AI can only work with what you give it. If you merge broken data, you get a broken AI: it can't tell two spellings of one guest from two different guests, and it can only answer as well as the records it reads. The data had to be fixed first.
The mess showed up in smaller ways too. Three guests would ask the same question on Facebook at the same moment, and a template reply couldn't cover what was specific to each of them. To check whether a date was free, I had to look through a paper list or my saved messages, because there was no single source of truth. When a guest wrote a testimonial on paper before checkout, turning it into a Facebook post took 30 to 40 minutes: typing it up, editing it, and designing it in Canva. But those were symptoms. The data was the problem, so I decided to fix the root cause.
Why I kept putting it off
I knew all of this for a long time before I did anything about it. I was busy with my studies, finishing college, and the work was long and tedious. So I got lazy, and sometimes I neglected my responsibilities. The fix sat on my backlog.
Then one day I was simply tired of doing it over and over again. Something ticked, and I opened my MacBook. I also felt a responsibility. I had just graduated, I want to be an IT professional, and building something real and fundamental seemed like a good way to prove myself. Maybe "obligation" isn't the right word, because the truth is I enjoy doing this.
Starting
The first thing I built was the knowledge base of the resort. Our information was scattered across our Airbnb listing, our website, and other places, and if an AI is going to answer for the resort, it needs one updated source it can trust. That became the foundation: a single knowledge base the AI can read, plus the predefined skills I would write later.
My first attempt was a booking bot made with n8n and Gemini. It turned booking messages into spreadsheet rows, calendar events, and Drive folders. It didn't interest me. It felt like gluing separate platforms together, and I wasn't excited to keep building it.
Then I found Hermes, and that changed things. Hermes is a harness for AI agents. A chat model on its own can only talk. A harness lets the model use tools, such as reading a spreadsheet or sending a message, under rules that you set. I set it up, learned it, and it's now my main tool. I talk to my agent from Telegram, from the Hermes agent itself, and mostly from my terminal. Using it feels like having my own executive assistant, not a pile of fragmented platforms.
The hardest part
We had no centralized booking ledger, so I had to build one and migrate three to four years of records into it. My agent generated the migration file, but I'm skeptical by nature, and I couldn't take it on faith. If one payment lands on the wrong guest, the ledger lies, and so does every report built on top of it. So I checked it by hand. I cross-verified every acknowledgment receipt against the migration file: 500+ transactions.
It was slow because of the shape of the data. One receipt number could cover several transactions from one guest, so I had to track every line and every pattern for that guest. At the same time, I had to work out whether each person was a returning guest, because the old system never recorded that. And the names didn't always match between the calendar and the old records, so I kept backtracking to confirm who was who.
I almost gave up. Part of it was the sheer amount of cross-checking, and I felt overwhelmed. But there was a stranger part. New ideas kept coming, so many and so strong that they overthrew the problem itself. I was getting pulled toward improving things when I hadn't finished fixing the thing that was broken. And then I stalled for a week.
That week felt like torture in my mind. I knew it was wrong, and I kept doing it. I think my mind was creating an illusion, and that illusion was the procrastination itself. There's a verse that describes the feeling exactly:
"For what I am doing, I do not understand. For what I will to do, that I do not practice; but what I hate, that I do."
Romans 7:15 (NKJV)
Then, after a week, I decided to continue. I wanted to see the end result, and I realized that if I kept stalling, the gap between me and the payoff would only get bigger. Once I started, I became so excited that I finished the remaining 200+ transactions in a single day.
Employees with job descriptions
Once the data was clean, I could build on it. What I ended up with feels like spawning my own employees, each with a predefined job description. In Hermes, a job description is called a skill: a written set of instructions the agent follows. I have nine so far:
- Core knows the resort's facts and house rules.
- Booking intake handles bookings, the ledger, guest media, and reminders.
- Rates handles pricing and quotes.
- Finance reads the ledger and explains it. It never writes.
- Guest replies drafts messages, and I send them.
- Social handles the Facebook page.
- Compliance answers compliance questions conservatively, from official sources.
- Sheet admin handles the structure of the spreadsheet.
- Website edits and deploys the site.
Most of them draft first or preview first, and I built it that way on purpose. Before the agent changes anything, it shows me exactly what will change, including money before and after, and it saves only when I reply yes. A question or an edit doesn't count as a yes. The preview expires after ten minutes, and every change is logged. I want to review everything. It's safer in my eyes, and I can give feedback or ask for a clarification before the agent acts, instead of editing once it's in production. I also want it as robust as possible, and to follow the nature of my work.
The agent also learns, but within limits. It can save a durable fact or a lesson from real use, and it can't learn its way around the confirmation step, the receipt rule, or the privacy rules. Only I can change those.
The website is the part I love most. When I update the information, it flows into the project knowledge, then to the website, and it connects to the Facebook posts. We have a single source of truth, and the thing that was broken at the start is now the thing everything runs on.
The payoff
After a guest pays, we reserve their booking by chat. I give the agent their name and details, and it puts the booking in the calendar, creates the record in the booking ledger with payments and balances itemized, sets a reminder, and creates the Google Drive folder. What took hours takes minutes. When I want to post for a guest who just checked out, I ask the agent to craft it, and it posts after I confirm.
The agent, start to finish
The life of a stay, run from one chat
In the chat · Money
I say: Add late checkout and record their payment.
The agent says: Preview: the charge and the payment, with the balance before and after. Reply yes to save or no to cancel.
I say: yes
The agent says: Saved and logged. The calendar event now shows the new balance.
Every change
- Preview
- I say yes
- Saved and logged
A question or an edit is not a yes. A preview expires after ten minutes, and only approved staff can reach the agent.
That booking is only one slice. The figure above shows the rest of a stay, from the first inquiry to the post afterward, and the same rule runs through all of it: preview, then my yes. There's even a working AI chatbot on our website now that answers guests' basic questions, and that made me really happy.
I felt complete, and more than that, fulfilled. It feels like I'm making something meaningful, and I like doing it. I showed it to my mentor, Tim Santos, in the Sapin-Sapin AI community, and he was amazed. I asked for his feedback and he was very pleased. I'm also really happy it was featured on NYO. A lot more is still in development.
If you want the full picture, I wrote the agent up as a case study, and the resort's website has its own.
Why this is leverage
As I reflect, all of this began with one realization: this kind of workflow shouldn't exist in the long term. If I want to improve the resort, the software itself needs to improve. I think that way of thinking can help business owners, because it's a good thing for a business to be adaptable, especially in an era where technology keeps becoming more integrated and more integral to a business.
It also changed how I see myself. I'm still looking for opportunities, and I believe this is a new kind of asset, not only for a resume. It shows that I can take a real problem and carry it through, and that I can use AI for the benefit of others. So it isn't only about improving the business. It's leverage, for the business and for me.
What I'd tell you
Find the problem yourself. The best projects start where you are standing and feel the pain firsthand. You don't need a big setup. You need a real problem, a laptop, and the grit to take it from nothing to something.
Use AI as augmentation, not as a replacement. I use it everywhere, even to check myself: is my context wrong, is my question wrong, is my workflow wrong? It makes me better at my work. It doesn't do the thinking for me, which is why I checked 500+ transactions by hand.
Plan first. People begin developing and skip the planning stage, and I think that's why many of them fail. I did plan, and I even did a preliminary investigation, but my plan wasn't robust enough and it didn't give me the big picture. When a new idea came along, the plan changed. I don't want you to repeat my mistakes, though if you do, learn from them like I did.
A degree is a bonus. My IT degree helped me a lot: knowing database indexing and normalization, and the principles of good design, mattered in everything I built. But people have their own talents. There are non-IT people who are good at this, and some of them, with a little training, could become very good UX designers.
And finally, there's no such thing as failure, but you should fail well. Failure is part of the process, and it's normal. Make your mistakes, iterate, and keep improving with the tools you have. If you have a problem in front of you and a laptop, you can start, regardless of your standing.