I joined the internal hackathon.
It was a chance to work alongside colleagues I rarely worked with before and reach a result in a short window. It was also the moment I started using AI tools.
The Idea
When you use a corporate card, you have to file an expense voucher in the groupware. The company has an expense voucher guide, and every time you have to find that guide and fill in the form by it. A small lunch payment still demands the right category, memo, tax code — every field by the rule.
I proposed automating that with an LLM Agent. The user types the payment memo, the Agent reads the company’s guide, and fills the voucher form. The scope fit a hackathon, and the value showed even at that scope.
Shifting to Chrome Extension
We started with a Slack Bot in mind — already familiar inside the company. Then a teammate suggested Chrome Extension instead. With it, the user can run the chatbot on top of the groupware page and not break flow. That switch was the decisive change for usability.
The team brought together developers and non-developers I rarely worked with before. Chrome Extension UI, backend Agent response shape, how to inject the company guide into the LLM, the review flow for users — each person’s strengths met at one outcome in a short window. Decisions that would have been a long thread on a chat tool got resolved next to each other in a sentence or two.
What We Built
A Chrome Extension chatbot wired to a backend LLM Agent.
A user opens the chatbot on a groupware page, types the payment memo, and the backend Agent reads the company’s expense voucher guide and returns a filled form. The user reviews the result and applies it in the groupware.
The tool combination came together this hackathon, too. For development, I started using Claude Code. For the Agent’s backend LLM, we used ChatGPT’s structured output. Both were first proper uses for me.
Where AI Tools Started for Me
Claude Code let me get to a result fast. Volume that would have been hand-written before passed quickly, and I moved on to the next decision sooner.
But not splitting work into small enough units made mistakes accumulate. A large change handed off in one go shifted parts I intended and parts I did not, and chasing those differences afterward took longer than the time I saved. Some of the code that came out was hard to maintain.
In the follow-up work after the hackathon, refactoring AI-written code became a separate task on its own. That was the cost of moving a fast prototype into actual service. I see it as material for the next step rather than a regret.
Presentation and Launch
I gave the company-wide presentation. I do not present often, and the pressure of summarizing in a short window was a good push. The team won 1st place.
The work after the hackathon was longer than the hackathon itself. The project was launched internally, and shaping it into a real service required about two months of follow-up improvements. Chrome Extension stabilization (TypeScript port included), Agent response shape, batch processing, the review flow for users — the hackathon POC kept being shaped into a real service.
There is still room for improvement, but the hackathon output is in actual use inside the company — that is the largest outcome.
What the Starting Point Means
What started here matters more than the 1st-place result. Bringing colleagues who do not usually work together to one outcome in a short window is rare inside a company. And this hackathon was where I started using Claude Code in earnest. I saw the limits along with the value, but the material for the next step came together in that time.