Files
portal/runs/contractor-planned-2026-09-24/site/llm/01-aggregates.yaml.md
T

8.2 KiB

You write the words for one page of a website for this business.

Business: Nordvik Bygg About: We survey old buildings, draw up rehabilitation plans, handle the permit application, and do the building work with our own carpenters plus subcontractors for electrical, plumbing and scaffolding. Contact: Ingrid Nordvik ingrid@nordvikbygg.example Language to write in: en

Everyone the site serves:

  • building-problem: A housing board or private owner with a problem with a building - wants: Someone to come and look at it, and tell them what it would cost to fix. Handled by project_managers. Stages: open -> surveyed -> quoted -> won -> lost -> declined.
  • known-project: An owner who already knows what they want built - wants: Drawings, a permit application and a price. Handled by project_managers. Stages: open -> surveyed -> quoted -> won -> lost -> declined.
  • subcontractor-application: A trade firm that wants to be on our list of subcontractors - wants: To be approved as a subcontractor. Handled by project_managers. Stages: open -> checking -> papers_requested -> approved -> rejected.
  • job-application: A carpenter or apprentice asking if we are hiring - wants: To apply for a job with us. Handled by project_managers. Stages: open -> interview -> hired -> declined.
  • site-report: Crew on site, ours or a subcontractor's - wants: To report a hazard, near miss or wrong materials before it is forgotten. Handled by safety_officer. Stages: open -> closed.

The page: aggregates.yaml It is the mails the site sends. Under each bucket, each stage that sends one has a subject and a body: the mail a person gets the moment their case enters that stage, saying what happened and what, if anything, they can do now. Plain text, short, in the business's voice. Keep every {...} placeholder exactly as it is - {site}, {chain}, {email} and any field name are filled in by the site - and keep any line with a link in it.

Below is the page as JSON. Every value is a slot that says what to write there. Return the same JSON with every slot replaced by your words. Keep every key exactly as it is. A slot left as it is counts as no answer.

Rules for the words:

  • question is a question the reader could ask themselves.
  • A heading says what the reader gets, in the reader's own words, and must work without its description.
  • Lead with what a thing enables. No negations in headings. No trade jargon the reader would not use.
  • Descriptions are one or two short sentences. Labels and buttons are a few words.
  • The button says what pressing it does; the encouragement says what happens next or how little it takes; the form's guidance line says what to have ready. Placeholders are example answers in the reader's words.
  • An icon is one name from this list, chosen for what the reader is doing, or empty: house, building-2, store, school, map-pin, route, footprints, trees, leaf, snowflake, sun, users, user, user-plus, user-check, baby, heart-handshake, hand-helping, handshake, smile, mail, phone, message-circle, megaphone, bell, send, inbox, alert-triangle, siren, shield, construction, hammer, wrench, ruler, package, truck, car, bus, train-front, bike, calendar, clock, file-text, clipboard-list, receipt, wallet, coins, banknote, credit-card, key, lock, search, star, gift, shopping-cart, lightbulb, flag, thumbs-up, check-circle, briefcase, stethoscope, activity, camera, pencil, refresh-cw, list, layers, vote, scale
  • Write the way people in this trade and country actually speak.

{ "applications": { "declined": { "body": "<WRITE: a form label for the field body>", "subject": "<WRITE: a form label for the field subject>" }, "hired": { "body": "<WRITE: a form label for the field body>", "subject": "<WRITE: a form label for the field subject>" }, "interview": { "body": "<WRITE: a form label for the field body>", "subject": "<WRITE: a form label for the field subject>" }, "open": { "body": "<WRITE: a form label for the field body>", "subject": "<WRITE: a form label for the field subject>" } }, "enquiries": { "declined": { "body": "<WRITE: a form label for the field body>", "subject": "<WRITE: a form label for the field subject>" }, "lost": { "body": "<WRITE: a form label for the field body>", "subject": "<WRITE: a form label for the field subject>" }, "open": { "body": "<WRITE: a form label for the field body>", "subject": "<WRITE: a form label for the field subject>" }, "quoted": { "body": "<WRITE: a form label for the field body>", "subject": "<WRITE: a form label for the field subject>" }, "won": { "body": "<WRITE: a form label for the field body>", "subject": "<WRITE: a form label for the field subject>" } }, "subcontractors": { "approved": { "body": "<WRITE: a form label for the field body>", "subject": "<WRITE: a form label for the field subject>" }, "open": { "body": "<WRITE: a form label for the field body>", "subject": "<WRITE: a form label for the field subject>" }, "papers_requested": { "body": "<WRITE: a form label for the field body>", "subject": "<WRITE: a form label for the field subject>" }, "rejected": { "body": "<WRITE: a form label for the field body>", "subject": "<WRITE: a form label for the field subject>" } } }

Reply with the JSON object only.

=== REPLY === { "applications": { "declined": { "body": "Thanks for taking the time to apply. We've decided to go with other candidates this time, but we'll hang on to your details in case something suits down the line. Good luck out there.", "subject": "Your application with Nordvik Bygg" }, "hired": { "body": "Good news - we'd like to bring you on board. Ingrid will be in touch shortly to sort out start date and paperwork. Welcome to the crew.", "subject": "Welcome to Nordvik Bygg" }, "interview": { "body": "We'd like to meet you. Someone from our team will call you soon to find a time. Have a couple of past jobs ready to talk through.", "subject": "Let's talk - Nordvik Bygg" }, "open": { "body": "Thanks for reaching out about work with us. We're looking through applications now and will get back to you soon either way.", "subject": "We've got your application" } }, "enquiries": { "declined": { "body": "We won't be able to take this one on. Sorry we can't help this time - feel free to come back to us if things change.", "subject": "About your enquiry" }, "lost": { "body": "You've gone with someone else for this job - no hard feelings. If anything else comes up on the building, give us a shout.", "subject": "About your quote" }, "open": { "body": "We've received your enquiry and will be in touch to arrange a look at the building. No need to do anything else for now.", "subject": "We've got your enquiry" }, "quoted": { "body": "Your quote is ready - see the details at {site}. Let us know if you'd like to go ahead or if anything needs explaining.", "subject": "Your quote from Nordvik Bygg" }, "won": { "body": "Great - you're in. We'll be in touch to plan dates and next steps for getting the work started.", "subject": "You're booked in with Nordvik Bygg" } }, "subcontractors": { "approved": { "body": "You're approved and now on our subcontractor list. We'll reach out when work comes up that suits you.", "subject": "You're on our subcontractor list" }, "open": { "body": "Thanks for applying to work with us. We're going through your details and will come back to you soon.", "subject": "We've got your application" }, "papers_requested": { "body": "Before we can approve you, we need a few papers from you - see what's needed at {site}. Send them across when you can.", "subject": "We need a few documents from you" }, "rejected": { "body": "We won't be adding you to our subcontractor list at this time. Thanks for your interest - you're welcome to apply again later.", "subject": "About your subcontractor application" } } }