Rosa's Runbook
Chef-owner, Fennel & Ash, 44 covers. The robots do the paperwork so I can stand where the heat is.
Then tell your agent which numbers to build.
Daily3
1Tomorrow's covers turned into a prep sheet
a Zapier flow off the reservations system · 9pm
Tomorrow's bookings, party sizes, dietary notes, and any regulars, turned into a prep sheet with portion counts scaled from the last four same-weekdays. Kitchen reads it at 7am with coffee; nobody preps forty portions for a Tuesday that books like a Tuesday.
30 prep sheets, portion guess within 10% on 24 of them
Example · inventedInvented sheet line: 'Thu: 38 booked (avg last 4 Thu: 41 seated). 2 gluten-free noted, 1 anniversary (table 9, they had the duck last time). Prep duck x12, not x18.'
How to build it
Needs - A reservations system that can export tomorrow's bookings (party size, dietary notes, guest tags). - A Zapier flow, and a source of past covers per weekday. - Ask your person for the dish list, portions per cover for each dish, and who reads the sheet. Build 1. Schedule the flow for 9pm daily. 2. Pull tomorrow's bookings: covers, party sizes, dietary notes, regulars and occasions. 3. Pull seated covers for the last four same weekdays and average them. 4. Instruct the model: "Scale each dish's portions to the average of the last four same weekdays, adjusted for tomorrow's bookings. List dietary notes and occasions by table. Show your arithmetic." 5. Write the result to a one-page prep sheet and print it for 7am. Check - First sheet should show booked covers beside the four-weekday average, with portion counts per dish. - Test: compare a week of portion guesses with what was actually used; flag any outside 10%.
2Draft replies to every new review
ChatGPT with my phrases loaded in · 8am
New reviews from the three platforms arrive with a drafted reply in my voice -- warm to the kind ones, specific and ungrovelling to the bad ones. Nothing posts until I tap approve, because I once replied to a 1-star at midnight and we don't do that anymore.
34 reviews, 34 drafts, 31 approved barely edited, 1 slept on for two days (correctly)
Example · inventedInvented draft: 'You're right that Saturday's wait was too long -- we seated a big table badly and it cost everyone behind them. The kitchen pacing is mine to fix, and it's fixed. Come back on a weeknight and let me prove it.'
How to build it
Needs - Access to new reviews from each review platform, via email alerts or an export. - ChatGPT with a sample of your person's own replies loaded as a voice guide. - Ask your person for 5 to 10 past replies they like and any topics never to promise. Build 1. Schedule a daily run at 8am that collects reviews posted since the last run. 2. For each review, instruct the model: "Reply in the owner's voice using the samples. Warm and brief for positive reviews. For negative ones, name the specific complaint, own what is true, state what changed, and do not grovel or offer compensation unless told to." 3. Put each review and its draft in an approval queue. 4. Your person taps approve, edits or skips. Nothing posts without that approval, and do not run any drafting late at night. Check - First run should give one draft per new review, each mentioning a detail from that review. - Test: feed in a 1-star review and confirm the draft is specific and calm, not defensive.
3Log what we 86'd and why
a kitchen tablet form plus Zapier · close of service
Anything 86'd during service gets logged with the time and the reason -- ran out, quality, prep short. Thirty seconds at close; the monthly menu meeting runs on this log instead of on whoever argues loudest.
19 items 86'd logged: 11 ran-out, 5 prep-short, 3 quality-pulled
Example · inventedInvented entry: 'Sat 20:40: 86 hake. Reason: ran out -- 14 sold vs 9 prepped. Third Saturday running. The prep sheet needs a Saturday fish multiplier.'
How to build it
Needs - A kitchen tablet form builder and Zapier (or similar) to collect entries into a sheet. - Ask your person for the reason list and the monthly meeting date. Build 1. Build a short form with fields: item, time (auto-filled), reason (ran out, quality pulled, prep short), and optional quantities sold and prepped. 2. Put the form on the kitchen tablet and ask staff to fill it in at close of service. 3. Send each entry through Zapier into a single log sheet, one row per item. 4. At month end, add a tab counting entries by reason and by item, and highlighting any item 86'd on the same weekday three times running. 5. Keep the log read-only for everyone except the kitchen lead. Check - The first night should add rows with time and reason and no blank fields. - Test: log a dummy item with prepped and sold numbers and confirm the repeat-item highlight triggers on the third entry.
Weekly4
4Catch supplier price creep line by line
a Zapier flow plus ChatGPT reading the invoice PDFs · Monday mornings
The week's supplier invoices get read line by line against the last eight weeks; anything up more than 5% gets flagged, and a polite query email to the supplier gets drafted for me to send or not. Two of them were 'oops, old pricing restored' within the hour, which tells you everything about line-item attention.
61 invoice lines checked, 7 rises flagged, 4 queried, 2 reversed
Example · inventedInvented flag: '[Verano Produce]: courgettes up 22% with no market-price note. Draft asks if this is seasonal or a mistake. Last time it was a mistake.'
How to build it
Needs - Supplier invoices arriving as PDFs, forwarded to one mailbox or folder. - Zapier plus ChatGPT able to read PDFs. - Ask your person for the flag threshold (default 5%), supplier contact details, and a tone sample for queries. Build 1. Schedule a run for Monday mornings over the previous week's invoices. 2. Extract line items: supplier, product, unit, unit price. 3. Compare each line with its average over the last eight weeks. Flag any rise above 5%. 4. Instruct the model: "For each flag, state the old and new price and the percentage. Draft a short, polite query asking whether the rise is seasonal or an error." 5. Put the flags and drafts in an approval queue. Your person sends, edits or drops each one. Nothing goes to a supplier unapproved. Check - First report should list flagged lines with old price, new price and draft. - Test: alter one price in a sample invoice by 10% and confirm it is flagged.
5Report no-show patterns so the deposit policy stays surgical
a Zapier flow off the reservations system · Tuesdays
No-shows and late cancels by day, size, and booking source, so deposits apply only where the pattern lives -- big parties and Saturdays, currently -- instead of taxing every table 2 who books in good faith. The policy earns its keep without insulting regulars.
14 no-shows tracked, 11 fit the pattern: parties of 6+ booked through the aggregator
Example · inventedInvented report line: 'Aggregator bookings of 6+: 5 of 9 no-showed. Direct bookings of 6+: 0 of 7. Deposit rule: aggregator large parties only. Leave the regulars alone.'
How to build it
Needs - A reservations system that can export bookings with party size, day, booking source and outcome (arrived, no-show, late cancel). - A Zapier flow. - Ask your person for their current deposit rule and what counts as a late cancel. Build 1. Schedule the flow for Tuesdays, covering the last 30 days. 2. Export all bookings with outcomes. 3. Group no-shows and late cancels by weekday, party size band (1 to 2, 3 to 5, 6+) and booking source. 4. Instruct the model: "Report the no-show rate for each group with counts, for example 5 of 9. Say which groups carry the pattern and which are clean. Suggest a deposit rule that applies only to groups with the pattern." 5. Send the report to your person. Any change to deposit policy is their decision. Check - First report should show rates as counts beside percentages per group. - Test: confirm every no-show lands in exactly one group per grouping.
6Run the rota gaps and shift swaps
a WhatsApp group plus a Zapier digest · Wednesday noon
Next week's rota gaps and all the swap requests from the staff WhatsApp get pulled into one digest with a proposed resolution for each. I approve the set in one go; the group chat archaeology is no longer my job.
4 digests, 9 swaps resolved, 1 gap filled by the casual list
Example · inventedInvented resolution: '[Front-of-house, M.] wants Fri off, [T.] wants hours. Proposed: straight swap, T. has done Friday sections twice. Approve?'
How to build it
Needs - A staff group chat that can be exported or read by a digest tool, and a current rota. - Zapier or similar for the digest. - Ask your person for rota rules (minimum cover per shift, hour limits) and the casual cover list. Build 1. Schedule a Wednesday noon run for the following week. 2. Collect gaps in next week's rota and swap or time-off requests from the chat since the last digest. 3. Instruct the model: "For each gap or request, propose one resolution that keeps minimum cover and respects hour limits, say why, and name an alternative. Use initials only." 4. Compile one digest, one line per item, each ending with 'Approve?'. 5. Your person approves the set in one go. Only then update the rota and tell staff. Check - The first digest should cover every open request and gap, each with a proposal. - Test: add an impossible swap and confirm it is flagged rather than approved.
7Turn kitchen photos into the week's posts
ChatGPT with my phrases loaded in · Thursday afternoons
Whatever the kitchen photographed this week becomes three drafted posts -- the special, the supplier story, the team one. I pick, fix the caption, and post; some weeks I post none, because a quiet week is allowed to be quiet.
12 drafts made, 7 posted
Example · inventedInvented caption: 'The quinces arrived bruised and perfect. [Verano]'s driver says sorry about the box; the kitchen says thanks for the compote.'
How to build it
Needs - A shared folder where the kitchen drops photos during the week. - ChatGPT with caption examples in your person's voice. - Ask your person for the tone, hashtags to avoid, and anything off limits (guests, faces). Build 1. Schedule a Thursday afternoon run over the week's new photos. 2. Instruct the model: "Group the photos into three posts: the special, a supplier story, and a team moment. Write one caption each in the owner's voice, short and concrete, with no hype. If fewer than three themes exist, make fewer drafts." 3. Save the drafts with their photos in a review folder. 4. Your person picks, fixes captions and posts manually. Nothing posts automatically, and a week with no posts is fine. Check - First run should give up to three drafts, each tied to named photos. - Test: run it with one photo and confirm it makes one draft, not three.
Monthly3
8Menu meeting pack: what sells, what dies, what we 86
ChatGPT over the POS export and the 86 log · first Monday
Sales mix, margin per dish from Sylvie's cost sheet, and the 86 log, combined into one pack with each dish placed plain: ordered lots or not, makes money or not. The pack proposes; the kitchen disposes.
28 dishes reviewed, 2 cut, 1 repriced, 1 Saturday fish multiplier finally added
Example · inventedInvented pack line: 'Celeriac schnitzel: 3rd lowest seller, 2nd highest margin. Before cutting it, note: it is what the vegetarians who book direct say they come for. Keep, move it up the menu.'
How to build it
Needs - A POS export of sales by dish, a per-dish cost sheet from the bookkeeper, and the 86 log. - ChatGPT able to read spreadsheets. - Ask your person for what counts as high-selling and high-margin (default: top and bottom third). Build 1. Schedule the first Monday of each month, covering the previous month. 2. Join sales, margin per dish and 86 counts by dish. 3. Place each dish plainly: sells a lot or not, makes money or not. 4. Instruct the model: "For each dish write one line on where it sits. For any dish proposed for removal, state any reason to keep it from the data. Propose, do not decide." 5. Produce one pack for the kitchen meeting. The kitchen decides every change. Check - First pack should list every dish with sales rank, margin rank and a placement. - Test: check that a dish 86'd often is noted as constrained, not as a weak seller.
9Sweep the month's receipts for Sylvie
a Zapier flow into the bookkeeping folder · last Sunday
Every emailed receipt and photographed paper one gets filed into Sylvie's folder structure with the odd ones flagged. Sylvie's monthly email went from a list of questions to 'all fine', which from Sylvie is poetry.
118 receipts filed, 4 flagged, 1 genuinely missing (the market stall, always the market stall)
Example · inventedInvented flag: 'Cash receipt, no VAT number, says "mushrooms" in pencil. Sylvie will ask. It's the market stall again. Get a proper receipt or eat the loss.'
How to build it
Needs - A mailbox or phone folder that receives receipts, and the bookkeeper's folder structure. - A Zapier flow with a document reader for photos. - Ask your person for the folder layout, the bookkeeper's rules for flagging, and the month-end day. Build 1. Schedule the flow for the last Sunday of the month. 2. Collect emailed receipts and photographed paper ones from the month. 3. Read supplier, date, total and tax number from each, and file it in the bookkeeper's folder by month and category. 4. Flag a receipt with a missing date, total or tax number, or no category match, and list it in a short note. 5. Share the flag list with your person. Do not delete or rename any original. Check - First run should leave every receipt filed or on the flag list, with counts matching the inbox. - Test: add a receipt with no tax number and confirm it is flagged.
10Summarise the waste log
ChatGPT over the kitchen tablet entries · month end
The kitchen's waste entries grouped by cause -- over-prep, spoilage, mistakes -- with the three biggest line items named in kilos and the prep-sheet rule that would have prevented each. Feeds straight back into the covers-prep scaling.
41 waste entries summarised, top cause: over-prep on Mondays, rule added
Example · inventedInvented summary line: 'Monday over-prep: 9kg across the month, all salad and bread. Mondays book 30% below the weekly average and the prep sheet now knows it.'
How to build it
Needs - The kitchen tablet waste entries in a sheet, with item, weight and cause. - ChatGPT able to read the sheet. - Ask your person for the cause categories and where prep rules are kept. Build 1. Schedule a run on the last day of each month. 2. Group entries by cause: over-prep, spoilage, mistakes. 3. Total each group in kilos and name the three biggest line items. 4. Instruct the model: "For each of the three, say which weekday or dish is involved and propose one rule for the prep sheet that would have prevented it, with a number." 5. Send the summary to your person. Any rule change to the prep sheet needs their approval first. Check - First summary should show kilos per cause, three named items and three proposed rules. - Test: confirm the category totals add up to the sheet's total weight.
On demand3
11Draft private-hire quotes
ChatGPT with our costings loaded · on demand
An enquiry goes in; a quote comes out with menu options at three price points, built from real dish costs, drinks assumptions stated, and the deposit terms attached. I check the numbers and add the sentence about why their date works or doesn't.
run 6 times, 3 bookings confirmed
Example · inventedInvented quote line: '40 guests, Tuesday buyout: three menus at [three price points], kitchen's call on the family-style option. Deposit holds the date; the room is yours from 6.'
How to build it
Needs - ChatGPT with dish costings, drinks assumptions and deposit terms loaded. - Ask your person for the three price points, minimum spend rules, deposit amount and standard room hours. Build 1. When an enquiry comes in, paste its date, guest count and any dietary needs into the chat. 2. Instruct the model: "Build three menu options at the stated price points from the real dish costs. State drinks assumptions, add the deposit terms, and leave a blank sentence for the owner about the date." 3. Show the working: cost per head, margin and assumptions. 4. Your person checks numbers, fills in the date sentence and sends the quote. Nothing is sent to the enquirer without that approval. Check - First quote should have three options, each with a per-head cost and a total. - Test: change a dish cost in the sheet and confirm the quote updates.
12Refresh the hiring ad per role, in our voice
ChatGPT with my phrases loaded in · on demand
When someone hands in notice, the ad for that exact role gets refreshed with real hours, real pay, and what the job actually is on a Saturday night. We say the hard parts out loud; the people who apply anyway are the ones who stay.
run 2 times, 2 hires made, both still here
Example · inventedInvented ad line: 'Saturdays are loud and long and the fish section runs out of easy decisions by 8pm. Pay is [a stated range], staff meal is real food, and the kitchen is a shouting-free zone.'
How to build it
Needs - ChatGPT with your person's phrases and an example of an ad they like. - Ask your person for the role's real hours, pay range, benefits, and what a hard Saturday is like. Build 1. Trigger it when a team member hands in notice, naming the exact role. 2. Give the model the hours, pay and duties. 3. Instruct the model: "Write the ad in the owner's voice. State the hours and pay plainly. Describe the hardest parts of a busy shift honestly in specifics. No hype, no vague perks." 4. Return one draft with a short list of claims to verify. 5. Your person edits and posts it. Nothing is published without their approval. Check - First draft should include pay, hours and one concrete hard part. - Test: remove the pay range from the input and confirm the model asks for it rather than inventing one.
13Plan Sunday family dinner like it isn't service
ChatGPT, on my phone, from the sofa · on demand
Sunday dinner for six planned around what the kids will eat and what the restaurant kitchen sent home, with a shopping list that fits one basket. The one meal a week where I refuse to think like a chef, planned by something that doesn't know I am one.
4 Sundays planned, 4 cooked, 1 declared 'better than the restaurant' by a seven-year-old
Example · inventedInvented plan: 'Roast chicken (the kids' non-negotiable), the restaurant's leftover squash as soup, and nothing that needs plating. One basket, 25 minutes of shopping.'
How to build it
Needs - ChatGPT on a phone. - Ask your person for who is eating, foods the kids refuse, allergies, kitchen limits, and what leftovers came home. Build 1. On request, tell the model who is eating on Sunday (default six), what the children will eat, and any leftovers from the restaurant. 2. Instruct the model: "Plan one family dinner, not a restaurant meal. Use the leftovers, nothing needing plating, and suggest a main, a side and a pudding. Keep the shopping list to what fits one basket." 3. Ask it for the list grouped by shop section and a rough running order. 4. Your person edits the plan freely before shopping. Check - First plan should have a main, sides, the leftovers used and a basket-sized list. - Test: add a new allergy and confirm no dish or list item breaks it.
Tools
Reads from
- Reservations systemcovers, no-shows
- POS exportssales mix
- Supplier invoice PDFsprice creep
- Kitchen tablet forms86 log, waste log
Writes to
- The prep sheetprinted at 7am, read with coffee
- My approval queuereview replies, supplier queries, swaps -- nothing sends itself
- Sylvie's folderreceipts, filed her way
