Shane Butler: Admit all… there we go. Hey, everyone! Welcome, welcome.
Hai Guan: Hello, hello.
Shane Butler: Let me open up the chat here, so I can… See you all! Can you all hear me? We got a thumbs up.
Hai Guan: Nice.
Shane Butler: Yeah, they came here. Okay, where are… Alright, people don’t like to say, yes, I can hear you, we’ll make it more interesting. Where are people located at? I’m… I’m Shane. I’m from, South Lake Tahoe, California. What do we have in the room? hi, highs in the Bay Area.
Hai Guan: Yup.
Shane Butler: Attendee, where are you from?
Hai Guan: Drop it in the chat.
Shane Butler: Drop it in the chat. San Diego, Minnesota, Bangalore. San Francisco, alright.
Hai Guan: Nice.
Shane Butler: Texas, nice. We’re in Texas, Attendee? Mexico City, Munich…
Hai Guan: Munich. Tel Aviv?
Shane Butler: all over.
Hai Guan: Poland.
Shane Butler: worth Dallas, gotcha. Nice. Cool. Alright, we’re gonna get… Right into it. I’m gonna share my screen. This is gonna be a little… Different demo than usual. or lightning less than usual. So usually these lightning lessons, we have, Kind of a… Deck we’re sharing, and we’re walking through some process, and doing some… Teaching… But today, we’re just going to do… Demo stuff the entire time. And actually, if you wanna follow along. you can even do that. I’m gonna try and… so maybe, maybe before we… we start. So thanks for being here. I’m Shane. I’m one of the folks, along with Hai and Stravia, who run AI Analyst Lab. We teach courses on Maven about using AI for data and analytics, doing AI evals.
yeah, as I mentioned, this is gonna be a little different today than normal, you know, so we’re not gonna have any slides. We’re gonna use the full hour to just be live in Cloud Code. I’m gonna be building some data visualization analyses from scratch in real time, so we’ll see what happens, like, like, obviously. LLMs are non-deterministic, so hopefully nothing goes too, haywire, but I think it’s kind of actually good, like, when stuff, breaks and doesn’t work, it’s, like, a very honest representation of, like, how these tools Will react in your actual day-to-day, and then we can kind of, like, work through that. But I kind of want to… want you to see, like, what our workflow is a bit.
So before we… before we get started, though. Let’s drop some stuff in the chat, just so I can see kind of where everyone is, so… In the chat, if you’ve never used Cloud Code before, like, maybe you’ve heard of it, but if you’ve never used it before, drop a 1. If you have used Cloud Code, but you’ve used it for, like, coding and general stuff, use a 2. And if you’ve used Cloud Code for data analysis or visualization, drop a 3. And, let’s see, what’s our spread looking like, hi?
Hai Guan: Very even. 1s and twos and threes, I would say.
Shane Butler: Nice. Nice. Okay. Actually… Cool.
Hai Guan: More ones than twos.
Shane Butler: Four ones? Okay. No, that’s cool. If you’re a one, like, no… Worries? You’re gonna be able to follow along, As well, I think it’ll be a good, like, intro. If you’re 2 or 3, If you want, you can actually… Open Claude Code right now, and follow along from the same… dataset. I’ll drop a link to the dataset in the chat. Let me actually find that, I’m in another terminal asking Claude to give me the link to the dataset to share.
Hai Guan: I can drop it as an AI analyst.
Shane Butler: No, I’m gonna drop, an actual, like, a Spotify dataset, like, in case people wanna kinda, like, mess around. While we’re doing this, too. Here you go. So there’s this Kaggle dataset I’m gonna work through today. If you want to try it yourself while we go through, since we do… are here for an hour, like, download that, open up Cloud Code, if you don’t know how to. Use cloud code if you’re, like, in that one category, that’s fine. We’re actually gonna have a boot camp on this in… 9? 10 days, where we’re gonna, like, set people up from scratch who’ve never even opened up Cloud Code before. Get them all the way to the point where they can build, like, an agentic system.
Yeah, I mean, you can follow along with VS Code and Windsurf, it’s gonna be… so, I’m not gonna build out. I mean, that’d be interesting, actually, because I’d like to hear how it, like, goes differently for you. So, one of the things with Cloud Code you’ll see today is we’re gonna try it with, like. vanilla cloud code, and then, like, this Agentic system we’ve built. And you’ll see how the visualizations change, so it’ll actually be interesting to see how, like, even, like, Windsurfer or VS Code or cursor is different. And yes, this is all recorded, Attendee.
Okay So, I’m gonna keep going, but I’m gonna pause a bunch on the way, and we’ll pause for questions and stuff, so keep dropping them in there, and Hai and Saravia can answer, but we can also answer them later. So, alright. So, what I just put in the chat, that is the Spotify most streamed song dataset. It’s, like, 950 songs. With stuff like total streams, artist, release year, Danceability. beats per minute, energy, it’s a pretty fun dataset, and, like, everyone kind of knows Spotify, so it’s, like. nice, like, I don’t know, I feel like it’s very general, it’s, like, not a bespoke to someone’s hobby or interest.
So, here’s the scenario that we’re gonna kinda, like, pretend to walk through today, as we use Cloud Code. So say we work at a music streaming company. and our head of content walks over and says, like, hey, we have a budget to license music for the next quarter. What kind of music should we be licensing? Like, what has staying power? That’s our question we’re gonna try and work through for the next hour. So right here, you can see on my main screen over here is what I’m sharing. There’s two terminals. So, on the left side here, you can see there’s a… Bunch more stuff on… in the directory that I’m in here.
Attendee: Come on.
Shane Butler: So, on the left side is kind of like a system we built with visualization standards, chart helpers, and design and reviews baked in. This is actually a open-sourced repo we created called the AI Analyst. yeah, I don’t know, maybe Shravia or hi, you could drop that repo in the chat. So if you want… if anyone on this… in this group wants to, like, clone that repo now or later on. And mess with it, they can. On the other side here, this other terminal I have on the right, This is just an empty directory. It has that one CSV in it. We can even open it up. It’s just a CSV of that. Spotify data. And so, this is, like, your kind of, like.
vanilla cloud code, like, there’s no additional system built around it, which… it’s, like, what’s coming from Anthropic, and it’s also… you know, it’s extremely good, but there are, like. Ways to make it even better, and, like, specific to your use case when you build a system. So today, we’re just gonna experiment a little bit and see how, for the first part, we’ll look at, like, how just, like, no agentic system versus agentic system will lead you to different results.
So I’m gonna be… adding pretty much the same prompts in these that I have copied on this other screen, so… Here in our vanilla club code, I’m gonna say… You know, load me… the Spotify CSV, And tell me, like, about that data set. In our regular one, I’m actually gonna tell it to create me a data. a new folder called Analysis for Everything that we produced today, because there’s so much stuff in here. It’s very easy to navigate when the directory’s empty. But then I’m going to say the same thing. Go to the Spotify data site, give me a quick summary, how many rows, columns do we have? So we start getting output here. In the right. column here in the vanilla Cloud Code. So yeah, 953.
rows… We have some track name, artist name, artist count, release year, release month, release day. Some platform presence stuff, like, is it in a charge? How many streams it has? It’s in Apple Charts. Some of the audio features, like the beats per minute mode, danceability, energy. Yeah, so kind of, like, just high level. basically the same thing here in our other Cloud Code terminal that has a Gentic system. You know, I think that’s… the only difference here is that they created a folder called Analysis for us to put stuff in.
Yeah, so at the end, so I’m not gonna paste my prompts in the chat, because that’ll just take… well, I guess if you’re following along, yeah, I should be pasting those. I will also share… Yeah Good call out, Attendee. I will also share at the end of this, I’m gonna have all the prompts in a doc, and I’ll email those out to everyone. But yeah, I’ll paste them in as we go, too. Okay. So, where were we? Yeah, both loaded the same 950 songs. let’s make some charts. I’m gonna ask the same questions to both windows, and we shall see what comes out. Where’s my question here? Alright, same question. Both terminals. Let me drop it in the chat for you. Boom, there you go, in a chat.
And… we’re gonna drop these into both. I’m gonna drop it into the agentic. Our system first, and then… I’ll put it into vanilla here. So, my question was, which artists have the most total streams? Visualize the top 10, save the chart. in some folder. And so you can see here, like, I’m not telling it. What chart to make? Not telling it any guidance, really, beyond, like. hey, here’s a question that I have. Like, this is kind of like a question someone would probably really have, right? Like, people don’t necessarily be like, hey. you know, give me a bar chart of XYZ. They have more, like, a question they want to solve. Alright, so, looks like… It has completed an AI analyst. Let’s find out.
There it is. Alright, The Weekend dominates total streamers on Spotify. The Weekend Bad Bunny. Let’s see what we get in the other one. Okay, so, like, off the bat, you can see, like, their… Like, same data here, it all ties out pretty similar. One thing you’ll notice is it is slightly different in terms of, like, the… the AI Analyst one has a, It says, like, in the header here, like, what’s the actual takeaway? There’s a little, like, cleaner in terms of, like, not having these added, Added framing around it. In this case, I actually wanted something better out of the AI Analyst.
And so, let me show you a little bit more about, like, what the AI Analyst is supposed to do, because it actually did not follow the workflow I wanted to, so… I’m gonna tell it. Hey, you didn’t follow the… chart skills and agents workflow. Can you show me what that’s supposed to do in an ASCII diagram? Alright. And so… Sometimes I find when you build, like, these kind of agentic, like, harnesses around… Claude, If you don’t orchestrate it, like, there’s just, like, some randomness to, like, is it gonna follow the orchestrator properly, or is it kind of, like, gonna go off on its own?
So even though it is, like, a slightly nicer chart than… what vanilla color code, I wanted it to make… be much better. So, right now, what it’s gonna do for me… Is it’s going to go and read through my repo here, check out all of the agent files and the scale files. and give me an accurate picture of, like, what it should have done. And this is something I do, like, pretty often when I’m kind of priming cloud code with my… whatever system I built to make sure, like, kind of, like, double confirm that it’s gonna follow those steps along the way, so… Here, like, what it should have done is… make a chart of X.
It should have then loaded visualization pattern skills that learn from a bunch of the themes and chart types and storytelling with data rules that we have in those skills. It should have Kicked off a chart maker. Agent that has a bunch of steps around, like, loading and validating data and, generating decluttering… the data, like, removing spines, grid lines, I did some of this, right? Legends… if it’s cool down here, it actually, like, tells you what it skipped, and then it goes through some validation and review periods with, like, Visual Design Critic Agent, like, which will say if you have more fixes that you need to go through and do again, if it needs revision or it’s approved.
So it’s kind of like a score at the end. So, it knows that it’s skipped, right? So it says it didn’t call the storytelling with data style from its chart helpers, it didn’t use the highlight bar function. I have, like, a bunch of themes in here around, like, a minimalist theme, a New York Times themes, an economist themes, a corporate theme. It didn’t use any of those. I like it to have, like, kind of, like, off-white backgrounds, because it’s not as jarring. Didn’t do that. So, yes, want me to redo the top charges following the workflow properly? Yes, please.
In these cases, I’m not going to do it today, because I don’t want it to waste our time with it writing a lot of code, but when you have these, systems that, like, kind of, like, deviate from their… or, like, escape their harness, then what I would probably do, actually, in reality, if we weren’t doing a demo, is I’d say. Hey, can you tell me why you didn’t follow the workflow as expected, and can you… Tell me where the gaps are in the, like, existing code that caused that, and then can you fill those gaps? Alright, so it’s redoing the chart. While it does that, I’m going to… Pull another prompt out. Oh, yeah. See, this just looks better… to me.
So, it’s like… now you have kind of, like, this one bar that’s highlighted, the rest are grayed out, the title tells you the takeaway. There’s, like, more direct labels. I just feel like they’re, like, the right size, I’m not… they’re not cluttered, and, like, the data between these two is… is identical, right? The weekend, Taylor Swift, Ed Sheeran, all around 14 billion streams, but there’s a story here, like, Ed Sheeran has the same streams as Taylor. I don’t know, we’ll get into it later, but, like. This is the kind of the difference, between where you get, like, Just going with, like.
Raw claw code versus, like, trying to make it customized to whatever, like, your style as the use case, you’re working with is. The visualization skill is in our, repo. That is open sourced. So that… maybe if there’s a link already shared, higher Shravia, probably above. Okay, so… Where were we? Alright. So the next one, we need to know what’s trending. Like, I want to know not just who is at the top right now, but I want to know, like, how’s popular music been? changing. So I’m gonna ask this question. How have the audio characteristics of popular music changed from 2010 to 2023? Look at danceability, energy, and valence over time. Only years with at least 5 songs visualize it.
Save it as a PNG. And they’re off. Okay, so we have our audio trends over here. And we got him over here. Okay, so… left side here, obviously, like, this is kind of, like, again, like your… I mean, it’s pretty impressive that it made this, but… You can see there’s, like, definitely some differences here. So left side, you have, like, these three colored lines. you have markers on every point, kind of, like, got the grid lines everywhere.
I’d say, like, what I do like about what it did, which is a little annoying with what the Gentic system did that I might fix, is, like, it kept it at least to… on this 0-100 scale, I don’t know that I would actually have it at this 30% to 80% scale that the Gentex system did. I might want it at, like. I don’t know. I probably still want it as 080, but I get what I was trying to do. I was trying to zoom in to what’s going on, so you could see, like, the trends, but the main takeaway here is on the right, like. You don’t really know, necessarily, like, what to… look at here. Whereas on the left, you have, like, one line that’s highlighted.
The other two are there, but they’re grayed out, so your eye goes, like, straight to the story, and the title tells you. What happened? So you don’t have to figure it out by yourself. So, in this case, it says, like, popular music is getting sadder. Valence dropped 18 points since 2014. And it also adds, you know, I like that it adds… Some stuff around, like, hey, what actually is this graph is, like, what’s the data set it pulls from? There is another thing here that I do kind of wish I had highlighted, though, about it being newer music being more danceable. But the cool thing is, like, you know, I didn’t tell it which feature to highlight.
I asked a question, the system decided that this is, in this case, surveillance is, like, the most interesting line. When you run this each time, it might change. I actually ran this yesterday. In the story, it was telling me it was more around, like, this big… jump in danceability, but it’s actually trying to find a story for you. You have to work with it and tune it to find the right story, but, I find it really, like, I wouldn’t necessarily just, like, spit out a chart, send it to a stakeholder, but I find this, like, really nice for, like, EDA to be like, hey.
find the stories that are in this data, and then, like, present those visually to me, maybe in multiple charts, rather than just, like, give me the chart and I have to find the story immediately. So it’s kind of, like, a nice partner in that sense. I don’t know. What do you guys think? Any first reaction in terms of, like, how these two charts compare? Like, what are the differences between the two of them? While I queue up my next prompt. remarkable.
Hai Guan: the chats.
Shane Butler: Night and day. Okay. And, like, yeah, I guess, like, the whole thing with this, too, Attendee, is, like, you can, like, you know, I haven’t really worked on this version of our repo for, like. 3 weeks, but, like, I like my day job. I spend a lot more time, like, tuning these to, like, what I know my stakeholders are looking for, and even, like, the brand that we have, but, it’s, like, pretty cool, like, you… I mean, we could just do it right now, actually. Like… Hey… Is there a… here, I gotta, like, say it instead. story around danceability instead of valence, could you… Reframe the chart to emphasize that. Okay. So it’s just, like.
We’ll see what happens, but I’m pretty sure it’s just going to gray out the surveillance one, and then highlight the danceability one. That’s kind of the other thing too, right? It’s like, even if it doesn’t get, like, exact story right away that you want to tell, or that you think’s the most important, it’s really easy to switch around. So there you go. 2015, there’s a dip in danceability. What a shame. Alright, let’s go for another prompt. It can make the whole thing, Attendee, at once. You can definitely one-shot, like. You could one-shot a deck, one-shot an entire document, you could make a whole dashboard kind of thing at once in HTML, you could have it output a bunch of PNGs.
But… Yeah, kind of depends what you want to do. I’ve actually lately, like, like going more, like, one by one, because I kind of want to… interact with it, and also validate some things, but actually what I did do was pretty cool at my job the other day. I went one by one. building out this analysis, put it all… had it auto-put everything into a document for me, and then I met with my team, and I had, like, screwed up, and I added, like, I didn’t add some filter to the data, basically. And they’re like, oh, can you do this again? But, like, not with that data, and… like, it wasn’t a dashboard, right?
It was, like, a document with all these, like, specific images in it, but because I did it all in Cloud Code, and I had Cloud Code, like, journal the process we had gone through, I was able to be like, hey, can you rerun everything we ran? But, like, apply this filter. and, like, refresh the… refresh everything, and it took, like, minutes. Whereas… I don’t know. So that was nice, like, I was comfortable doing a one-shot there, because I’d already gone step-by-step. Okay, let me… I think I already posted this in there, but I’ll put it in there again. Here’s the next prompt. Okay, so do more danceable songs get more streams?
I want to understand the relationship between danceability and total streams. Call out any songs that are surprising. Highest streams below danceability. Visualize it and save it as a PNG. Yeah, so this will be our last kind of comparison here, but I kind of, like, yeah, want to understand, like, what matters for a licensing decision if we think back to, like, our original question from the head of content, who, like, has some budget for licensing, like. like, danceability, like, has increased a bunch, but, like, does that actually matter? So we’ll see. You think music, and you think it’s gonna be because people want to dance, but… Okay, so we have… Over here… We have one over here.
So… Yes, this is kind of interesting. So, on the right side, these are actually… Pretty close in terms of, like. what they did, like, I’m… I’m glad… like, when I ran this yesterday, actually. it’s kind of different every time you run it. All these dots were green, and it kind of had the labels on it, but, like, it had made it look like every single thing was the same, so I do like how it did assign this cluster with the red dots, even just in, like, the kind of, vanilla. version. Yeah, I mean, the labels are overlapping a little bit, for sure, since it’s, like, basic matplot. Here on the left, yeah, most dots are gray.
This is, like, kind of, like, the… One of, like, the main things, if you’re doing data storytelling, is, like, figure out the story. like, highlight that, and just gray everything else out, that doesn’t matter, like, so you don’t have to focus on that. And it’s really easy to do that when you just, like, have that as a directive, and… A skill. So, most sites are gray, the outlier is, like, really pop here. what do we have? And it puts… okay, it has, like, it has pretty much the similar kind of, like, information in each of them, like… The percent danceability and the number of streams.
And then the other thing we see, just even in the terminal, is that both of these are outputting some, takeaways. So, I think they’ve kind of… We’ll read them, right? So, on vanilla, it says the takeaways, many of the biggest hits in this dataset are emotional ballads, rock anthems, and moody tracks, not dance floor bangers. Emotional resonances seem to be what drives repeat lessons at scale. Another key finding over here, but I kind of bulleted out. So, I kind of do like that, like. It’s, like, it gives, like, the high level and then goes into detail, and it actually looks like it… did some additional analysis here around correlation.
So danceability doesn’t predict streams, the correlation is essentially zero. R equals negative .11. This is the Pearson score. If anything, that’s a slight negative relationship. Less danceable songs do marginally better. So you can see it’s, like, going the extra kind of, it’s not just, like, visualizing and saying the story, it’s not backing it up by some statistics. So we have a bunch of, like, you know, we have a dozen agents in here, and a few dozen skills. I think those are in the dot cloud here. And a lot of these are getting into, like, some, like, driver analysis, statistical analysis. And so it’s probably pulling from that a bit here. Yeah, takeaway is, like, the… the same, right?
Making a song more danceable won’t make it popular, emotional rhythm seems to matter more than rhythm. for mega hits. Okay. So, where are we at time? We’re about 30 minutes through… oh, I’m right on my mark. That’s pretty good. So, that’s all to say, like, same cloud code, exact same model, exact same data. Exact same questions. The only difference here is there’s definitely… there’s always some difference in terms of randomness, because we’re dealing with non-deterministic systems, but you can see, like, the harness that we have put around even just these data visualization skills. Like, creates… totally kind of different graphs than you would just with the vanilla stuff.
And, this kind of goes for everything. Like, we’re talking about data viz, but anything you want to do, like, creating agents and scales and Python helpers, and having them in there, and having an orchestrator that knows when to implement each of those is gonna make the way you use Cloud Code, especially for data analysis, way more helpful. Alright, so we’re gonna continue… With our analysis. But we are just gonna do it on the… AI analyst now. We don’t need to… be doing it.
Hai Guan: Hey, John, one question, probably in a lot of people’s minds, is how do you validate the numbers?
Shane Butler: Oh, yeah. Okay. So, let me see if I did this in here, actually. Nice. That’s a really good question, because I added it in this prompt. So we will test this a little bit. Okay. So… for full-on understanding of how to validate numbers, like, you probably want to build an AI evaluation system. In our bootcamp, we’re going to spend a lot… a whole… like, hour and a half just on validation of figures, like, kind of the best practices here. This session is more just around the capability of data visualization.
The TLDR, My philosophy around… leveraging AI or cloud code for any sort of data analysis is that the human is accountable, so no one gets to run the analysis and send it to a stakeholder, and it screws up, and be like, oh, AI screwed up. It’s like, no. Like, I screwed up because I didn’t validate. Just like if I ran some SQL query, or ran a dashboard, or anything else, like, non-AI related, and I messed something up, like, I am accountable for that. Like, things can be automated and still get messed up, right? There could be bugs in your SQL query, there could be bugs in pipelines, there could be bugs in dashboard. So, still accountable for that.
I think the, you know, the easiest way is, when you’re building your system. Run it on a bunch of analysis you’d already done in the past, where you know the numbers, like, you can actually, like, even look at the old analysis, and then you can confirm those side by side to see if they tie out. If they don’t tie out, you can basically add more guardrails to your system and nurture it so you get, like, the guardrails around it to tie out. Sometimes they don’t tie out because, like, you screwed up in the past. That’s happened to me a few times where I’ve ran it on analysis I’ve done before, and I actually found… AI found errors that I had had. So, that’s backtesting, right?
You can actually do… you can build an AI evaluation system that does a ton of backtesting for you, and backtests not only your work, but the work of your entire company. That’s, like, a whole other field of work. And then the other thing I do, which we’re gonna try and do today, I have not tested this out in Google Docs yet, but we’ll try it at the end of this session if we have time, is… every time I’m using Quad to do SQL or do analysis, I have it save all of the code it ran, so… never do I have it, like, create numbers. The LM never creates numbers. The LLM, the agent, runs… Python scripts. Or SQL, to create numbers.
So all the number creation is in code, that’s how you… Get rid of hallucination. You still have incorrect numbers if it runs the wrong code. So I like to have it output that code along with each chart, and then I can kind of run through it and eyeball it. I can run it. elsewhere, into, like, manually somewhere else. I really like it in… we’re gonna try it in Google. I really like it in Notion. It has a really nice MCP, where I’ll have, like, a chart, and then right under the chart, it’ll have a toggle that says, like. us code and logic for creating this chart. You can toggle down, and in the Notion doc, it’ll have all the SQL right there. This makes it a lot faster for reviewing.
Yeah, lots of other stuff for validation you could get into, you know, building out golden datasets and kind of, like, tiered different data sets you trust. But that would be the, whatever, 5-minute spiel. For the full validation kind of work, like, we’ll cover that in our bootcamp next weekend. Okay. How did this do? Alright, I created another chart. What did I even ask? Yes, alright. Our head of content wants to know what kind of music to license this quarter, we know this. So I’m kind of, like, restarting the analysis a little bit here. Compare the audio profile of the top 50 most streamed songs against the rest of the dataset. Show those average dimensions.
tell me what’s the difference and about the biggest hit. And then, so here’s… here’s what I was talking about for validation. In this prompt, I said, save the chart in the Python code as analysis audio profilecode.py. So now, before, where I was just outputting the PNGs, in this case, I also had it save the code, it ran, right here. And it does some validation on itself, checking NAs and stuff, but you can see everything… it actually ran to make these charts… I am not going to go through and validate that right now, but, like, that’s… part of the job, right?
In your day job, you’ll want to go and, like, read that code, very similar to how when people are pushing production code to build a product, a lot of the work of engineers are now on the review side, rather than the coding side. Same thing with analytics. You’re gonna spend more time reviewing than writing out some of this code, but, like, it is gonna go Much faster, and then the quality of stuff you can produce is going to be a lot higher. You produce a bunch of stuff at the same time, and when you see errors in the code, Cloud Code is really good at learning those errors if you call them out. Alright, so this is, yeah, this is, like, the context step.
Before we recommend anything, we need to know what popular actually looks like. So most people assume… I mean, we already talked about this, that his songs are… Danceable and stuff. But the most… the top 50 most strongs are actually less danceable. than the rest, which is pretty interesting. They’re less energetic, they’re lower balance, which means they’re moodier, less happy-sounding, and they’re more acoustic. That’s the only thing that they are more on these dimensions than the remaining 902 songs more acoustic. So the abyss… the… yeah, I mean, we saw this in the last chart, right? Like, the biggest… It’s on Spotify, or… are very emotional songs. They’re not the bangers, I guess.
Or the bangers are emotional? I don’t know. Yeah, I don’t know. That’s, like, probably not what most people expect. Maybe some people expect that. I would have thought it would have been something different. I listen to a lot of music while I run, so, like, I like more of, like, the happy stuff, but I get it. Alright, let’s, let’s keep going. I’m gonna drop another prompt in here. I know someone just dropped something in the chat, and I immediately put the prompt right after they said it and hit their chat, sorry. Alright, so… you can see I’ve done this analysis before, so I have all my prompts created. So yeah. So, now I want to know… The biggest hits are danceable. Is it shifting?
Show me how danceable, energy, and valence have trended by release year. Yeah, we just did this. Trend over time. But the reason I’m running it again is because I want to save this Python code this time. But this should look pretty similar to our last one. Yep. This trend over time’s down here. So here we go, DanceBailey surged 20 points from 2015 to 2023. the biggest shift. Alright, I need to move a little faster through this stuff. So… This is interesting, because… This is, like, ha… this is not, like, the popularity of the streams, like, the last… graph we had. up here. Audio trends? This is, like, what people are, creating. So it’s kind of like, the industry’s chasing danceability.
like, this… but the songs with, like, the 2-3 billion streams, they’re not the danceable ones. So, like, new music being created is danceier. But the songs the most… people are listening to is not dance here. So the staying power is, like, emotional and acoustic. So that’s kind of interesting, right? Like, if you’re someone who’s trying to figure out what music do I license, like, naturally you would be going towards this Graph of, like. what’s… what are people creating? But it’s actually not even what people are creating, it’s, like, what people are listening to. We’ll do another outlier graph. And then we’ll get to recommendationing and start wrapping up a bit.
And I’ll drop that in chat, too. I think this should be similar to the one you just ran. But I want to run it again, because I want to get those, the Python code, but yeah. So, from the top 100 most dreamed, which ones have unusually low danceability? This is a little different than what we looked at before. It’s under 55%, or unusually low energy. In this case, I’m actually going to tell it kind of what chart I want, scatterplot, danceability for streams. With those outliers called out by song name and artist. Okay, so 40 outliers. So this is interesting, right? It found 40 outliers, and it even says, like, hey. I have a bunch of stuff in here that’s like, you gotta cleanly label stuff.
I don’t want… cluttering every… everything that’s, like, in our, kind of, skills in the system here. And so, obviously, like, it has gone through the workflow, and probably done that review step, and found too many To label cleanly, let me pick the most notable ones, annotate, and show the rest as highlighted dots. Which is not something you’re gonna necessarily get out of if you just, like. you know, create this on your own, first of all, just like in Python and Matplotlib, but also if you run it in probably the vanilla version. Alright… Oh, is this… okay, this is pretty interesting. Where did it put it? Outlier? Alright, so these are all the outliers only.
It’s not all the rest of them, so… 40 of the top 100… so it’s the top 100 most… top 100 songs. You can barely see them, actually, but they’re… they’re in here. They’re gray. But 40 of the top 100 songs are outliers. So they… they aren’t, like, edge cases. It’s not, like, an edge case that, like, this, relationship between Like, dance rally and stuff. is driving big hits. It’s like… Nearly half the biggest hits on the platform cluster into, like, pretty clear archetypes, like emotional ballads. Moody pop, classic rock. soft acoustic. And so, yeah, it selected a, A few of these. Nice. I remember Blinding Light by the weekend was, like, two years in a row, my top Spotify song.
And then I never listened to it again, just burned out. Okay. We are, I think, getting close to time, and I want to wrap this up, so… these… Like, you know, look at these outliers. like, these are the songs people, like, play over and over for years, like I just said. They’re not the song of the summer, they’re, like, the song of the five years or the decade, and those are, like, the licensing wildcards, the songs that don’t fit the trend. But massively outperform. everything else. So, based on all this analysis. Now, we want to go get our recommendation to our stakeholder.
So, based on everything we found, give me a three-sentence recommendation for our head of content about what kind of music to license next quarter. Just tell me in the chat, no need for a chart. So it says, don’t over-index on high-energy tracks. 40% of the 100 most streamed songs have below average danceability or energy, and the correlation between danceability and stream is essentially zero. Pearson score of negative .11. The biggest hits skew towards emotionally resonant mid-tempo tracks, like moody pop, acoustic ballads, and atmospheric production with danceability. in the 45 to 65% range, and valence below 50%. Have you heard of people talk about music like this before?
I wonder if people talk like this at… at Spotify, when they’re, like… like, if they listen to their songs after they’re spelled like, oh, yes. I’d say that danceability is in the 45-65% range. That said… actually, I don’t know if I’d want to work at Spotify. I feel like it would ruin music for me. That said, new releases are converging at 71% danceability. Of 20 percentage points since 2015, so the sweet spot is tracks that are rhythmically modern, but emotionally weighty. Think blinding lights territory, not club bangers. Sorry for the clubbers in the audience. So there’s your answer, You know, kind of went through these four steps of storytelling, like, provided some context.
And these are actually, like, four steps we have… we work into the agent’s workflows, context, tension, outliers, recommendation. So, it provided context. at the beginning, in that first question. Then I looked at some tension of, like, how do these relationships, like, not fit like we think they would? Then it looked at outliers. And then I made a recommendation based off all that. So each chart… was built on the last, and each one moves the story forward. This is kind of why I like to go step-by-step, because you can… like, the system can do that. Like, we do have it set up so, like.
if you did a one-shot, it would look at what it did on the next step, last step, before it goes to the next step, but I kind of like being along for, like, the journey of it, in case I want to steer in a different direction. Okay. Now, what I wanted to do… Next. And then we can do Q&A, actually, while this goes. But, alright, I don’t know if this’ll work, I was literally… doing this… At 11.57, right before our… course started, and I kind of ran. But… We’ll see. I’m gonna try and get it to make this into a report. But no promises. It might tell me the MCP’s not connected. If it does, then I’ll try and troubleshoot it while we answer Q&A.
So what I told it here… is let’s package this up in analysis into an existing Google Doc. I gave it this document ID earlier, and this Google Doc I had… Google Doc I had open. You could just tell it to create a Google Doc, too, but I don’t want you guys, like, see my Google Drive. I’m a recording live with, like, a few hundred people or whatever. So I just opened this one. Yeah, so I told her to write a full analysis into the doc, do an executive summary. section for each analysis with findings, each chart we made. Under each chart. This is… I don’t know if this’ll work.
This works in, This works in Notion, I don’t know if it’ll work in Google, but under each chart, add a subheading called Code Used, pull the code from the saves file, and include the data source. Hmm. I think I wanted to do something different with that, but we’ll… we’ll see. I wanted to do, like, a toggle thing. So what it’s doing right now… It’s taking all these images we just made throughout the past 46 minutes, and it’s uploading them all to my Google Drive right now, and so I’m connected to Google through an MCP. And so, that’s what all this stuff is, so… It’s going through, uploading images, nuts… Creating a document, so all the images are uploaded. Now, let me set the title.
Attendee, you can kind of watch this over here. It’s gonna set the title to Spotify Licensing Analysis, What Music Should Be Licensed Next. Come on. Change the title. It’s got the document ID. It created a new doc by mistake. But look, it corrected itself. Let me use the existing document you specified instead. I’ll write all the content there. Alright, there we go. It’s starting to populate. That’s cool. Okay. There we go. Executive summary… It’s got the title line, it’s out of date, it’s saying the data set and source. It’s got our graph here for the first one. It’s doing some weird stuff, we’ll try and fix this, but it’s like, for some reason, it’s making all this bold. But that’s a quick fix.
It’s still adding… now it’s adding our next question around. Audio Trends. It’s written a couple lines about The key findings, the thing that we were kind of talking about earlier, equally concerned about Anthropic seeing what’s in my Google Drive. That will just… that will just make the AI analyst Stronger. So, yeah, but now, Attendee, it’s, like, a good question around, Security. I think, like… for what I’m doing here, like, I don’t really care, but for, your day job, that’s, like, a pretty serious question, but it’s like any software you work with. you know, work with your security and legal teams through that process. You can negotiate certain types of contracts with those, companies.
We’ll probably talk a bit about that in the bootcamp, or at least in… or maybe in the 5-week course. But that is definitely a major… Hurdle. So we even, like, will do work where we go into companies and help them, like, work through that whole process of working with security and legal and being able to do this in a safe way. But I didn’t do that for my personal Google travel. Yeah, it is kind of scary, but it’s also fac… it is fascinating. Okay, so this isn’t exactly what I wanted, right? Like, it has this code used thing here, but it’s just telling me… where the Python script is.
Well, you guys get… you guys get the gist, so… I might stop it and try and see if I can get it to do the code thing I want. And then we can ask… answer questions while it works on that. So let me just get this stopped. Oh, shoot. I exited. It’s okay. Let’s go back in. I need to resume my last session. That’s fine. Okay, so I’ll say… Hey, it looks like all of the text in here is bold. That’s fine for the headers, but I don’t want all of the body text bold. If you can fix that. And then, I wanted code… under each graph, but I wanted it in, like, a sort of… toggle, so it’s not showing unless I toggle that in Google Docs. Can Google Docs do that? Anne, can you do that?
And I find, like, you’ll see, like, it asks it some questions at the end before it does it. I don’t really like going, like, hey, go do the thing. If I’m doing something for, like, the first time, or it’s not in my harness already, I’ll, like, kind of, like, prime it, make sure it, like, goes and does some research to see how to do it. Alright, 10 minutes, though. I’m using Whisperflow, yeah, and then… I will start answering some questions. Hi, are there any kinds of questions that came up, or should I just kind of, like, be going through these ones that are popping up now? Or are there any themes?
Hai Guan: I think the… Yeah, we can just answer, kind of, like, the ones that are popping up right now, I think. They’re all pretty…
Shane Butler: Yeah.
Hai Guan: Yeah. Can we read them?
Shane Butler: Yeah, do you want to read them? And I can kind of, like, mess around with us while you’re doing that?
Hai Guan: Cool. So… Attendee asked, this comes off as a little overwhelming. To keep up with all the advancements going on, could you advise, suggest how to get started to build a good foundation first?
Shane Butler: two-day boot camp next weekend, like, that would be… that’s a good… like, we’re gonna get people from, like, never use Cloud Code to actually build this, like, AI analyst for their own use case from scratch. That’s gonna be pretty awesome. But if you don’t… if you want something free, then, like, we have a repo, AI Analyst, that I think’s been shared earlier in the chat, probably. It’s this same repo, and, like, honestly, like, open it up, and just start talking to Claude to… That’s what’s going on. I think, follow people who are kind of working in this space on, like, Substack and LinkedIn. Just trying to keep up with, like.
the influx of news, but honestly, the best thing you can do is just go start working with it. Like, don’t worry about going and doing, like, weeks of research to do it. That’s why we’re doing this boot camp on the weekend that’s hands-on, because, like, a big hurdle is just, like, getting your hands dirty and working with it, and I guarantee you, like, two days, like, seriously, two days. And you will come up with so many more ideas of how to use this, like, better than we can as well. But it’s really critical, I think. Like, I took… two weeks off my day job, honestly, to find time to just kind of, like, get that catalyst going.
But, like, I’d say, like, a two-day Whether it’s, like, on a weekend, or take a couple days off work, if your work’s not, like. Kind of, like, empowering you to do this is… all it takes, and then you can kind of, like, start automating out a bunch of your work, like, through this analysis, and then that earns you time to go do deeper research and learning. And then also don’t have to be too hard on yourself, like. Stuff’s changing every week, you don’t need to keep up every week, like… If you go on vacation for 2 weeks and you miss some stuff, like, you can catch up when you get back. Now, if you go on vacation for 2 months, I don’t know.
We may be in the matrix at that point, and just, like, the batteries for the robots. So, you know, I don’t want to go away for too long. But, yeah, don’t be too hard on yourself about it, too.
Hai Guan: Cool. Let’s see, Attendee asked, maybe out of scope for today, if head of content wanted to base decisions on both song characteristics and song licensing costs from separate files, how easy to prompt Claude Code to find an optimal solution?
Shane Butler: From separate files…
Hai Guan: Yeah, that should be it.
Shane Butler: Yeah, yeah, that should be totally fine. I mean, like, I have it do stuff that’s, like, joining a bunch of… SQL queries across the database, but Hi, you’ve done stuff with, like, your… with your Airbnb? Like, so Hai does a bunch of, like, real estate stuff, where you’ve gone cross-file a bunch, right?
Hai Guan: Yeah, yeah. So, Claude is really smart, as long as you sort of, like, give it a direction, ask it to… give it a high-level goal, it will come back with a plan, and you iterate on it. So, in the… So anything that it doesn’t know how to do, you can ask it to ask you, and then, and then you can… you can really just, multiply from there.
Shane Butler: Okay, it did… I made a new draft. of the analysis, when I give her that feedback around, like, the… the boldness stuff. So he was like, yeah, this looks cleaner, for sure. Still didn’t quite get what I wanted to do. So now, at least it embedded the code in here. Moon just tells you this now, sorry, I’ll give her to my question. This is better. I see that you embedded the code. I really want a toggle for that code, so it only shows when I untoggle it. I honestly don’t know if you can do this in… I feel like we’ve done this in… Google before, but I don’t know if it can figure out with MCP. With Notion, it does it great. Alright. Another question, honey?
Hai Guan: Yes, have you thought about the output being an HTML website with interactive charts, or an editable PowerPoint?
Shane Butler: Yep, yep, yeah. We… had a presentation on our team with one of our colleagues yesterday, where he had basically done a very similar vibe, but it’s in a PowerPoint. Actually, when we originally created the AI analyst stuff, you’ll see it in the workflow. It output a deck. I kind of ended up moving over to Docs, because I want to be able to validate the code and stuff, so I kind of wanted more… Real estate for me to put that in there, rather than having it in a deck. But you can do both, and then HTML for sure. I do HTML a lot.
when I’m, like, doing my own exploration and, like, trying to, like, if I’m, like, doing analysis work and I just want, like, to see how things are going as I go, it’s really nice with HTML, too, because you can tell it to, like, do some long-running analysis. and just, like, update the HTML as it goes. Whereas, like, here it’d have to, like, output a bunch of PNGs, and you have to wait till the end for that. HTML, you can just have that up in your browser, so… and it’s so… it’s so clean, too. Like, the… it’s really good at HTML and CSS, because that’s, like, all these coding tools are, like… that’s what they’re trained on first, right? The internet.
And you can make it… and you make dashboards, like, dynamic and stuff, I don’t know. I don’t know what’s gonna happen to all these BI companies, to be honest. What’s another question?
Hai Guan: I think you answered the other ones. Whoop. So, let’s see… Oh, Attendee just dropped another one. Could you please explain how skills work? Do you only use them in clock code?
Shane Butler: I think so. I mean, I haven’t used them… I honestly haven’t used Cloud Coat. Other stuff since Skills came out. I don’t know, hi, you… maybe you want to take that one, because I know you’ve done a lot.
Hai Guan: Yeah.
Shane Butler: You were making slash commands before they were skills.
Hai Guan: Right, yeah, so skills have gone through many iterations in the Claude, kind of, like, very short history. The TLDR is, think of skills as something reusable. Like, if you do something more than once, then you can create it as a skill. A skill is nothing more than a file, a Markdown file, so something that a computer knows how to read, but it’s in plain English. Skills also exist in all the entire Anthropic ecosystem, so if you use Claude Co-work, you can create a skill. If you use Claude Chat, you can create a skill. These are just reusable instructions for Claude to know what to do in certain scenarios.
So, in our case, AI Analyst, there’s a bunch of skills around how do you tell great stories, how do you, you know, what chart types to bring up for and what occasions, what should be the look and feel, how do you validate, and stuff like that. So that’s kind of, like, the high level. Hopefully that makes sense.
Shane Butler: Attendee, I don’t, I don’t know what the industry’s gonna do, but I would say, like, if you asked me a year ago, I was more like, oh, they’re leaning towards senior talent, and now I think, at least for me, my perspective is, like, I think that, like. more entry level? I think there’s a… I think there’s opportunity there, because, like, I’ve been working with some folks who, like, are out of college in the past couple years, and, like, they learned how to code with AI, and it’s actually… The creativity they have around… using stuff that’s on the frontier that’s changing so often, I feel like is a little… is, like.
on average, not everyone, but on average, like, a lot more flexible and forward-thinking than, like, folks who have been, like, kind of doing this for, like, 20 years, but… I don’t know what the industry will do. And how should… what’s next? I know we’re at time here. I’m gonna answer…
Hai Guan: Can I answer one more?
Shane Butler: One more.
Hai Guan: For folks who wanna keep asking questions, find us in the, in our Slack channel, which I’m gonna drop a link to.
Shane Butler: Yeah, let me see. How much… how… okay, that’s a good question. How should you think about how much you need to break down a scale into small components? We’ll cover this in our bootcamp. in whatever it is, 9 or 10 days, as well, how to decide what’s agent, skill, helper, when to break it down. Because also, sometimes quad code, there’s things that could be agents, where the same thing could be done with like… Python, right? If you’re, like, just, like, routing things around. A lot of the time, I will… If it’s, like, skills, if it’s, like, things that will often correlate together. Like, you will often use… do these things together. put it in the same skill, because it’s effectively one thing.
But if it’s things where it’s like, I’m gonna leverage this, like. component, or this skill, like, independently, or in different workflows all the time, without the other pieces, then break it down into a smaller component. That’s kind of how I think about it, usually. And I also ask Claude a lot about it, too. If things go off the rails, I usually will say, like, can you review your skills and agents, and blah blah blah. Did any of that, like, push you off the rails? Okay, that’s all the questions I can answer for today, but obviously, join us in Slack. We’re gonna have the bootcamp in… 10 days… That’s gonna be really fun. We’re gonna have a lot more time to answer questions.
We’re gonna go really deep into a lot of the aspects of this. And then one more cool thing. We have a 5-week course that’s, like, more end-to-end, how to do analytics with AI. It’s not just cloud code, it’s with chat, it’s with, other third-party tools as well. And if you do the boot camp, like, basically, like. if you take that 5-week course, you get the boot camp for free. So, like, it’s like, if you do this, like, cloud code intensive bootcamp, then we’ll just knock whatever you paid off that from the 5-week course. So, if you want. a way more extended, like, access, and we’ll have, like, office hours every week, multiple times a week to that, too, for the people who join that.
Then, That’s another place where you get a lot more insight and questions answered, too. Otherwise, I’ll see you in Slack. But I appreciate everyone coming. Hopefully, this was fun.
Hai Guan: Thanks, everybody.
Shane Butler: See you later!