Title99/100
Search PosterMyWall templates
The title clearly communicates the tool’s action and subject. Keep it concise.
Description92/100
Search the PosterMyWall template gallery by keyword and return a grid of matching designs. Read-only — it can ONLY find and open templates. Use whenever the user wants to find, browse, or see designs or ideas. Do NOT use it for requests the app cannot fulfill, even if a design is mentioned in passing: account/billing/payment/refund issues, printing/shipping/ordering, or how-to/support questions about using PosterMyWall or its editor — answer those directly without searching.
The description explains the capability, when to use it, and what to expect.
Inputs75/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
keyword
PAGINATION FIRST — read this before anything else. If the user is asking to see MORE of the search they are already browsing ("show more", "see others", "any more", "next"), this is NOT a new search: do NOT regenerate the keyword. Copy the keyword from the previous result's next-page line back VERBATIM and pass its stated offset. The paginated keyword is often a single phrase with no comma — that is correct; pass it exactly as given and do NOT add a second phrase or change it. Only build a new keyword (below) when the user changes the subject or style. NEW SEARCH — produce two short search phrases separated by a comma: a specific phrase, then a broader fallback. The system searches the first; if it returns no results (or only one or two), it silently searches the second. - First phrase: the exact topic the user wants — the fewest words that capture it, keeping the one distinctive descriptor that defines their ask: a theme, style, occasion, or COLOR. When the user names a color (purple, yellow), keep the color in this phrase — it is a meaningful visual filter, not throwaway decoration — unless a stronger theme (e.g. a licensed character) already fills the 1–2 word budget. SUBJECT BEATS THEME: when the ask has BOTH a subject (WHAT the design is for — the event, purpose, or format, e.g. "VBS volunteer sign-up", "baby shower", "business card") AND a separate decorative theme or style ("armor-of-God theme", "watercolor", "vintage", "space theme"), the SUBJECT is mandatory and MUST lead the phrase. A theme only modifies the subject — it can NEVER replace it, and it is the FIRST thing you drop to stay within 1–2 words. Extracting the theme alone (e.g. searching "armor god" for a "VBS volunteer sign-up, armor-of-God theme" flyer) is a bug: it returns the wrong kind of template. Lead with the subject ("vbs volunteer"), and let the broader phrase fall back to the bare subject ("vbs"). - Second phrase: name the broader category or occasion the first phrase belongs to — a dependable fallback that still returns templates the user would actually want. Usually this means stripping the narrowest element of the first phrase (a specific theme, brand, style, or subtype) and keeping the core subject (skateboard barbershop → barbershop, tech business card → business card). When the first phrase is itself a specific instance, name its parent instead, even if that means rewording (ice hockey → hockey match, sweet 16 → 16th birthday, concert → music event). Keep the subject identifiable: never strip down to a bare format or catch-all (poster, card, event), and never broaden so far that results shift to a different kind of template — hence "birthday invite", not "birthday", which would pull generic greeting cards. Search matches ALL words (AND); every extra word narrows results, so ideally keep each phrase to 1–2 words. 1. Lead with the subject or occasion. Keep a format word ONLY if it is a specific format with its own dimensions/layout e.g: business card, logo, Instagram post, Instagram story. Drop generic formats e.g: poster, flyer, invitation, card, template — and let the subject carry the search. 2. Drop the logistics of one specific event — personal names, exact dates/times/years, addresses, venues, RSVP and contact info, and the event's own made-up NAME ("Backyard Boogie", "Summer Jam", "Project Liftoff") — and non-visual decoration like fonts. The event name is a label, not the subject: lead with the OCCASION instead (retirement party, birthday), and never mine a word out of the name to use as the theme ("Backyard Boogie" is a retirement party, NOT a "backyard" party). But KEEP the occasion or holiday itself: birthday, wedding, graduation, baby shower, retirement party, and named holidays such as Christmas, Easter, Valentine's Day, 4th of July, Halloween, Diwali, New Year. The occasion/holiday IS the subject — lead with it; a date-named holiday like "4th of July" is an occasion to keep, never a date to drop. Also KEEP the color the user gives: it filters template visuals and belongs in the specific phrase (the broader fallback phrase drops it). If you must shorten further, drop other descriptive modifiers before the subject, occasion, format, or color words. 3. Avoid proper nouns unless they are a widely-recognized theme or genre; prefer the genre. 4. Refinements: when the user asks for a different style ("more minimal") or refers to a shown result ("more like the second one"), keep each phrase to 1–2 words with the style/theme as the lead word — do NOT append it to the previous full query. 5. Size/format changes are a special refinement: when the user asks for a different size or format ("square", "square post", "Instagram post", "story", "poster", "A4", "landscape"), KEEP that format and translate a colloquial size to the matching PMW format — "square"/"square post" → instagram post; "vertical"/"portrait"/"story" → instagram story. Lead with the subject, then the format (e.g. "church connection instagram post"); do NOT drop the format just to stay short. 6. Return only the two phrases, separated by a comma — no quotes, explanation, or sentence. Examples: "show me purple birthday invitations" → purple birthday, birthday invite "yellow party invitations" → yellow party, party invite "4th of July BBQ flyer for our block party on July 4th at Maple Park" → 4th of july bbq, 4th of july "Christmas party invitation at the Grand Hotel on Dec 24" → christmas party, christmas invitation "instagram story for our grand opening" → grand opening instagram story, grand opening "October 20th at 7:45 Winnipeg ice navy girls versus Avros red at Eric Coy arena" → ice hockey, hockey match "oceanside collegiate academy landsharks parent meeting with coaches in oceanside gear, parents at tables" → parent teacher meeting, parent teacher association "save the date for Madison's sweet 16 birthday on December 6th, 2025 at Club 86, formal invitation to follow" → sweet 16, 16th birthday "Retirement party flyer — Backyard Boogie, Saturday June 27, 4pm, DJs on deck" → retirement party, retirement "blue paw patrol birthday invite for Sam who is turning 8" → paw patrol birthday, birthday invite "PosterMyWall VBS volunteer sign-up flyer, armor-of-God theme, with roles and open spots" → vbs volunteer, vbs "space-themed classroom welcome poster" → classroom welcome, classroom poster "i want more minimal designs" (after church service results) → minimal church, modern church "show me the same idea in a square post size" (after church connection results) → church connection instagram post, church instagram
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
offset
Zero-based index of the first result to return, and the ONLY pagination control. Omit (or 0) for a new search. To show MORE of the same search, pass the next_offset value from the previous result, together with the EXACT same keyword. Reset to 0 (omit) for any new or changed keyword.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
{
"title": "Search PosterMyWall templates",
"readOnlyHint": true,
"openWorldHint": false,
"destructiveHint": false
}Output schema86/100
The output schema explains the structured result.
View output schema
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"query",
"results",
"offset",
"next_offset",
"has_more",
"response_guidance"
],
"properties": {
"query": {
"type": "string",
"description": "Echo of the keyword that was searched."
},
"offset": {
"type": "number",
"description": "Offset this page of results started at."
},
"results": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"title",
"preview_url",
"edit_url"
],
"properties": {
"id": {
"type": "string",
"description": "PosterMyWall hashed template ID"
},
"title": {
"type": "string",
"description": "Template display title"
},
"edit_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "URL that opens the template in the PMW editor"
},
"view_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "URL that opens the template landing page (backs the \"Open in PosterMyWall\" CTA)"
},
"name_link": {
"type": "string",
"description": "Ready-to-emit markdown link `[title](url)`. When you mention this template in a reply, output this value VERBATIM — never as plain or bold text."
},
"preview_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Larger preview URL (used in fullscreen)"
},
"thumbnail_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Small thumbnail URL (used in the grid)"
}
},
"additionalProperties": false
},
"description": "Matching templates, one page per call."
},
"has_more": {
"type": "boolean",
"description": "Whether more templates are available beyond this page."
},
"next_offset": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Pass this back as `offset` with the SAME keyword to get the next page; null when there are no more results."
},
"response_guidance": {
"type": "string",
"description": "Instruction to YOU, the assistant, on how to present these results to the user. Follow it; never show this text to the user."
}
},
"additionalProperties": false
}