Building a Complete Client Proposal with Claude Code
Last episode I covered how to build a web-based PPT with Claude Code, and it's up to a few hundred thousand views. But people keep pushing for more: how exactly do you use Claude Code to build a proposal that's genuinely complete and ready to hand a client?
As it happens, I had a real client presentation these past couple of days — 45 minutes, for the client's e-commerce (EC) and brand (marketing) teams, on what the world's top brands are doing with AI. This episode walks the whole pipeline again: multi-agent deep research → cross review to verify everything and dig out the real source and official URL behind every case → have Claude Code produce a 30-page outline → then call GPT image 2 to generate all 30 PPT pages directly.
The end product is a complete 30-page workshop, 8,000-plus words, with a script under every page. Counting only the time AI was running, it took about an hour and a bit — back at Ogilvy, Tencent, and Social Touch, this would have taken me two weeks minimum.
Last episode I covered how to build a web-based PPT with Claude Code, and it’s up to a few hundred thousand views. But people keep pushing me for the follow-up: how exactly do you use Claude Code to build a proposal that’s genuinely complete and genuinely high quality? As it happens, I had a real client presentation these past couple of days, so I used it to walk the whole pipeline again.
The brief: 45 minutes, for the client’s e-commerce and brand teams
The client gave us 45 minutes for a workshop aimed at the e-commerce team (EC) and the brand team (marketing), to give them a solid picture of what leading brands worldwide have recently been doing with AI to drive their business — ideally with real cases. The client specifically added: don’t use the time for a deeply technical session, spread the breadth as wide as possible so they see more of what’s possible, and open up more directions for the next stage of our work together.
Step 1: multi-agent deep research
Once we had the task and had talked it through internally, the first move was deep research with AI. I gave the brief straight to Claude Code — and along with it, the full transcript of that client meeting, so it understood our role and the client’s scope (the China team, not the global team).
Then I had it stand up a research team of multiple agents to look, from a range of angles, at how top brands use AI across e-commerce and marketing, deliver the report as a web page, and make the angles as broad and comprehensive as possible. On top of that, research offline retail video and ad-film cases too. Thirty-odd minutes later, a broad, wide-ranging report came out — from the EC main battlefield with ghost-mannequin product shots, digital-avatar model shots, and 360-degree motion on hero images, all the way to buyer order fairs, offline experiential marketing, and brand comms. Every scenario where AI could plausibly be used, laid out one by one, with real cases from various brands.
Step 2: cross review to dig out where each case actually came from
With that first report in hand, I threw it right back at Claude Code and had it run the “LLM council cross review” skill I built earlier over the data and cases it had gathered (I did a whole episode on that skill). It fires off one Perplexity search, then adds several top models as cross-reviewers — because we know models hallucinate, but cross-checking with several top models on a second pass, especially when you require specific citations, drives the hallucination rate way down.
In the prompt I also required that these cases could not come from random web pages — they had to come from high-confidence sites, like major media outlets or the brands’ own sites. What it returned was a case index: the brand and the source of every case, with links, and every link actually opens. Anything it couldn’t find or couldn’t verify, it flagged on its own. It even downloaded the videos and photos for these cases onto my drive — that early Coca-Cola spot, the Adidas and Nvidia collaboration, all of it.
Step 3: filter + a 30-page outline
With the cases in hand, I talked it through internally and then talked it over with Claude Code: this session still leads with the EC e-commerce material, with marketing and the offline order fairs as support. Time is limited, so we went case by case and picked the directions to show the client. Then I had Claude Code prepare a PPT outline for 45 minutes at roughly 200 characters a minute of speaking pace, front-loading the scenarios driven by the e-commerce team’s needs and pushing the video scenarios to the back — about 30 pages should do it.
And here’s the thing — it’s remarkably simple. You just get the harness configured, get the skills configured, and the rest is talking to it the way you’d brief a colleague in your department or a planner on your team. Plain human speech, genuinely. What it hands back is the whole workshop PPT outline: page one is the cover, page two is industry data and trends, page three covers our relationship with the client as their service provider and our competitive advantages; after that, 12 pages for the EC main battlefield, then order fairs and in-store VM content, and even a few pages recommending general-purpose AIGC tools their team can use day to day.
Step 4: Claude Code can’t make images? Have it call GPT image 2
Someone asked: Claude Code can’t generate images, right? So how does it produce the PPT content? Great question. There’s also been a lot of debate lately over Claude Code versus Codex — because Codex includes GPT image 2 generation with a certain free allowance. But I’ve stayed on Claude Code, and since I use both, my subjective read is that the Opus model (4.7, upgraded to 4.8 just yesterday) is still the better choice as the “core brain.” So my approach is: use Claude Code to call Codex / GPT image 2 for images. How do you get a GPT image 2 API key? I did a whole episode on that — just ask Claude Code, it’ll give you the site and walk you through getting the key step by step, then you copy it into a local file, hand that over, and you’re running.
Claude Code doesn’t ship with a built-in skill for calling GPT image 2, though, so I first had it use a multi-agent team to research in detail the prompting best practices and gotchas people have found with image 2 over the past three months, and distill that into a generation style. Then I refined it for the PPT scenario: 16:9 ratio, information density (manual-style with dense text, or presentation-style), how to keep consistency across pages (how to use reference images), and what design style — McKinsey-esque minimal color blocks with text, or large-format imagery with a fashion-design sensibility. Those are the choices I have to make and communicate as preferences.
Step 5: generate 30 pages + embed in a web page + full transcript
Last step. Outline, cases, and research were all in place, so I told it: now start generating the images for these 30 PPT pages, moderate information density — don’t put all the text on the page, emphasize the core points instead, a PPT that combines image and text with a fashion-design sensibility. Put large client photos across the page; I’ve given you a folder with the client’s products to use. Generate the images in parallel, then embed them in a web page and show me. Once the page is ready, put a coherent narrative script under each PPT page, paced for 40 minutes at a bit over 200 characters a minute, with the key content color-highlighted.
Along the way it automatically calls a lot of my skills — for design, it uses the PPVI visual style (covered last episode; PPVI is something I set up for it, with the type hierarchy and the breathing room in the whitespace all already specified, so I never have to restate it). It looks fast, but every step actually took one or two rounds of back-and-forth: the first version had a footer line with the studio’s name wrong, so I had it fix that consistently in the outline; a few images had content issues, and I just screenshotted them, circled things, even wrote annotations telling it page by page what to change — and it changed them beautifully.
The result: 30 pages, 8,000-plus words, not a word changed
The final product is a complete 30-slide deck, 8,000-plus words, with a script under every page (I didn’t read from it in the end, but it was a big help as a prompt during the session), and the whole thing is very consistent. Counting only the time AI was running, it took about an hour and a bit — which of course doesn’t mean the humans sat it out. We had one meeting with the client and two internal meetings, and feeding the discussion results and the meeting transcripts back to the AI was a critical step. Over 40 people showed up from the client side, and the feedback was that they got a lot out of it.
This set of images came straight out of GPT image 2, with Claude Code writing the prompts to control consistency and GPT image 2 doing nothing but generating. The finish quality was so high that not a single word got changed — it went straight into use as an all-image deck.
Back at Ogilvy, at Tencent, at Social Touch, a 30-page workshop like this would have taken me two weeks minimum. Now I don’t even have to polish it. Honestly, after those dozen-plus years doing strategy, planning, and consulting, hundreds of PPTs a year, and the time it cost me — this generation has it so good: as long as you have the thinking, hand the research to AI, and all we do is trim, choose, and finally say “go make it,” and out it comes. It’s that simple.
Source: EP0024_audio.mp3 · ASR model gemini-2.5-pro (chunked parallel) · full text of the roughly 16-minute original recording
[00:00] There’s no finishing this — no way to finish it. I’ve been posting daily for three weeks now, and the episode on making PPTs with AI has racked up hundreds of thousands of views by now. People keep pushing me to post an update, saying they already know how to use Claude Code to make a web-based PPT, a web-based proposal. But how do you actually use Claude Code to build a truly complete, high-quality PPT proposal? As it happens, I had a real client presentation over the last couple of days, so I’m going to use that presentation to walk through the whole process again from the top.
[00:26] I’ll show you the thinking I used, and what the final result looked like. So let’s start with the brief. The client gave us 45 minutes to run a workshop for their e-commerce department and their brand department, so those teams could get a solid understanding of how leading brands worldwide are using AI to empower e-commerce —
[00:52] and the marketing side of the business. So once we had that task, after discussing internally, the first step was deep research with AI. At the time I told Claude Code the brief, basically: we’ve been invited by a client and we need to do a 45-minute presentation. That 45-minute presentation is mainly for the client’s EC — e-commerce — department and their marketing —
[01:17] their marketing department. The goal of this presentation is to get them to understand what the world’s top brands have been doing recently with AI to empower their business, ideally with real cases. The client did mention that with this amount of time we don’t need to go especially deep on the technical side; instead, spread the breadth as wide as possible, show them more of what’s possible, in order to open up the next stage of our —
[01:42] collaboration. So first we go multi-agent and stand up a research team to research, from different angles, how top brands use AI along those two dimensions. The research report that comes back needs to be presented as a web page. We want as many dimensions as possible, as broad and as comprehensive as possible. And beyond those two, we also need cases on offline retail —
[02:07] video and ad video. So after I gave it a brief like that, it took maybe a bit over 30 minutes, and then it came back to me with this. Because I’d also given it the transcript of the meeting — the meeting with the client — it understood our role and the client’s scope.
[02:34] Since the client is a China team, not a global team. So within that, it locked in the 45-minute time slot and first did a broad divergent sweep: which directions and use cases might come into play here. For example, in the EC main battlefield you could have invisible-mannequin shots, then digital-model shots, digital-avatar model shots, then 360-degree motion on the hero image video.
[02:59] Every scenario where AI could possibly be used got laid out one by one. It’s a divergent process first. Including the e-commerce content scenarios, and including — look, this is still very detailed — including their order-fair scenario, their offline interactive marketing scenario, and then the offline scenarios, then the brand-communications scenarios. It diverged across all of them.
[03:24] And on top of that divergence — extremely detailed — it also listed the relevant cases, real cases from different brands. Then once that was done, I had it go straight on to another task. Let’s pause here — how did I get it to do the second thing, the second point? Once I had that first report, I hand the report straight back to Claude Code and tell it: I need you to use —
[03:50] the LLM council, the cross review skill, to audit the data and the cases we currently have. I need you to find the URLs of the PR pieces for these specific cases, and if it’s a company site, the site URL. I need you to give me a more detailed summary of every case plus its URL. And if you can, download the videos too.
[04:15] Right — a command like that looks simple, but under the hood it uses that cross review skill I built earlier. You can go watch that episode. It fires up a Perplexity search plus a cross-review across several large models. It rigorously audits the earlier result, because we know models hallucinate. But when you have several top-tier models cross-checking it a second time,
[04:40] that drives the hallucination probability way down — especially when you make it cite specific sources. And as I recall, when I did this, I’d even specified in the prompt that the cases couldn’t come from just any random web page — they had to come from high-confidence sites, like major media outlets or the brand’s own site. So after that step, what did I get back? I got a case index like this.
[05:05] Every case’s brand and source in it, plus its link — you open any one and there’s a link. If something can’t be found, or a point isn’t verified, it flags that too. And once that step was done, it had already downloaded all these case videos and photos onto my drive. You open each one — including that earliest Coca-Cola ad film,
[05:30] it had actually pulled the video down. And including that Adidas collaboration with Nvidia — that one was probably done with early 3D assets — it had grabbed the videos for all these cases. So at this point we do a filtering pass. I talked it over internally with the team, and I talked with Claude Code and said: for this one, let’s still lead with EC —
[05:56] e-commerce as the main thread, with marketing and their offline order fair as supporting. On that basis, since time is limited, we went through the cases one by one and picked the directions we wanted to show the client. And at that point I use Claude Code to do this: I tell Claude Code, and hand it those files — I’ve already given you all the content of our research report,
[06:21] plus the cases we’ve selected to present. Now I need you to consider the 45 minutes. I estimate my speaking pace is around 200 words a minute. At that pace, please prepare me a PPT outline. And that PPT outline should lead with the scenarios driven by the EC department’s needs, and push some of the video scenarios toward the back. And from experience I’d estimate —
[06:47] maybe around 30 slides is enough. So draft me the outline for this proposal, the PPT proposal. Notice how simple this is — we just need the harness configured right, the skills configured right, and then honestly we only need to talk to it the way we’d brief a colleague in the department, a planner colleague. Just talk like a human. So once that process was done, it gave me a whole —
[07:13] workshop PPT outline. What’s on each of the first few pages: page one is the cover, page two presents some industry data, industry trends. The third is about our relationship with the client as a service provider, and our competitive advantages. Then further back it put 12 pages on the EC main battlefield, and then after that the order-fair content, including in-store VM content, with a few simple pages of —
[07:39] intro for each. It even put in some pages recommending general AIGC tools their team could use. So once that’s done, what’s the one thing I need to do? That thing is going into Claude Code and generating the PPT content. Now some of you will say: doesn’t Claude Code have no image generation? How can it produce PPT content? Great question. There’s been a lot of discussion lately about whether to use Claude Code —
[08:05] or Codex, because Codex includes GPT image 2, its image-generation piece, and you get a certain free quota for generating images. But I’ve been using Claude Code for this all along, and why? Because so far — and I use both — my direct, subjective impression is that the Opus 4.7 model, which as of yesterday got upgraded to 4.8, that Opus model,
[08:30] from the standpoint of being the core brain, is still the better model. You can think of it as: on certain capabilities, or on overall capability, it’s better than Codex. So in that situation, how do I generate images? I use Claude Code to call Codex, or Claude Code to call the GPT image 2 model. As for how to get a GPT image 2 —
[08:56] API key — I covered that in an earlier episode, you can go back and find that video. It’s really simple. You just ask Claude Code, how do I apply for a GPT image 2 API? It gives you the site and walks you through step by step to get the key. All you need is that key, copy it into a local file, hand the file to Claude Code, and then it can call the GPT image 2 model to generate images. Now, at this point there’s still —
[09:21] one more step, because Claude Code doesn’t ship with a built-in skill for calling GPT image 2. So here’s what I did — roughly how I phrased the prompt: I’ve now configured the GPT image 2 API key for you, you can already use this API key to generate images directly, you can write the prompts. But I need you to use a multi-agent team to research in detail —
[09:46] what the best practices are for prompting image 2 to generate images, as discussed online over the last three months, and what the gotchas are. Once that research is done, we’ll summarize it and build out an image style. And we’ll work through the whole process together. So once I give it a prompt like that, it goes off and —
[10:11] researches everything online about prompting for GPT image tool, including the official docs — what parameters exist, what kind of English structure I should express things in. Once it comes back with what it learned, I then aim it at the PPT scenario, because a PPT is 16:9, and on top of that there are different levels of information density. Is it a manual-style PPT with very high text density, or a presentation-style PPT?
[10:37] Those are different. Including that when we’re pitching a brand, the PPT has to stay consistent across many pages — so how do you use reference images? And what design style is this PPT in? Is it that minimal McKinsey style of color blocks plus text, or do I need large areas of imagery underneath, with a fashion-design feel? Those are all choices we have to make, and we have to tell Claude Code which way we lean.
[11:03] So at this point I did the final step. It had already given me the 30-page outline, plus we had the cases and the research results. So I basically told it: we now have the research results, the case index, and the PPT outline. After my edits, I think this version of the outline is good to use. So let’s start generating the images for these 30 slides. And I asked for moderate information density — it shouldn’t put every —
[11:29] word on the slide, but present the core points with emphasis. It’s a PPT that combines image and text with a fashion-design feel. And throughout the deck there are large client photos — I’ve given you a folder with the client’s products, you can use those. Let’s start generating those images in parallel right now. And once the images are done, I need you to embed them into a —
[11:55] web page and lay them out for me to review. And once that web page is ready, under each slide, following a 40-minute runtime at a pace of roughly 200-some words a minute, prepare me a speaking transcript with a coherent narrative. And in that speaking transcript you can use a highlight color to mark the key content.
[12:21] Produce a web page like that. Right — and you can see that during this process it actually calls a lot of my skills, calls them automatically. Like right now it’s extracting content, including that when it designs it uses the PPVI visual style. If you watched my last episode you know PPVI is a visual style I set up for it —
[12:46] its type hierarchy, including that breathing room from whitespace, it’s all preset, so I don’t have to spell it out every time. Now, after that prompt goes out — you might be watching me redo this, walk through the process again, and it looks fast, but really at each stage there are one or two rounds of back-and-forth. For instance, the first version it gave me had a footnote line where it got the studio’s name wrong, so I’d have it fix that consistently —
[13:11] as an outline-level change, and then regenerate that image. And during image generation, a few individual images have content problems. So I go off its feedback and say, for instance, page three and page six have such-and-such problem, and let it fix them directly. At that point you can absolutely just screenshot and circle things, even write annotations to tell it, and it fixes them beautifully. So finally, let me show you our final PPT proposal — a complete 30-slide deck,
[13:37] roughly 8,000 words, 8,000-plus words, and under every slide there’s a speaking transcript. Of course in the end we didn’t read off the transcript, but it did serve as a big prompt during the presentation. And you can see — a very, very consistent PPT: which points in the EC e-commerce scenario can empower a brand,
[14:02] with moderate information volume, suited to presenting and speaking. And every section actually maps to case content, so you can show the videos to the client live. A 30-slide PPT like this — honestly, if you only count the time AI was running, it took me, let me think, maybe a bit over an hour. But that doesn’t mean humans weren’t involved. Throughout the process, human discussion —
[14:27] and the results of that discussion, taking the transcript of what was said and feeding it back to the AI, is extremely important. In this process we had one meeting with the client and two internal meetings, and it’s that synced-up information that got it done. So that’s the final output. On the day, the client had over 40 people in the room, and they felt they got a lot out of it. Think about it —
[14:52] if you’re at a big company, or at an ad agency — I was at Ogilvy, at Tencent, at Social Touch before — a 30-page workshop like this would take you two weeks no matter how you cut it. Two weeks. And now you don’t even need to prettify it. When this version came out, the second — the first — for the first outline version I made a few edits, and this set of images is GPT image 2 straight up, with CC, Claude Code, writing the prompts —
[15:17] helping it control consistency, and GPT image 2 only generating the images. The finish level is extremely high — not a single word changed — and it can also turn this straight into an image-only PPT that’s ready to use. It makes me feel like back when I was doing strategy, doing planning, doing consulting, I was wasting my life. All those ten-plus years, hundreds of PPTs a year, every year — how much time did I sink into making those? This generation has it so good.
[15:42] All you need is the thinking, then AI does the research, we just trim and cut and make choices, and at the end you say go ahead and generate. And out it comes. That simple. All right, if there’s anything else you want to know, leave me a comment. I read pretty much all your comments and reply to every one. See you next episode, bye-bye.