@ GS칼텍스GS Caltex VOC AI Dashboard
Sole architect and engineer of the VOC AI Dashboard, manual review replaced by 1,000+/day auto-classification across 4 integrated channels.
Translated the marketer's free-form one-liner into structured input that produces good copy and clears legal review.
The LLM in the marketer's hands took "write me ad copy" and returned something generic. Good output only came when the input carried target, tone, use case, and brand context — and writing all that out every time was not their actual job. The answer was not to teach marketers a new skill called "prompt engineering"; it was to have the system structure the input for them.
And raising the copy quality alone was not the end. An ad only becomes "usable copy" after it clears the ad-disclosure law and the review guidelines, and running that check by hand each time was unrealistic. The endpoint of structuring was not the input — it was the output verification.
Field notes
The "free-form" input was not actually free
A line like "write me ad copy" returned generic output every time.
The context was missing from the input
Of the four axes — target, tone, use case, brand — typically only one or two arrived filled in.
Prompt engineering was not the marketer's job
Forcing marketers to learn a new skill was not going to land.
Passing as copy is not the same as passing as an ad
Someone was running the ad-disclosure-law and review-guideline check by hand for every piece of copy.
tradeoffLess expressive freedom vs. more consistent output — chose consistency
Take the user's option combo and have the system compose it into a vetted prompt template. The UI surfaces only 6–7 options; the structured prompt runs behind them. OpenAI, Claude, and others are routed by tone and use case, so the cost/speed/tone tradeoff is decided by the system.
tradeoff1:1 human review (accurate but slow with gaps) vs. automated RAG (faster, broader coverage, framed as a system assist)
Spring Boot 3 + WebFlux absorbed LLM response latency through async. One request could call several tone variants in parallel without stacking up the wait. A resort ad-banner case ran tone, length, and keyword variable combinations to find the passing line, and that pattern was locked in as the system default.

Input shape
Free-form → choice-based
6–7 option branches
Prompt authoring
User → backend
Template composition + model routing
Legal check
Human → RAG
Disclosure law and review guidelines embedded
Tuning method
Guessing → locked by experiment
Resort-banner case
“A full-stack engineer who translates free-form prompts into structured inputs so marketers never have to see the AI under the hood.”
The real load on the marketer was not the copy itself, it was getting the ad through legal review.
Built a choice-based UI, server-side prompt composition, and a RAG check for ad-review compliance.
Shipped the MVP, locked the passing pattern through a resort-banner experiment, and moved the manual legal check inside the system.
More work