Tech Track 2nd at Snowflake Korea 2026: the eleven Cortex features that were really seven
Pick a goal, and five agents argue over Snowflake Cortex evidence before ranking Seoul districts. WIGTN Flake placed second in the Tech Track. A later code-path audit cut the eleven capabilities we presented down to seven.

Seoul, April 2026. Snowflake's AI & Data Hackathon Korea opened on March 17, ran for a month with more than 500 people taking part, and finished on April 29 with three finalists on stage in each of its two tracks. WIGTN Flake placed second in the Tech Track.
This is the brief we were handed, the thing we built against it, the model decision the demo rested on, and the audit that afterwards took our own headline number from eleven down to seven.
The brief, and what it would not let us do
Snowflake supplied the data and left the idea open. Four datasets came through Snowflake Marketplace (NextTrade, RichGo, SPH and AJD), and everything you built had to sit on top of them and on the Snowflake platform. You could bring your own problem. You could not bring your own warehouse.
Three judging criteria: how well you used the technology, how complete the service was as a combination of data and AI, and whether it complied with security and data governance. That third one is not where a hackathon usually puts its attention, and it quietly rules out the easiest answer in the room, which is to pull everything out of the warehouse and hand it to an external model.
The constraint that shaped the build most, though, was the format. The first cut was not a live demo. It was a ten-minute video. A recording judges what an audience can see happening, not what the system is technically capable of, so every design decision downstream became a decision about legibility: what appears on screen, in what order, and whether a viewer can tell that real SQL just ran.
What we built
Every public-data dashboard in Korea can tell you how many people walk through Yeoksam-dong. Almost none of them will tell you where to open your cafe. The gap between a number and a decision is the actual problem, and it is not a data problem.
So WIGTN Flake starts from the goal rather than the query. You pick one of six purpose cards (cafe or restaurant location, rental-appliance target zones, billboard placement, real-estate investment, trade-area anomaly detection, or free-form input), then either name the districts you are weighing or let the system suggest them. The goal plus the districts become the brief.
From there a GPT-4o orchestrator summons five purpose-tuned experts: a PM who facilitates, a data analyst on Cortex Analyst, a forecast analyst on FORECAST and ANOMALY_DETECTION, an insight analyst on AI_CLASSIFY, and a sentiment analyst on AI_SENTIMENT and Tavily web search. They argue in a Slack-style chat that streams as it happens, and they can disagree, because each is reading a different signal.
What lands at the end is a Top 3 ranking with the reason each district that lost was excluded, anomaly badges on the ones behaving strangely, six-month FORECAST charts, and an action checklist written for the purpose you picked. For a cafe that reads like: secure a 500m radius around the Banpo subway exit, peak hours 12 to 14, lead with Instagram.

The bet: two vendors, not one
The obvious play at a Snowflake hackathon is to run everything through Snowflake. We did not, and that was the decision that could have gone badly with judges scoring us on technology utilization.
Cortex LLM on claude-4-sonnet took the report generation, and it took it on measurement rather than preference: 1,657 characters in 17.3 seconds with zero garbage tokens, against snowflake-llama-3.3-70b at 38.4 seconds on the same task, roughly twice as slow and intermittently collapsing into reserved-token fragments mid-stream. The comparison lives in the repository as scripts/test-cortex-streaming.ts, so it can be re-run instead of believed.
GPT-4o took the debate personas, where Function Calling stability and staying out of repetition loops mattered more than streaming throughput. The rejected alternative was the all-Cortex build, and the reason to reject it was never that Cortex is worse. It is that the two layers are being asked for different things, and committing to one vendor across both guarantees that one of them gets a model chosen for somebody else's problem.
The bet came with three tiers of insurance. Direct Cortex Analyst calls are the live path. If the warehouse path is unavailable, GPT-4o Function Calling picks up the supported tool calls. If the Cortex LLM stream degrades, a hasGarbageTokens() check switches the report over to GPT-4o mid-generation. When the first round of judging is a recording, a red error screen is not a bug you fix later. It is the submission.
What shipped
- Five purpose-tuned agents per session behind a GPT-4o orchestrator, streamed over SSE into a Slack-style chat with the join, leave and typing events visible.
- Cortex Analyst running text-to-SQL over three actively selected Semantic Models: SPH (SKT foot traffic, Shinhan card sales, KCB asset and income across Seocho, Yeongdeungpo and Jung-gu, 2021–2025 monthly), RichGo (apartment sale and lease price index, 2012–2024) and AJD (telecom contracts, call-centre and rental data across all Korean districts, 2024 onward).
- Three pre-trained FORECAST models over the structured time series: price per pyeong, foot traffic, card sales. They return a six-month projection on call without retraining.
- ANOMALY_DETECTION promoted from a supporting signal to the lead role, injecting "watch this district" badges into the ranking. That is the moment the whole demo is arranged around.
- A three-tier fallback: live Cortex path, GPT-4o Function Calling for tool calls, GPT-4o for the report when the Cortex stream degrades.
- Next.js 16.2, React 19.2 with the compiler on, TypeScript 5.9 strict, Vega-Lite charts rendered inline in the chat rather than in a separate results pane.
- Roughly 90% of the orchestrator and the chat components carried over from WIGENT, the debate platform that took the Grand Prize at Build with TRAE Seoul. Almost none of the multi-agent machinery was written during this hackathon.
What is not in that list is an hour count or a commit count. The development window ran from the March 17 kickoff to the April 29 finals; we did not instrument our own month, and a number invented after the fact is worth less than the gap.
The result
Second in the Tech Track. First went to 너의 모든 순간 for 정정당당, a Cortex RAG multi-agent platform that combines external data to improve field sales strategy and call conversion in real time; third to 우승하고싶은맘이커졌어막공룡만해. On the Business Track, Team Kaos won with 상권, a service that merges trade-area data to forecast which districts will be worth being in six months out. Snowflake announced all six placings at the April 29 final round.

The final round, before the panel filled the chairs.

Tech Track, Top 3. The full Korean title, which nobody has ever said out loud in one breath.
Eleven capabilities, then seven
The deck said eleven Cortex capabilities across four datasets. Afterwards, someone read the production code path end to end, and three of those claims did not survive it.
- NextTrade was connected and registered as a Semantic Model, and the audited path never actively selected it. Real-time stock quotes, fills and program-trading data are a fine dataset; they are not what a question about which district to open a cafe in reaches for, and the orchestrator kept routing around it. Connected, not used.
- The Cortex Agent layer was dead code. It is in the repository and it does not execute on the live path, which means it cannot be counted as a capability the system uses. The grounded SQL results all came from direct Cortex Analyst calls.
- TOP_INSIGHTS fell back to dynamic-table SQL. The insight the user reads is real. The function credited on the slide for producing it was not the thing that produced it.
What is left is seven capabilities that actually run: Cortex Analyst, Cortex LLM, FORECAST, ANOMALY_DETECTION, AI_SENTIMENT, AI_CLASSIFY and data_to_chart. And three actively selected datasets: SPH, RichGo, AJD. Seven and three are the numbers on this site, on the project page, and in the tech report, and they should stay seven and three.
Connected is not used. A slide that counts the difference is a slide that will not survive someone reading the code.

None of this changes the placing, and none of it was invented to win anything. It is what happens when a count is taken from an architecture diagram rather than from a stack trace, under a clock, at two in the morning. The useful part is not the correction. It is that the correction was cheap to make because the code was there to be read, and that it was made before anyone else made it for us.
What survived
- The WIGENT base, again. The orchestrator and the Slack-style chat have now gone into two hackathons without a rewrite, which is the entire argument for keeping them.
- The three-tier fallback, which is now how we build anything with a live demo attached to it. Not because the warehouse fails often, but because finding out on stage costs more than the code we would save.
- Purpose-first routing, as a pattern rather than a feature. The goal, not the query, decides which models get summoned and which data gets selected. It is the part of this build we have reached for since.
- The benchmark habit. scripts/test-cortex-streaming.ts is a small comparison script that settled a model choice in an afternoon and is still runnable a quarter later. Every model decision on this project has one behind it.
- The Cortex Agent layer did not survive. It came out of the capability count and it should come out of the repository.
- NextTrade did not survive either. It was in the build because it was in the brief, not because a purpose needed it, and that is the wrong reason to connect a dataset. We would rather ship three that carry weight.
- The eleven-capability slide did not survive, and it took the habit of counting integrations with it. The number that goes on a slide now is the number that survives a read of the code path.
Thanks to
Snowflake Korea, for running it and for supplying the data through NextTrade, RichGo, SPH and AJD on Marketplace. A hackathon that hands you the datasets is a hackathon where the teams are actually comparable.
The judges, for a rubric that put security and data governance next to technology utilization. That is not where a hackathon usually puts it, and it is a better question than the one we were braced for.
And the other five finalists. A month, four shared datasets, six teams, and no two of the systems on that stage looked anything alike. That is the part worth showing up for.
Seven capabilities that run beats eleven that were counted.
Working on something like this? Let's talk.
Talk to us