How I’ve Used Claude for Book Marketing

The use of GenAI in writing, the arts, music, and pretty much any creative industry is highly contentious, and for good reason. The copyright concerns alone are enough to infuriate most writers, and the constant onslaught of AI slop is flooding social media platforms and online spaces.

I’ve written extensively about my position on AI: somewhere in the middle, seeing the potential and the risks. Given that my PhD was focused on these technologies, and I’m about to publish my second book on the topic, you’d imagine that I spend a fair amount of time using GenAI.

But I am, first and foremost, an author. I don’t like using GenAI to produce writing, because not only is that my job, I actually quite enjoy it.

I have just spent the weekend using a combination of Claude on the web and Claude Code to plan, create, and publish an entire marketing campaign for the upcoming Practical AI Strategies 2. And yet, all of the words in the campaign across platforms including email, LinkedIn, Facebook, and Instagram are my own.

In this post, I’ll provide a detailed explanation of how I have used GenAI as an administrative, structural tool in the marketing process, and why the “text-in-text-out” capabilities of GenAI are the least interesting feature.

This is a long post. It explains the thinking behind the process as well as a lot of informal commentary. If you’d rather just read the step-by-step process in chronological order, I’ve made a condensed “how to” PDF at the end of the article.

Jump to recipe…

Tech stack

First up, a run-through of the applications. I’m using Claude as the coordinating AI in all this. I have a Max plan, but all this could be achieved with the cheaper Plus plan on a small scale. I use a variety of apps for socials etc. and, as I’ll explain later, Claude Code will download and run its own suite of open source tools to complete certain tasks.

  • Claude and Claude Code: Used to orchestrate the tasks, convert book content into graphics, schedule posts, and design email sequences. Not used to write any new content.
  • Kit: The mailing list, including the new subscription page for the PAIS2 launch.
  • Meta Business Suite: Used to coordinate the Facebook Page and Instagram account.
  • LinkedIn: Used for… LinkedIn
  • Buffer: A scheduling app used to post to Facebook, Instagram, and LinkedIn which, importantly, has a new API

That’s basically it.

Step by step approach

I used Claude on the web and Claude Code for two different but overlapping jobs. In this article, I’ll run through them separately but in reality I was switching between the two applications while they were running tasks.

I’ll start with the more complicated Claude Code, which was used to convert book materials into marketing assets, and coordinate all of the post scheduling across Facebook, Instagram and LinkedIn.

Claude Code: Assets and Socials

The key point throughout all of this work is that, if you’re a writer, your writing is your most important asset. GenAI is, frankly, bloody awful at writing. It actually seems to be getting worse, and recent versions of Claude in particular have demonstrably gotten more “sloppy” (that’s the move, and it’s a load bearing move, and it’s honestly the real truth…).

I’ve written about the “problem patterns” of AI in an earlier post, but suffice it to say that I would not recommend using Claude or any other GenAI platform for writing marketing copy, emails, or social media posts. People will notice, they will judge you, and you will lose trust.

I want every bit of written content in the marketing process to be my own, so there are a few hard rules to follow:

  1. Any text in pull quotes or captions must come verbatim from the book, my blog, or previous emails.
  2. Any additional text should be written by me, directly into the prompt, or;
  3. Claude can write [placeholder text] which needs to be manually edited out. Placeholder text should describe what text needs to go there, not attempt to write a draft of the actual text

I have Word document and PDF versions of the whole book ready to go in my folder. I also took some screenshots of a handful of pages I wanted to include in the marketing materials. As you’ll see shortly, I didn’t actually need to do that…

The first prompt

When I kicked off the session, my first goal was to create marketing assets. I didn’t plan on launching an entire marketing campaign. It’s often the way with GenAI that I’ll be experimenting and fumbling my way through, and the process will emerge along the way.

Here’s the first prompt:

Screenshot of coding application interface displaying a welcome message, tips for getting started, and details about new features and server authentication issues. Prompt text: create a graphic - 3:2 ratio. The screenshots in this folder stacked and slightly offset, with a drop shadow on each, organised on a very slight diagonal, with the first taken screenshot on top then cascading down. Basically, the book cover on top, then the other pages arranged below as if they're laid out. Enough space between them that you can see content, but tight enough that the image looks interesting.
Full prompts for all screenshots can also be found in the alt texts in this article

A few things worth pointing out. Firstly, and perhaps obviously, “prompt engineering” is not a thing. I’m just telling the model (Claude Opus 5) what I want. I’m not being specific about how to do the job – I’ll leave that up to the model itself, and then review afterwards. Sometimes I will give more specific instructions if I’ve already found a process that works, but this is experimentation.

Secondly, Claude has excellent image recognition capabilities, but no understanding of aesthetics. When working with graphics, it pays to be as specific as possible.

Here’s what happened next. For the rest of the screenshots in this article I’m going to use Simon Willison’s transcription tool because it’s much prettier than raw screenshots from the Terminal. You can see below that Claude Code built itself a little Python script and used the Pillow tool (PIL) to create the image. There are dozens of ways it could have achieved the outcome – this is the one the model selected.

A screenshot of a Python code editor displaying a script named 'build.py', which includes code related to image processing using the PIL library.

After a little back and forth (changing the colour gradients, adjusting the spacing) this is the resulting image:

Cover and pages of the book 'Practical AI Strategies 2' by Dr Leon Furze, featuring sections on using Generative AI in education, critical AI literacy, and practical strategies.

Now, my ADHD brain wants to get in, fiddle, and spend 9 hours in Canva looking for templates. But my logical brain likes to tell my ADHD brain that “done is better than perfect”, and this image is pretty much exactly what I needed.

Given that first success, I figured I would push it a bit further. If it can make one graphic, it can make… 20… right?

Scaling it up

This is typically the way I work with Claude Code. Have an idea, try it once, kick it around a bit until it’s good enough, and then immediately and massively scale it up to see if it breaks.

As you can see below, the next prompt asked for 20 more images. I didn’t have any more screenshots handy, so I also asked the model to open the PDF of the typeset book directly and take its own. I also pointed it (vaguely) to existing promotional images and the brand font pack. I gave it discretion in layout and size, and just asked for variance.

A conversation between a user and an assistant discussing the creation of marketing assets from a book, with instructions on screenshots, consistency, and inventorying source material. The user's prompt reads: using the basic approach from your graphic today, I wnat you to screenshot various pages from the book - interesting ones - and make some marketint assets in the assets/graphics folder. These can be pages with some text on the side, and subscribe.leonfurze.com links to the newsletter. fonts and things are in the promotional materials folder somewhere. QA your work to make sure it looks good. Some can be multiple stacked pages in a 3:2, some can be square with a single page, and I'll leave you to decide on some others. Make... 20? Keep them consistent, on brand, but differentiated enough that they don't become boring.

You can see a few things already happening in the screenshot above, including the model’s first response. It uses Bash – a command line tool for running unix commands – which looks a bit intimidating if you’re not familiar with the command line. Basically all it’s doing here is opening and viewing the PDF. Now, that’s a 196 page PDF, so it’s a meaty enough task, and it spends some time on it, converting the PDF to plain text, examining the contents and structure, and so on.

The tool call below shows that Claude created a temporary “scratch pad” of images which it then reviewed to determine which ones would make the most interesting marketing materials.

Cover page of 'Practical AI Strategies 2' by Dr. Leon Furze, featuring the title and a graphic of a laptop with an airplane paper.

In a later tool-call, the model finds brand guidelines in another folder, and proceeds to extract verbatim text from the book to use as marketing copy (following the first rule I outlined above).

A text snippet discussing the sampling of brand colours, specifically yellow and purple, along with hex codes #FEF200 and #832A92.

Claude Code then writes a new Python script, using the same Pillow tool as earlier but with its new screenshots and copy from the actual book. Midway through the process, it starts to run quality assurance (QA) on its own images. You can see in the tool call below that Claude has produced a range of images, but that some of them have issues with text overlapping screenshots, or otherwise poor layout.

A collection of educational slides discussing GenAI capabilities and applications in education, featuring titles like 'An audit of GenAI capabilities' and 'Critical AI Literacy'.

It used image recognition and fixed most of these issues before I saw the final output. The model iterated back and forth, QAing individual images and batches until it was satisfied with the 20 final graphics. Based on the time stamps, this took 16 minutes from the first prompt to the final graphics.

Here are a couple of examples:

Chapter cover page discussing bias in AI, highlighting its origins, implications, and mitigation strategies.
Diagram illustrating a taxonomy of Agentic AI, categorising different types of AI agents including agent teams, command line interface agents, computer use agents, browser-based agents, and code-using chatbots, with foundational capabilities of language, reasoning, and tool use.

With that working, my next prompt asked for 20 more plus a few LinkedIn carousels, because why not?

In the image below, you can see that during the chat I interrupted because I had changed the subscription landing page from the generic sign up to the specific campaign page: subscribe.leonfurze.com/pais2. This kind of red/green editing is common to programming, and shows the way Claude makes changes to its output along the way. It reflected that change across all of the 50+ assets.

Screenshot of a document editor displaying marketing assets information for the PAIS2 project, highlighting changes in the number of graphics and copy rules.

Scheduling and posting to socials

Armed with a few months’ worth of marketing assets, the next step was to turn them into scheduled social media posts. I mentioned earlier in the article that I’d been double-handling Claudes with the browser version also open (detailed below). In the Claude web chat, I had discussed reopening a couple of defunct social media accounts for Facebook and Instagram, and had it walk me through connecting Meta Business Suite.

Meta is not a platform I’m particularly interested in spending time on, but those two platforms still have a large audience of K-12 and University educators: the target audience for the book. I do use LinkedIn (we all have at least one social media vice, right?), so I wanted a pretty light touch on there since I’ll be posting more regularly the old fashioned way.

I have used Buffer in the past as a scheduling app. It massively cuts down on the amount of time you have to spend on-platform, and of course means you can plan well in advance. As I was exploring ideas in the chat Claude also surfaced a recent update to Buffer: it added a new API in May 2026. This is probably the most important feature with regards to Claude Code.

After setting up all of the social accounts and connecting them to Buffer, I went through all the resources Claude had created earlier, and put the ones I liked the most into a new folder. In Buffer, I generated an API key which I saved locally on my device (don’t post API keys or passwords into Claude chats!).

The next prompt to Claude Code was long and rambling. I’ll post the entire thing here:

I’ve put all the resources I like into [directory]. My Buffer account is connected to LinkedIn, Facebook Pages, and Instagram. You will use the new Buffer API to make the entire content calendar for all three platforms, selecting the best content for each platform. For the post text, you will use an appropriate style (eg no links in insta, slightly longer for likedin) but above all else you will follow the “Use verbatim text from Leon’s writing only” rule: no ad-libbing! Text can be direct quotes, including quotes with ellipsis or [minor adjustments] so they make sense. they don’t need quotattion marks. All content should point to “Practical AI Strategies 2 is coming soon. Subscribe to the newsletter for more information. For cadence, the insta and facebook should be more regular than the linkedin since I manage the linkedin manually and it’s the only one where I will also be posting more organically. Linkedin Posts therefore can generally go out twice a week at 10pm Melbourne time, whereas the other platforms could be more regular and maybe 9am and 4pm Melbourne time. Before we begin I want you to design the SYSTEM. So, you will make a “buffer strategy” plan and a database of posts, images, and accompanying text. The only link to ever include (not on insta obvs) is the subscribe.leonfurze.com/pais2 link. You might need to go back to the books and blog posts for verbatim text – feel free to use workflows or subagents as you see fit. Before I give you the API access, I want to see a clear content calendar. In fact, that’s so important that you should make a literal calendar that I can view (maybe as html – a sort of mock buffer calendar). any questions before you begin?

A few comments on the prompt. It reinforces the “only use my words” rule in a few places, since that’s the most important part: no slop marketing. My instructions about posting cadence are clear, and the request to design the system first exists because, in my experience, Claude Opus 5 will just rush off and start problem solving otherwise. I also asked at the end if it has any questions: these often preempt a few problems.

I don’t trust a big job like this without several human touch-points. I certainly wouldn’t want Claude to just generate and publish dozens of social media posts unattended. So, I asked for the system, and then as an afterthought asked for a visual content calendar. That turned out to be a good idea, because it was immediately obvious that Claude had made mistakes.

A digital calendar layout displaying various posts about practical AI strategies, featuring quotes on language models.
The content calendar, v1. Spot the obvious issues.

In response to one of Claude’s questions, I had answered that it could reuse content across the 3 month period we were planning, but vary the text copy.

Claude’s interpretation of that instruction was “reuse the exact same image 6 or more times per week”. I’m no marketing expert, but even I can imagine that posting the exact same image every day of the week across Instagram and Facebook is not a good idea.

It had also done a terrible job of pairing text with the images. One of the above yellow pull quote images was paired with the following caption:

Discuss where these patterns come from and what they reveal about the training data.

— Practical AI Strategies 2

Practical AI Strategies 2 is coming soon. Subscribe to the newsletter for more information.

It had randomly pulled half of a question from a practical activity in the book, stripped it entirely of context, and plonked it next to a largely unrelated image with a quote about hallucinations.

Back to the drawing board. I prompted to spread the images and content out more across the marketing period, use fewer repeats, and “do a better job” of selecting text. It is quite impressive how effective telling capable models to “do better” can be. The model’s response also indicated why the problems had occurred (not just my cavalier prompting):

A text excerpt discussing image captioning techniques and the importance of context.

The model picked random sentences because it didn’t use image recognition on the pull quote images: it was relying on metadata and file names. You can also see at the bottom of that response that it caught itself in the act of breaking rule number one: only use my verbatim text. It had paraphrased some of the lines from the book rather than using actual quotes. Naughty.

The second version of the calendar was much improved. At this stage I handed over the API key (via the MacOS Keychain, in this case), and it went ahead and scheduled everything in Buffer. While it internally hit a few issues, there was nothing it couldn’t resolve. Around 20 minutes later, all posts were scheduled across Facebook, Instagram, and LinkedIn, following the timelines from my first prompt.

The final stage in this process was manually checking all of the scheduled posts – just a quick eyeball, and a couple of manual edits to tweak the wording (which was, in every case, my own wording from the book itself).

A calendar view displaying scheduled posts for various social media channels in August to September 2026, including topics related to AI, privacy, and bias.
Scheduled posts in Buffer

Claude: Mailing lists and email automations

That wasn’t all I did in the Claude Code conversation, and there was a decent amount of back and forth in between the examples I’ve included above, but you get the gist of it.

Over in Claude on the web, a different conversation was unfolding. This one started with some research and kicking around a few ideas. Here’s the opening prompt:

PAIS2 proofs are back and it’s time to get into marketing gear. I have LinkedIn and my mailing list but I don’t use Facebook or Insta and that’s where a lot of the k12 audience is.

Automations. I’m thinking buffer in the middle, with Claude code in charge and buffer connected to Insta linkedin and Facebook. Claude code will make marketing materials which will all point to a new subscribe.leonfurze.com/pais2 – one key part of this is that all the body text is verbatim from the book so it’s not AI slop.

I’m thinking Claude code can manage pushing stuff to buffer (API?) and I get manually weekly approval before anything goes out.

If you read through the above, you can see I’m picking up this chat at around the time I created the new subscribe.leonfurze.com/pais2 link. I had already generated the marketing graphics, and had a vague idea that I might be able to use Buffer to do the scheduling. Claude went away and discovered the new Buffer API, which is really great timing for this campaign. My next prompts related to resurrecting the Facebook and Insta accounts:

What accounts do I need? I have an old Leon furze insta account, and I have a current FB personal account but I feel this needs a PAIS2 one?

Ultimately, Claude recommended keeping the Instagram (I already had a ‘professional/creator’ one from a previous book) and using an existing but unused Facebook page. Claude also recommended I update my photo, which was so out of date I actually have hair…

A close-up portrait of a smiling man with short brown hair, wearing a blue shirt, against a light blue background.
Almost the MySpace era

From socials to mailing list

With the accounts good to go, I switched tracks to the mailing list. So far, my attention had been focused on social media. My main audience, though, is on my existing mailing list. I switched from Mailchimp to Kit earlier this year, and have found it more useful as a solo author/creator. In one of their marketing emails I received a “6-month launch plan” for authors, which I already adapted into a shorter run (Practical AI Strategies 2 is much closer than that!).

I uploaded the Kit launch plan, the book, and the edited launch plan into the chat. In the prompt below, you can see me referring to the “Kit connector” – this is Kit’s MCP integration. If you’re not familiar with MCP, its a protocol that allows AI systems like Claude to connect to other platforms. At this stage in the chat, I was still moving back and forth between Claude and Claude Code. You can see the prompt is conversational, still experimental, and keeps the core rule which is basically “don’t publish bollocks”.

Screenshot of a document discussing the adaptation of a kit plan into a tighter version, outlining steps for a launch process with attached files in PDF and DOCX formats. Prompt text: I adapted the kit plan into a tighter plan and have attached both (plus the book for reference). 

What I want you to do is examine all this and give me a step by step guide starting today. You have a Kit connector I think so you could also see the email sent out today and the “launch team”. It’s not related to the Facebook/insta push but may be useful context. 

I’m not precious here either - building the ship as I fly it. If you think I should approach this differently I would be open to anything. 

My key thing is for as much as possible to ultimately run through Claude code but with enough touch from me that I don’t ADHD forget it, over commit, or accidentally publish bollocks

The next few conversational turns develop the launch plan, incorporating the other other discussion of social media accounts. I then tried to use the Kit MCP connector to directly set up some of the email sequences alongside the social media Buffer schedule. With MCP, it’s permissions are fed into the start of the chat. I had to start a new chat and turn on a few more Kit permissions, so I prompted Claude for a document to take from one chat to the next.

The next chat picked up exactly where the last left off, requesting Claude create the automation sequences outlined in the document. Importantly, Claude creates the email sequences as drafts, and with placeholder text. This is really an administrative task, not a creative one, since Claude can easily handle things like timed email sequences with messages that publish after a certain number of days, or only to specific audience segments.

You can see the opening prompt and one of the resulting sequences below:

Screenshot of a text document discussing email templates for PAIS2 marketing, highlighting Kit access and a specific template for automation. Prompt text: picking up from our earlier conversation (see previous chat titled Automating PAIS2 marketing...) you should now have broader Kit access and the ability to make email templates for my automations as per the .md. PAIS2-subscribe-template is the basic template for all these emails.
A digital newsletter layout featuring the title 'The Critical Guide to GenAI in Education' alongside 'Practical AI Strategies 2' by Dr Leon Furze, with text from an introductory email about the newsletter content.

The Kit MCP can’t handle visual automations, so I then had to go into the Kit platform, and set up the sequences that automatically tag subscribers and trigger the email sequences to send. My automations aren’t complicated:

Flowchart illustrating the automation process for the PAIS2 free chapter. It includes decision points for the presence of the PAIS2-LAUNCH-TEAM tag, leading to either the PAIS2-MAIN-FORM or weekly nurturing for PAIS2 Interested.

Epilogue: tidying the list

The last thing I used Claude and Claude Code for was tidying my Kit mailing list. The start of a campaign seems like a more sensible time to do this than midway through, and I noticed while playing with the Kit MCP settings that it has lots of very granular access to things like subscriber activity, who has clicked emails (or not), and so on.

So for the final part of this weekend’s work, and aside from the main marketing campaign, I also used Claude Code to identify obvious bots on my list (it found 93), and to tag and reengage around a thousand subscribers who hadn’t opened an email in a while.

I won’t go into the full mechanics of this in this article… I think you’ve probably had enough by now, but it followed much the same process as earlier: experiment, find out what Claude can do, and then push on.

Practice to principles

And that’s it. A few hours work, spread out over some downtime on the weekend from 8:30am-10:30am Saturday morning, plus a couple of hours in the afternoon, and an hour on Sunday morning.

If you’ve read much of this blog, you’ll know that I try to generalise principles even from the strangest examples of AI use. So, here are a few from this weekend that apply particularly to authors and people using AI in marketing and similar contexts:

  1. Start and end with your own writing: People don’t want to read Claude talking bollocks about load-bearing heavy-lifting moves. Even if you think AI sounds more polished than you, you sound better than AI. Write first, and let AI draw on your writing.
  2. Claude chat for research and ideas: Use the web or app version of Claude for bouncing ideas and doing quick research, like “how do I set up my old Facebook page?” It’s faster and more user friendly, and using Code to do this would be like hammering a nail with a torpedo.
  3. Claude Code for tools and building: Use Claude Code for the hard stuff, like creating graphics, analysing data, or making complex use of APIs and MCPs. Code has a larger context window, more tool-use capabilities, and can iterate for hours on a problem if necessary.
  4. Plan and work in systems: Don’t treat everything like an isolated task. As often as possible, try to connect the dots between different chats so that you’re building systems. Systems can be repeated later – now I have built one set of graphics, I know how to do it next time.
  5. Try it once, then scale until it breaks: Similar to the above, once you have something that works, push at it fro a few directions. Do it bigger, or broader, or more specific. Take something that works and put it into a new context until it doesn’t, then figure out why it broke.
  6. Expertise is the only real failsafe: I know my own book well enough to spot errors. I know enough about APIs to understand why I shouldn’t copy/paste keys into a chat. I can do enough coding to ask the right questions in Claude Code. A little bit of expertise goes a long way, and saves you time and risk.

Step-by-step guide

If you made it this far, well done. You’ve just read through the whole process as it unfolded in reality: messy, frequently broken, and full of trial and error. With the gift of hindsight (and a lot of copy/pasting, screenshots, and more Claude Code), I’ve pulled the processes into a step-by-step PDF that’s much tidier.

Enjoy, but bear in mind that your experience will undoubtedly be just as messy as the full blog post suggests:

Leave a Reply