# From Two Days of EDA to “Solve This Competition”: A Kaggle Workflow, Compressed

> Source: <https://pub.towardsai.net/from-two-days-of-eda-to-solve-this-competition-a-kaggle-workflow-compressed-aa5cea49c416?source=rss----98111c9905da---4>
> Published: 2026-09-11 18:01:01+00:00

A note on scope before we start. What follows is my own setup as of September 2026, built around a Claude Code skill I distilled from my competition notebooks. What I say about other competitors comes from reading public writeups and leaderboards, not from any systematic survey. I quote numbers from other people’s work with a link and a date. Where I’m guessing, I try to say so.

The winning write-up for [Kaggle Playground Series S6E3](https://www.kaggle.com/competitions/playground-series-s6e3/writeups/1st-place-gpt5-4-gemini3-1-claudeopus4-6-kgm) is titled “1st Place, GPT5.4, Gemini3.1, ClaudeOpus4.6, KGMON Playbook.” Not the features. Not the architecture. Not the ensembling trick. Three frontier models, right there in the title. The author is a four-time Grandmaster at NVIDIA, and the [companion post](https://developer.nvidia.com/blog/winning-a-kaggle-competition-with-generative-ai-assisted-coding/) walks through it as a method anyone could repeat: over 600,000 lines of generated code, 850 experiments, a four-level stack of 150 models, one person steering and agents doing the typing.

I keep coming back to that title, partly because it’s such a clear picture of what changed, and partly because my honest reaction to it was not dread. It was recognition. That write-up does loudly, in public, what I’d been quietly drifting toward for a year. And putting the tools in the title is exactly the kind of openness I’d been hoping someone at the top would model.

For context on where I sit: I’ve been close to the top of a Featured leaderboard a few times, mid-competition. I’ve rarely stayed there to the end. The final stretch rewards weeks of small tweaks and the hardware to run big experiments, and Kaggle has always fit around work. So I build the essential solution early or mid-competition, share it, and move on. That’s also why I noticed this shift in my own evenings before I saw it on anyone else’s leaderboard.

For most of my Kaggle history, the first notebook was slow and a bit sacred. A few evenings on EDA before any model touched the data (never full days; this was always the time after work): what do the rows actually represent, where do the labels come from, what is the metric really rewarding, which features leak. Every mistake turned into a comment in a block somewhere. The CV split that didn’t stratify on the right key. The “robust” scheme that didn’t match the test distribution. The groupby I trusted without checking the join. Those blocks were the residue of a way of thinking, and each one cost me a week of evenings to earn.

After enough competitions, the first notebook stopped being from scratch and became a kind of cherry-picking: the missingness block from that tabular competition, the CV scaffold from this one, the submission checker from a third, pulled together and adapted to the new data. One or two evenings instead of a week. Nothing AI-assisted, just what happens when you’ve done the same thing many times. What strikes me in hindsight is that the method became more portable than the code. I could open a stranger’s notebook and tell within a minute whether they had an EDA habit or had jumped straight to a baseline.

Kaggle added the option to open a notebook in free Colab with Gemini in the sidebar. This was not auto-EDA. I was still the one asking the questions, getting curious about a relation, getting suspicious of an output. I just handed the typing over. Missingness grouped by source. Target distribution stratified by hash bucket. A check that the split has no subject overlap. Most of what came back was decent, and the bad cells were obvious. A first notebook took an evening. The prompts I was sending were a thin verbalization of the habit from phase one; I could steer because I already knew what to ask for.

I shared my most-proud notebooks with Claude and asked it to distill how I work into a skill: what I check first, what I never trust on default, the order I build a baseline in. Now a typical entry starts with “solve this competition, use the Kaggle skill” and me watching. It lands somewhere close to where I’d have been on the third evening of phase one, in about the time it takes to make tea.

I still read every cell. I push back when something looks off. I catch the model being clever in the wrong direction. The work moved; it didn’t disappear. It feels closer to code review than to authorship now, and reviewing, it turns out, uses most of the same muscles authorship built.

This is the part that leaves me more hopeful than not. The shift is happening loudly, with names attached, and the platform is building for it rather than pretending it isn’t there.

Kaggle launched an official MCP server, [announced](https://www.kaggle.com/product-announcements/635978) as proper support for working with the platform from any capable agent. Community adapters like [54yyyu/kaggle-mcp](https://github.com/54yyyu/kaggle-mcp) had been around since spring 2025, but the official endpoint at [kaggle.com/mcp](https://www.kaggle.com/mcp) turns a workaround into something supported, and people are already building on top of it. [Galaxy-Dawn/kaggle-mcp](https://github.com/Galaxy-Dawn/kaggle-mcp), for instance, adds the discussion and writeup tools the official server doesn’t have.

NVIDIA released [nvidia-kaggle](https://github.com/NVIDIA/nvidia-kaggle), [announced](https://forums.developer.nvidia.com/t/nvidia-kaggle-is-now-live-and-open-source-on-github/375347) in July 2026, which gives Claude Code and Codex the whole competition loop: fetching the overview, summarizing writeups, reproducing kernels, submitting, managing datasets. An independent [shepsci/kaggle-skill](https://github.com/shepsci/kaggle-skill) does similar work across thirty-plus agent runtimes. The tooling for human-steered, agent-executed competition work is becoming a commons rather than someone’s private edge.

And the fully autonomous systems are competing live now, not just replaying archives. [CoMind](https://arxiv.org/html/2506.20640v3) reports beating 92.6% of human competitors on average across eight ongoing competitions. The pace shows up cleanly on one yardstick: on OpenAI’s [MLE-bench](https://github.com/openai/mle-bench), which grades agents against the original human leaderboards of 75 past competitions, self-reported medal rates went from 29.3% ([ML-Master](https://arxiv.org/abs/2506.16499), June 2025) to 43.6% ([FM Agent](https://arxiv.org/abs/2510.26144), October 2025) to 56.4% ([ML-ACE](https://arxiv.org/abs/2601.10402), January 2026) to 65.3% ([MLEvolve](https://arxiv.org/abs/2606.06473), June 2026, on half the usual runtime budget). Different scaffolds, different labs, all self-reported. The direction over twelve months is still hard to argue with. I’d much rather have these systems on public leaderboards with papers attached than tucked away somewhere; Kaggle is doing exactly what an open evaluation arena should do.

The skeptics are doing useful work too. Bojan Tunguz, a four-time Grandmaster, [dismissed](https://analyticsindiamag.com/ai-insights-analysis/kaggle-grandmaster-level-agents-are-total-unqualified-bs/) the “Grandmaster-level agent” framing in blunt terms. Yuval Levental [ran Claude Sonnet 4.5 across nine competitions](https://medium.com/@YuvalLevental/i-tested-claude-on-9-kaggle-competitions-heres-what-it-tells-us-about-ai-in-2025-a5a694170680) and saw 99th-percentile results on some, while it failed to beat an amateur baseline on Titanic, because the small domain insight about family survival didn’t surface without a nudge. I don’t read that as a gotcha. I read it as a map. It shows where the human still lives: in framing, in domain intuition, in knowing what the data means rather than what it contains.

Nobody is arguing anymore about whether strong competitors use LLMs for the coding. That’s baseline. The real question is whether the person is in the pilot seat or the passenger seat, and unlike a year ago, I think that question has a constructive answer.

Kaggle used to answer one question: what can this individual build from the same data? Compute was never truly equal; some people had their own hardware, and some were sponsored, but set aside the top percentile and free Kaggle or Colab quota put you on fair footing with most of the field. That single question has split into four, and one medal no longer tells you the mix.

I spent a while reading that as a loss. I now think it’s more honest to read it as a curriculum. Three of the four are skills the industry is badly short of, and Kaggle is quietly becoming the best free place to practice them.

Kaggle has renegotiated what it measures before. External-data rules, the arrival of pretrained models, the [AutoML Grand Prix](https://mlcontests.com/state-of-machine-learning-competitions-2024/) where teams had 24 hours, and automation was the whole point. Each time, the community argued, adapted, and the platform grew a new format instead of collapsing. You can watch this round unfolding in the forums. An earlier thread asked [“Do some Kagglers use ChatGPT?”](https://www.kaggle.com/discussions/questions-and-answers/407349) as a fairness complaint. A more recent one asks [“Restrictions on using AI-generated code?”](https://www.kaggle.com/discussions/general/634432) as a rules question. The conversation moved from “is this cheating” to “what are the terms.” I don’t see why this round is any different.

The worry I hear most, and held longest myself, is about the funnel. Compete, fail, learn. The mistakes were the education, and agents now route around the mistakes.

Then I read the S6E2 winner’s writeup. A self-described beginner took first place in a Playground competition and [documented how](https://zenn.dev/mkawa_pani/articles/d110c4b71543c9): read the advanced writeups you don’t fully understand yet, let Claude Code or Codex implement them, then learn backward from the working code, including from its errors, its leaks, and the places where it lost context, which the post is refreshingly frank about. That isn’t skipping the education. It’s the education turned around: understanding through review instead of through authorship. It’s how most working engineers absorb an unfamiliar codebase anyway, and it produces the same thing my phase one produced, calibrated suspicion, on a faster loop, because the leaderboard still grades honestly at the end.

The floor question is real and I won’t wave it away. There is some level of understanding below which the tools stop being tools and become the whole practitioner, and I can’t tell you where it sits. But I no longer think the new path leads under it by default. The feedback loop that made Kaggle a school, public scoring, shakeups, writeups explaining what actually won, is all still there. So is the oldest learning path on the platform: you can still open a well-structured public kernel and read it top to bottom, cell by cell, and understand why each step is where it is. Nobody took that away; the agents just put a faster option next to it. The notebooks I share on [my profile](https://www.kaggle.com/jirkaborovec) are written for exactly that kind of reader, and I’d be quietly pleased if the skill someday learned from them the way people do.

What changed is the speed of iteration and the cost of a first attempt, and both changed in the learner’s favor. More people can afford the first attempt now. Some will stay passengers. The ones who read the diffs will become pilots faster than I did.

A few honest loose ends, because optimism without them is just marketing.

Disclosure has a role model but not a norm. One Grandmaster putting model names in a title is a start, not a standard. Until human, agent, and compute contributions are routinely stated, medals stay ambiguous, and the ambiguity taxes exactly the people competing in good faith.

Compute asymmetry is the piece I can’t fix, and it isn’t new. The top percentile always had their own hardware or a sponsor. What’s changed is how far down the leaderboard it now reaches. Eight hundred and fifty GPU-accelerated experiments is not something free Kaggle or Colab quota buys, and no write-up convention fixes that.

The floor is still unlocated. I believe review-first learning works because I’ve watched it work, including on me, but that’s a practitioner’s conviction, not evidence. Someone should measure it properly.

And I still can’t tell pilots from passengers from the outside. Both look identical on a leaderboard. The difference only shows up in the next competition, when the harness breaks and someone either debugs it or stalls.

So here’s what I’d love to talk about, with anyone who’s competing now or thinking about starting. What would make disclosure feel like the S6E3 title, a point of pride, for everyone and not just Grandmasters? Is there appetite for competition tracks that pin down what’s being measured, the way “no external data” once did? What would a review-first learning path look like if Kaggle built it on purpose instead of letting it emerge? And if you’ve found a different way of staying in the pilot seat than the one I describe here, I’d like to hear about it, because I’m sure mine isn’t the only one.

My setup, the plugins and skills I use for maintenance and research work, lives at [github.com/Borda/AI-Rig](https://github.com/Borda/AI-Rig). The README is honest about its limits, and I keep updating it as I get things wrong. Comments here, issues there, or just a note if you disagree with any of this, all welcome.

A year ago I read this shift as a threat and half expected to end up the last one in a pilot seat. What changed since then is my mindset, not my standards. I didn’t give up the hands-on approach; I found another way to work where the same curiosity and suspicion of easy answers get spent on reviewing rather than typing. The seats got cheaper, the instruments got better, and the leaderboard is still the most honest flight instructor there is. The job ahead isn’t guarding the cockpit. It’s helping more people learn to fly.

[From Two Days of EDA to “Solve This Competition”: A Kaggle Workflow, Compressed](https://pub.towardsai.net/from-two-days-of-eda-to-solve-this-competition-a-kaggle-workflow-compressed-aa5cea49c416) was originally published in [Towards AI](https://pub.towardsai.net) on Medium, where people are continuing the conversation by highlighting and responding to this story.
