by Matt Zimmerman
The custom outline feature can be found in both the Bulk Writer and Penny Arcade.
Use the custom outline feature when you need to write many blog posts that share a common outline structure.
While there are a million use cases, let’s study an example using the custom outline feature for recipe blog posts. Usually a recipe blog post can follow a similar subheading structure regardless of the recipe itself.
Here is an example of a custom outline:
History Common Ingredients Recipe Cooking Tips Final Thoughts
Whether the blog post is titled “Ultimate Guide to Tacos” or “Ultimate Guide to Barbeque Ribs”, that outline structure could work.
Here’s how it plays out…
In the Bulk Writer, for the article “Ultimate Guide to Tacos”, the AI will then write about the history of tacos. It will then write about some common ingredients in tacos, list a taco recipe, provide some tips when cooking tacos, and end with a section called final thoughts.
The article will finish writing, then ZimmWriter will move onto the next article in the queue: Ultimate Guide to Barbeque Ribs.
It will write about the history of barbeque ribs. It will then write about some common ingredients in barbeque ribs, list a barbeque rib recipe, provide some tips when cooking barbeque ribs, and end with a section called final thoughts.
The article will finish writing, then ZimmWriter will move onto the next article in the queue… (imagine 998 more article titles)!
Pretty cool, huh?
In the custom outline input box, any text you place on a single line turns into a H2 subheading by default.
But in some situations you might want one or more H3s, or even one or more H4s.
In that situation, just include a single dash “-” before each item you want to make into a H3 and a double dash “–” before each item you want to make into an H4.
Here is the recipe example again, but now with three H3s.
History Ingredients Popular Recipes - Recipe #1 - Recipe #2 - Recipe #3 Cooking Tips Final Thoughts
Can you spot the H3s? If you said: Recipe #1, Recipe #2, and Recipe #3 then you’d be correct!
History Ingredients Popular Recipes - Recipe #1 -- Ingredients - Recipe #2 -- Ingredients - Recipe #3 -- Ingredients Cooking Tips Final Thoughts
Do you see the H4s? The three ingredients subheadings are all H4s.
Now just a few itsy bitsy things to keep in mind:
Everything you just read was the blue pill. Want to live in happy land with no worries? Stop reading now.
But if rocket fuel flows through your veins and you live for excitement, then let me give you the red pill and open your eyes to the world of custom variables.
Let’s start simple…
History Common Ingredients Popular Recipes - Recipe #1{list} - Recipe #2{list} - Recipe #3{list} Cooking Tips Final Thoughts
Notice how we added {list} at the end of each H3 recipe in the outline? The {list} is a variable. When we add it to a subheading, ZimmWriter prompts the AI to create a list for that subheading.
Here is another version of the same outline, but with more custom variables added:
History{optimize_title}{auto_h3_3} Common Ingredients{optimize_title}{list} Popular Recipes{optimize_title} - Recipe #1{optimize_title}{list}{yt} - Recipe #2{optimize_title}{list}{yt} - Recipe #3{optimize_title}{list}{yt} Cooking Tips{optimize_title}{auto_h3_3} Final Thoughts
You can now change the model used to write a specific subheading. If you want to get a list of all the models you have access to based on which API keys you’ve entered, go in the ZimmWriter options menu, then click on the “Setup Text API” button, then scroll down and press the “Copy All Models to Clipboard” button. It will copy all of the models to the clipboard so that you can easily choose the model you want and paste it after the subheading.
Use this placeholder at the start of the first line of your custom outline and something magical happens.
When you use {normal} as shown in the image above, ZimmWriter will write the entire article using an AI-generated outline. After writing the article, it’ll append any other custom outline subheadings you add.
In the example above, we have ZimmWriter create an entire article, but then add at the end of the already written article an H2 called “Call Us Today” and write it using a raw prompt.
Can you see how powerful that is? Imagine you’ve got a local business and want to add a call to action at the end of the article. Now you can! I’m sure there are lots of other use cases too.
As an aside, this is exactly like the “master” raw prompt concept, but instead of using a raw prompt, you’re just having ZimmWriter do it’s thing and write the entire article, but append additional subheadings at the end.
Note: You can append {research=…} (as discussed below) onto the end of {normal} if you want to give the AI additional research directions when writing each subheading when using Deep Research.
What I’m about to describe is MASSIVE in terms of power, but it’s also complex. So if you don’t understand it right away, no worries.
Anywhere in your custom outline, at the end of a line, you can append {save_text}.
When you add {save_text}, ZimmWriter will write the subsection and store the subsection title and subsection text (up to the first 3,000 characters) in a variable behind the scenes. (Read that again a few times).
That hidden variable can then be accessed in an image prompt using the {load_text} placeholder.
So when ZimmWriter sends that prompt to the AI to generate the image prompt, it’ll replace the {load_text} with the saved text.
Why’s this useful?
Imagine you’re generating a recipe. It’d be disappointing if the image didn’t reflect the ingredients. Typically, the image prompt relies on just the blog post’s title – e.g., {title} – and the subheading’s title – e.g., {subheading}, to generate the image. But since the AI isn’t being fed additional context, like the recipe itself, often the image won’t represent the actual recipe.
The solution? Feed the recipe itself into the prompt we’re using to generate the image. You can store the recipe using {save_text} and load it with {load_text}. Now the image can do a much better job of representing the recipe!
You can apply this concept beyond recipes too. You might want to use it anytime you’re describing something detailed within a subheading and need an image to better represent those details.
Now I have some VERY critical things to explain about using this cool feature:
First, the data for {save_text} is overwritten in only two instances:
Second, each subheading image prompt result is generated immediately after a particular subheading section is written. So something like this is perfectly okay:
Here’s an example I wrote with that exact custom outline: 10 Best Candy Cane Christmas Punch for Kids Recipes. The custom outline uses a master raw prompt {raw_recipe} and {save_text} which will apply to each subheading (since that’s how master raw prompts work) and also forces an AI image to generate for each subheading. The subheading image prompt looks like this:
What ends up happening is that ZimmWriter writes the first subheading “Creamy Candy Cane Cooler” (see my published example), then stores the subheading text in {save_text}. It loads the image prompt and replaces {load_text} with our saved text, generates a relevant AI image prompt, feeds it to our AI image model, and creates a fantastically relevant AI image! Then… here’s the powerful part: it moves on to the next subheading “Peppermint Punch Paradise,” writes that subheading text, and stores it in {save_text}, overriding the prior saved text. It then loads the image prompt and replaces {load_text} with the newly saved text, and… etc., etc.
Powerful stuff, isn’t it?
Now here’s the third and last critical thing to explain:
The featured image prompt result is generated after the entire article’s written. So… the last text saved from your final {save_text} in your custom outline can be used in your featured image prompt!
That is a lot of stuff to think about! Incredible, incredible power.
You can now insert {var#} into a subheading of your custom outline to accomplish programmatic SEO. When ZimmWriter starts writing your article, it will replace the variables (e.g., {var1}) which the corresponding variable that you defined alongside the title. Here is how it works.
You define the variables in your title in the bulk writer:
Recipe for Southern BBQ Chicken{var1=Southern BBQ Chicken}{var2=BBQ Pork}
You then create your custom outline:
History of {var1} Best Recipe for {var1} Which is better: {var1} or {var2} - Why {var1} is better than {var2}{optimize_title} - Why {var2} is better than {var1}{optimize_title}
Then when you run it, the {var#} in the custom outline will be replaced with the data you defined in the title. Just be mindful that spaces matter. So when you create your custom outline, add a space before and after the {var#} recitation.
At the moment, this feature only works with the Bulk Writer and not the Bulk SEO CSV. It also does not work with the SEO Writer or Penny Arcade for good reason.
When ZimmWriter contacts the AI to request deep research, it sends the following prompt:
[MAIN TOPIC]:
(the title of your article)
[SUBTOPIC]:
(the current subtopic H2, H3, or H4)
[DIRECTIONS]:
Research the [SUBTOPIC] and use shorthand to organize the research, while keeping facts, statistics, and key points. Avoid the use of personal pronouns. If you make groups to help with the organization (though groups are not required), each group should begin with three hashtags (e.g., ###).
[RESEARCH]:
But sometimes you want specific research data out. For example, here’s an article I had ZimmWriter write about 25 Best Restaurants in Los Angeles, CA. In the article, as ZimmWriter writes about a specific restaurant, I want it to fetch the restaurant’s address, hours of operation, and phone number.
I can use the {research= variable to instruct the AI to return that specific data when it performs the research. Here is the final custom outline:
As you can see, we’re using a master raw prompt that instructs the AI to write each subheading section in a specific format. We’re also generating an for each subheading, saving the text so we can use it in an image prompt, and we’ve attached our {research=The research should include details about the business, including its address, hours of operation, and phone number.}
When I send it all to the AI behind the scenes, here’s what the prompt looks like:
[MAIN TOPIC]:
(the title of your article)
[SUBTOPIC]:
(the current subtopic H2, H3, or H4)
[DIRECTIONS]:
Research the [SUBTOPIC] and use shorthand to organize the research, while keeping facts, statistics, and key points. Avoid the use of personal pronouns. If you make groups to help with the organization (though groups are not required), each group should begin with three hashtags (e.g., ###).
The research should include details about the business, including its address, hours of operation, and phone number.
[RESEARCH]:
Do you understand the power of this new feature? It’s crazy!
One final tip. You can do the same thing alongside the end of the title of an article in the Bulk Writer. Here’s an example:
How to Wash a Dog{research=The research should also include some...}
Was the Jake Paul v Mike Tyson Match Fixed?{research=The research should...}
The information provided on this website is provided for entertainment purposes only. I make no representations or warranties of any kind, expressed or implied, about the completeness, accuracy, adequacy, legality, usefulness, reliability, suitability, or availability of the information, or about anything else. Any reliance you place on the information is therefore strictly at your own risk. Read more in my terms of use and privacy policy. You can also contact me with questions.