Milo's Runbook
Freelance brand designer. I automate the admin so the taste part gets the whole day.
Then tell your agent which numbers to build.
Daily2
1Sweep client emails for requests that aren't in the scope
a ChatGPT project plus Notion · 6pm
The day's client emails get checked against each project's scope doc; anything that's actually new work gets logged, and after the second ask on the same thread a change-order note gets drafted in my friendliest handwriting for me to send. The log means the conversation is 'here's what we've added' instead of 'I feel taken advantage of', which is a conversation I'm bad at.
9 out-of-scope asks logged, 3 change-order notes sent, 2 signed, 1 ask withdrawn once it had a price
Example · inventedInvented note: 'Loving the energy on the packaging ideas -- that's a third deliverable beyond the identity scope we signed. Here's what adding it looks like: [a stated price], two weeks. Say the word.'
How to build it
Needs - A ChatGPT project and a Notion workspace with one scope doc per active client project. - Access to the day's client emails (a forwarding rule or inbox export into the project). - Ask your person for their friendliest-voice sample and a price list for typical extra deliverables. Build 1. Schedule a run at 6pm daily. Collect that day's emails from clients on live projects. 2. For each email, compare every request with the project's scope doc. Instruction: "Decide whether this request is new work beyond the signed scope. Quote the scope line it does or does not match. Do not guess; mark unclear items as 'check'." 3. Log each out-of-scope ask in a Notion table: project, date, thread, the ask, the scope line compared against, ask count for that thread. 4. When the same thread reaches a second out-of-scope ask, draft a warm change-order note in your person's voice: name the extra deliverable, a price from their list, and a timeline. 5. Save the draft to their drafts folder only. Never send; your person reviews and sends. Check - First run should give a dated log with a quoted scope line per entry. - Test with an email asking for something clearly inside scope; it must not be logged.
2File everything I save into tagged moodboards
a Zapier flow into Notion · overnight
Everything I save during the day -- links, screenshots, photos of signage from my phone -- lands in the reference library auto-tagged by project, era, and what it's doing (type, colour, materials). Six months of magpie behaviour became searchable, which changed what pitches look like.
143 references filed, 31 pulled into live project boards
Example · inventedInvented filing: 'Photo from your camera roll: hand-painted pharmacy sign, tagged [lettering, 1960s?, fading/texture] and suggested for the [Harrow & Finch] board. Accepted.'
How to build it
Needs - A Zapier account, a Notion database for references, and a phone sync that sends saved links, screenshots and photos to one inbox or folder. - Ask your person for their project names and a starter tag list (era, type, colour, material). Build 1. Trigger the Zapier flow overnight, collecting everything saved in the last 24 hours. 2. For each item, send the link text or image to a model with this instruction: "Tag this by project (only from the supplied list or 'none'), era (mark guesses with a question mark), and what it is doing: type, colour, materials. Give a one-line description." 3. Create one Notion row per item with the file or link, the tags and the description. 4. If a tagged project matches a live project, add a suggested board link and mark it 'suggested', not placed. 5. Your person accepts or rejects suggestions in Notion; nothing is moved onto a board without that. Check - Next morning, the new items should appear tagged in Notion. - Test with a photo of lettering; era and type tags should be plausible and flagged as guesses where unsure.
Weekly3
3Merge multi-stakeholder feedback into one truthful list
a ChatGPT project · after each review round lands
When a client's four stakeholders each email their thoughts, the pile gets merged into one list with agreements, conflicts flagged as conflicts ('the CEO wants it warmer, the CMO wants it cleaner -- these are different directions'), and questions I should ask before touching a single artboard. I used to average conflicting feedback into beige; now I make the client pick first.
6 rounds merged, 11 conflicts surfaced, 11 resolved by the client before revisions started
Example · inventedInvented conflict flag: 'Founder: "bolder, louder". Head of Sales: "our buyers are hospitals". These cancel out. Suggested question: who does this rebrand have to convince in the next 12 months?'
How to build it
Needs - A ChatGPT project and a place to paste or forward each stakeholder's feedback email. - Ask your person for each client's stakeholder names and roles. Build 1. Run after each review round, once all feedback has arrived. Paste every stakeholder's email into the project, labelled by role. 2. Instruction: "Merge this feedback into one list. Group it as agreements, conflicts and open questions. Where two people want incompatible things, label it a conflict and say why the directions differ; never blend them into a compromise. Quote each person's own words." 3. For every conflict, write one question for the client to answer before any design changes, such as who the work has to convince. 4. Output a single document with the three groups. Your person reviews it and decides what goes back to the client; nothing is sent automatically. Check - The result should name the person behind each point. - Test with two opposed comments; they must appear as a conflict with a question, not a midpoint.
4Nudge the late invoices so I don't have to feel it
a Zapier flow off my invoicing app · Monday mornings
Anything past due gets a nudge drafted -- friendly at 7 days, firm-but-warm at 21, 'work pauses' at 35 -- and queued for my approval, because sending money emails used to take me three days of dread per email. The schedule does the being-brave.
6 nudges drafted, 5 sent, 4 invoices paid, 1 payment plan agreed
Example · inventedInvented 21-day nudge: 'Flagging invoice 118 is now three weeks over -- I know Q4 is chaos. If it's stuck in an approvals queue, tell me whose, and I'll make the PDF whatever shape that queue wants.'
How to build it
Needs - An invoicing app that can list unpaid invoices with due dates, and a Zapier account. - Ask your person for their tone sample for payment emails and who the contact is on each client. Build 1. Schedule the flow for Monday morning. Pull every invoice past its due date. 2. Choose the stage by days overdue: 7 days or more, friendly; 21 days or more, firm but warm; 35 days or more, a note saying work pauses until payment. 3. Instruction: "Draft a short payment email at this stage in the sender's voice. Mention the invoice number and amount, offer to resend it in whatever format their finance team needs, and stay kind." 4. Save each draft to the drafts folder and list them in a Monday summary. 5. Your person approves and sends each one. Never send automatically, and do not draft a second stage until the first has been sent. Check - First run should give one draft per overdue invoice at the correct stage. - Test with an invoice 20 days overdue; it must stay at the friendly stage.
5Friday pipeline reality check
Notion plus a ChatGPT project · Friday 4pm
Live projects with weeks remaining, conversations with likelihood guesses, and the gap between the two stated in weeks of booked work. When the number says six weeks of runway, I do outreach week; when it says twenty, I stop refreshing my inbox like a slot machine.
4 notes, current read: 11 weeks booked, 2 proposals out, 1 maybe-January
Example · inventedInvented note line: '[Harrow & Finch] wraps week 46. Nothing confirmed behind it. The [fictional cider brand] conversation has been "circling back" for 3 weeks -- one more touch, then park it.'
How to build it
Needs - A Notion workspace with a projects table (end week, status) and a pipeline table (prospect, last contact, likelihood guess). - A ChatGPT project, or any model that can read those tables. - Ask your person to keep both tables current. Build 1. Schedule a run every Friday at 4pm. Read both tables. 2. Count weeks of booked work remaining across live projects, using each end week. 3. List conversations with likelihood guesses, and note any that have gone quiet more than 3 weeks. 4. Instruction: "State the gap between booked work and nothing confirmed, in weeks. Name the last booked project and when it ends. Say plainly what is confirmed and what is only a conversation. No encouragement." 5. Write the note to a Notion page with the weeks-booked figure first and propose one next action, such as an outreach week or a final touch before parking a lead. Check - First note should open with a weeks-booked figure that matches the tables. - Test by marking a project closed; the number should fall.
Monthly3
6Draft the case study while the project is still warm
a ChatGPT project over the project's Notion page · within 2 weeks of each project closing
A closed project's brief, rounds, decisions, and final files become a drafted case study -- the problem, the turn, the result -- plus a short client-quote request email. Portfolio pieces used to happen never; now they happen while I still remember why round 2 died.
2 case studies drafted, 1 published, 2 client quotes requested, 1 received
Example · inventedInvented excerpt: 'Round 2 died in a parking lot: the founder saw the wordmark on a rival's van and called it "too close to the enemy". Round 3 started from the company's actual origin story instead of the category's visual language.'
How to build it
Needs - A Notion page per project holding the brief, review rounds, decisions and final files, and a ChatGPT project over it. - Ask your person for a past case study as a style example and how they want the quote request worded. Build 1. Trigger when a project is marked closed, with a deadline of 2 weeks after closing. 2. Read the project page in full. 3. Instruction: "Write a case study in three parts: the problem, the turn (the decision that changed direction and why), and the result. Use only facts on the page. Mark any missing result as 'to confirm'." 4. Draft a short email asking the client for a one or two line quote, referencing one specific moment from the project. 5. Save both to the drafts folder. Your person edits the case study and sends the quote request; nothing is published or sent automatically. Check - The draft should cite details from the page, such as a rejected round. - Test with a project missing a result; the draft should flag it rather than invent one.
7Tell me when the portfolio has gone stale
a Notion automation · first Monday
Checks what's actually on the site against what I've shipped and what enquiries mention, then nags me with specifics: which piece is oldest, which recent work would replace it, which site pages enquiries actually came from. The nag has a 50% obedience rate, which for self-promotion admin is a personal record.
1 nag delivered, 1 project swapped in, oldest piece on site now 14 months (was 31)
Example · inventedInvented nag: 'Three of your last five enquiries mentioned the bakery identity. It is the 7th item on the work page. The hero slot is a 2023 project for a company that no longer exists.'
How to build it
Needs - A Notion database of shipped projects with dates, and a list of the site's pages and featured pieces. - A record of recent enquiries, including which page they came from or which work they mentioned. Build 1. Set a Notion automation for the first Monday of each month. 2. Compare the pieces on the site against the shipped list and the last 5 enquiries. 3. Work out the oldest featured piece and its age in months, any recent work not shown, and which pages enquiries mention. 4. Instruction: "Write a short reminder with specifics: name the oldest piece, name the recent project that could replace it, and say which pages produced enquiries. Do not give general advice." 5. Post it as a Notion task assigned to your person. Do not change the site; your person makes the swap. Check - The reminder should name real pieces and an age in months. - Test by adding a newer project; it should be proposed as a replacement.
8Audit the tool subscriptions
a Zapier flow off my bank feed · month end
Every recurring charge listed with when I last actually opened the thing, per its own usage emails and my browser history. The annual stock-photo subscription did not survive contact with this list.
14 subscriptions listed, 2 cancelled, 1 downgraded
Example · inventedInvented line: '[A fictional font platform]: [a stated monthly price], last font activated 19 weeks ago. You own 90% of what you use. Downgrade tier exists.'
How to build it
Needs - A bank feed that Zapier can read, with recurring charges identifiable. - Access to usage or activity emails from each tool, and optionally browser history exports. - Ask your person to confirm which charges are business tools. Build 1. Schedule the flow for month end. 2. List every recurring charge from the past 3 months: name, amount, billing period. 3. For each, find the latest sign of use from its usage emails or browser history, and record it as a date. 4. Instruction: "For each subscription, state the amount, the date of last use and whether a cheaper tier exists. Flag anything unused for 8 weeks or more. Do not recommend cancelling; list the facts." 5. Write the list to a Notion page. Your person decides what to cancel and does it themselves; nothing is cancelled automatically. Check - The first list should cover every recurring charge with a last-use date. - Test with a known unused tool; it should be flagged.
On demand4
9First-draft proposals from the discovery call
a ChatGPT project with my past proposals loaded · on demand
The discovery call notes become a proposal draft in my structure -- their problem in their words, the approach, three scope tiers with prices from my actual rate history rather than my fear. I rewrite the thinking; the skeleton and the arithmetic arrive done.
run 4 times, 3 proposals sent, 2 won
Example · inventedInvented tier note: 'Middle tier includes the messaging workshop because on the call she said "we don't know what we sound like" twice. Price per your last three identity projects, not per the panic discount of 2024.'
How to build it
Needs - A ChatGPT project with past proposals loaded, plus a rate history (past prices by project type). - Ask your person for the proposal structure they like and notes from the discovery call. Build 1. Run on demand when call notes are pasted in. 2. Instruction: "Write a proposal in the structure of the loaded examples. Open with the client's problem in their own words, quoting the notes. Then the approach. Then three scope tiers. Price each tier from the rate history for similar projects; show the arithmetic and say which past projects it is based on." 3. Include in the middle tier anything the client said they needed, and note the quote that justified it. 4. Output a draft document with prices marked 'to confirm'. 5. Your person rewrites the thinking and sends it; nothing goes to the client automatically. Check - The draft should contain quotes from the notes and prices traceable to past projects. - Test with a project type not in the rate history; it should say so rather than invent a price.
10Answer font and image licence questions from the ledger
a Notion database plus a ChatGPT project · on demand
Every font and image licence I've ever bought lives in one ledger; when a client asks 'can we use this on merch', the answer comes from what the licence says, with the clause quoted. The old method was squinting at a PDF from 2022 and guessing conservative.
run 5 times, 5 answered with clauses, 1 upgrade purchase triggered (correctly)
Example · inventedInvented answer: 'Your desktop licence for [a fictional typeface] covers print and web, not packaging over 10k units. The foundry sells that extension; here's the exact tier the gin labels need.'
How to build it
Needs - A Notion database with one row per font or image licence: item, source, date, licence type, usage terms, the full licence text or a file. - A ChatGPT project that can read it. - Ask your person to add each new purchase. Build 1. Run on demand when a client asks about a use, such as merchandise or packaging. 2. Instruction: "Answer only from the licence text in the ledger. Quote the relevant clause word for word, then say whether the use is covered, not covered or unclear. If it is not covered, state which extension or tier the vendor offers." 3. If the item is not in the ledger, say so and do not guess. 4. Return the answer with the quoted clause for your person to forward. 5. Any purchase must be approved and made by your person. Check - An answer should always include a quoted clause. - Test with an item missing from the ledger; it should say it has no record.
11Build the print spec checklist per job
a ChatGPT project · on demand
Each print job generates its handoff checklist from the printer's own spec sheet -- bleeds, stocks, special finishes, the file-naming scheme this particular printer silently expects. Born from the foil-blocking incident of last spring, about which the less said the better.
run 3 times, 3 jobs printed, 0 incidents
Example · inventedInvented checklist item: '[The printer] wants foil as a separate spot-colour file, not a layer -- this is the thing from last time. It is first on the list on purpose.'
How to build it
Needs - A ChatGPT project and the printer's spec sheet for each job (as text or PDF). - Ask your person for a list of past print problems and the job details, such as stock, finishes and quantity. Build 1. Run on demand when a print job starts, with the spec sheet and job details supplied. 2. Instruction: "Create a handoff checklist from this printer's spec sheet only. Cover bleeds, stocks, special finishes, colour setup, file format and the file-naming scheme. Put the items that caused past problems first. Where the sheet is silent, list it as a question for the printer." 3. Add the job's finishes, such as foil as a separate spot-colour file if the sheet requires it. 4. Save the checklist to the job's Notion page for your person to tick off before files go to the printer. Check - The checklist should cite the spec sheet's own terms. - Test with a sheet that has no bleed value; it should raise a question, not invent one.
12Guard the pottery class and the run club
a calendar automation · on demand
Wednesday pottery and Saturday run club are booked as busy before clients can see the gaps, and anything trying to land on them gets an auto-suggested alternative slot. The kiln does not do rescheduling and, these days, neither do I.
4 pottery classes attended, 3 runs, 2 meeting requests auto-deflected to Thursday
Example · inventedInvented deflection: 'Client asked for Weds 6pm. Calendar offered Thu 10am or Thu 3pm without me seeing the request until morning. Glaze firing proceeded as scheduled.'
How to build it
Needs - A calendar your person controls, with the ability to create recurring busy blocks and auto-reply to meeting requests. - Ask your person for the protected slots, such as a weekday evening class and a weekend morning run, and acceptable alternative times. Build 1. Create recurring busy events for each protected slot, labelled as busy with no details visible to others. 2. Set a rule: when an invitation or booking request overlaps a protected slot, reply with two alternative times from open working hours, for example a weekday morning and afternoon. 3. Log each deflection in a note with the requester and the slots offered. 4. Instruction: "Never accept anything that overlaps a protected slot. Offer the nearest two free working-hour slots." 5. Your person reviews the log weekly. Replies to clients should be drafted for approval unless your person has chosen otherwise. Check - The protected slots should show as busy on a shared view. - Test by sending a request that overlaps one; it should produce two alternative times.
Tools
Reads from
- Client emailscope sweep, feedback rounds
- Invoicing appoverdues
- My camera roll and saved linksthe reference library
Writes to
- Notionscope logs, moodboards, licence ledger
- My drafts folderchange orders, nudges, quote requests -- I press send
- The portfolio siteeventually, when nagged
