AI

How do I prompt AI to make a template I can reuse with new data?

Describe the output, fields, and layout once, then review the AI draft and use new records to make branded PDFs without another design request.

Theo Whitfield 6 min read

Tell the AI which document you need, which fields change, and how much content the layout must hold. You get an editable template that you can review and fill with new data. An AI start costs 50 credits, and each PDF or image you make after that costs one credit. This guide uses a project brief. It keeps the design request apart from the records you send later.

Describe the output and its changing fields

Open Build a template, choose your brand kit, and select PDF. The prompt below asks for a one-page brief with named fields. It gives the AI a useful layout constraint and leaves the brand choices to your selected kit.

Text
Create a one-page A4 project brief PDF using my brand kit.
Use editable text, a clear title, and a short milestone list.
Keep these as data fields: project_name, summary, owner, starts_on,
target_on, success, milestones, and note.
Each milestone has date and name fields. Allow one to eight milestones.
Use YYYY-MM-DD dates. Include a schema and fictional sample data.
Keep the brief readable with eight milestones and a long summary.
Do not put sample names or dates directly in the template source.

Read the cost beside the send button before you click it. The Free plan's 50 monthly credits don't pay for AI work. You can try Starter for $1 for your first week and get 500 credits, or buy a $10 pack of 500. Pricing lists every pack and plan. Each later message costs 25 credits, and the credit guide has the full rules.

Review the fields before the layout

When the message finishes, open its preview and inspect the draft. Confirm that the title, dates, and owner read from data. In the Data panel, change a value and refresh the preview. The changed value must appear without editing the source. Check the schema as well. Required fields and list limits reject a broken record before it makes a file.

Use this Project brief as a reviewed reference. It's a gallery template we keep up to date. Your own AI draft won't look exactly like it.

A rendered project brief with a project title, dates, goal, and milestone list
Project brief templatePDF

Read the Project brief HTML, schema, and sample data. Its eight named fields match the prompt's data shape. The gallery template has its own text limits. An AI draft can choose different limits, so check the schema it returns.

Check one milestone, eight milestones, a long project name, and an empty list. The valid records must stay readable. The empty list should fail if your schema requires at least one milestone. Fix the draft in the editor or send one focused change request. Publish only after you review the template. A finished AI message doesn't add it to your reusable library.

Run a record through the reviewed template

This recipe uses the gallery Project brief as a stable baseline for the data step. Copy it into your account, then note its template ID and reviewed version. To use your AI draft instead, first publish it and match the request to its own schema.

You need curl and an API key. Set THIRDS_API_KEY through your secret store. Save this JSON as brief-request.json, then put your copy's template ID and version in it. It has the same eight fields as the sample data on the source page, with new project values.

POST /v1/pdf
{
  "template_id": "tpl_00000000000000000000000000000000",
  "version": 1,
  "data": {
    "project_name": "Signal Lab tutorial series",
    "summary": "Create a reusable brief for each new tutorial project.",
    "owner": "Alex Morgan",
    "starts_on": "2026-11-02",
    "target_on": "2026-11-20",
    "milestones": [
      { "date": "2026-11-06", "name": "Review the outline" },
      { "date": "2026-11-13", "name": "Check the first tutorial" },
      { "date": "2026-11-20", "name": "Approve the finished series" }
    ],
    "success": "Each tutorial has a checked outline, owner, and due date.",
    "note": "Fictional sample project for this recipe."
  },
  "wait": false
}

Review the file. This next command spends one credit when the PDF succeeds. Choose your own Idempotency-Key for it.

Shell
curl --fail-with-body --silent --show-error \
  https://thirds.ai/v1/pdf \
  -H "Authorization: Bearer $THIRDS_API_KEY" \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: YOUR_UNIQUE_BRIEF_REQUEST' \
  --data-binary @brief-request.json

Keep the id from the response. Read the job until its status is succeeded, and replace the sample ID with yours:

Shell
curl --fail-with-body --silent --show-error \
  https://thirds.ai/v1/pdf/pdf_00000000000000000000000000000000 \
  -H "Authorization: Bearer $THIRDS_API_KEY"

Copy download.url from that response and add https://thirds.ai before it. The download doesn't need your API key.

Shell
curl --fail --silent --show-error \
  'https://thirds.ai/v1/downloads/YOUR_SIGNED_DOWNLOAD_TOKEN' \
  --output brief.pdf

Open brief.pdf and check the changed project values. If the create command stops, send it again with the same key and the same file. Give the next project a new key and a new file.

Make one change per follow-up message

A focused message gives you a clear result to check. For example, ask the AI to increase the milestone text size while keeping the field names and page size. Check the resulting eight-row case before you publish another version. Avoid changing the fields, page size, and layout in one message when only the text size needs work.

Manual edits and the live preview don't need an AI message. Use the template editing guide to choose the control that fits the change. Pin the published version in your API request, so a later edit can't change what you get.

Fix common failures

Code or visible stateWhat to check
insufficient_creditsCheck the displayed AI cost or add credits before the intended render.
template_data_invalidMatch the saved version's schema, including required fields and list limits.
template_missing_dataSupply the field the template reads, or correct its name in the source.
template_not_foundSet your copied template ID and its version number.
idempotency_conflictSend the original input again, or use a new key for a new project.
Text crosses a page or boxShorten the data or edit the layout, then preview the longest valid record.
A sample name remains after a data changeReplace the fixed source text with the intended field before publishing.

Start with the Project brief template to practise the data step. When you need a different layout, use Build a template with a prompt that names your output and fields. For a wider view of repeat-image tools, the ranked list of Bannerbear alternatives compares eight options for this kind of work.

Make the file this guide describes

Start from a real template, put in your own words and colours, and click one button to get the finished file.