Guided build · a weekend
Shift / rota scheduler
Builds and shares a fair work schedule without the spreadsheet pain.
No commands. No code. You're about to build this by SAYING what you want — in your own language. The only skill is describing the result well. Here's the whole thing, start to finish.
Builds and shares a fair work schedule without the spreadsheet pain.
First, how to actually talk to the agent
- 1Describe the RESULT, not the tech: what's on screen, what each button does, what gets saved. The agent handles the 'how'.
- 2Be concrete about screens and fields — 'a form with amount, category and date' beats 'let me add expenses'.
- 3Ask for the smallest working version first. You grow it by talking afterwards — that's Step 2, not the first message.
- 4Decide what's YOURS, not the agent's: name the categories, colours, rules. Don't make it guess what only you know.
Step 1 — Build it live
Prompting for this kind of tool
- 1Nail THREE things: a staff list you keep, a week grid with people down the side and the seven days across the top, and that clicking a cell assigns a shift (morning, evening, or custom hours).
- 2Spell out the rules you want enforced YOURSELF: a running tally of hours per person, a red warning if someone's double-booked or over their max days, and unassigned slots that stand out — Claude won't guess your limits.
- 3Decide the two exports up front: 'export week' copies the whole rota as tidy text, and per-person it copies just that one person's shifts. And say it saves on your device so the rota survives a refresh.
- 4Always end with the magic line: 'build the whole thing and tell me exactly how to open it; don't stop to ask questions.'
claude --dangerously-skip-permissions
Open the terminal and run this (if Claude is already running, type /exit first). Then ask it to make a folder for this project and work inside it.
✕ what most people type
you ▸ manage my staff
✓ what actually works — copy it, or better, say it in YOUR words
you ▸ Build me a shift scheduler. I keep a staff list, then a week
grid with people down the side and the seven days across the
top; I click a cell to assign a shift (morning, evening, custom
hours). A running tally shows hours per person for the week, it
warns in red if someone's double-booked or over their max days,
and unassigned slots stand out. An 'export week' button copies
the whole rota as tidy text, and per-person it can copy just
that one person's shifts. Saves on my device. Clean, readable
grid. Build the whole thing and tell me exactly how to open it;
don't stop to ask questions.Say it in YOUR language — Russian, Spanish, anything. Claude understands.
Build it now — tick as you go
0/6Step 2 — It's built. Now make it yours
Don't panic at the techy link. Claude tells you one of two things. Either a file like index.html — find it in your project folder and double-click it; it opens in your browser. Or a web address starting with http://localhost — copy it into your browser's address bar and press Enter. 'localhost' just means 'this is running on your own computer right now'. That's your tool. It's real.
Now tweak it until YOU like it — just talk
This is the part that makes it YOURS. Don't accept the first version — change it by saying what you want, right there in the same chat. Claude rebuilds and you refresh. Keep going until it fits how you actually work. For this tool, try things like:
you ▸ stop anyone being booked more than 5 days a week you ▸ let staff mark days they can't work, and respect it you ▸ copy each person's shifts as their own little message
I don't type long messages. I open voice-to-text (the mic in ChatGPT, or your phone keyboard), and just TALK through everything I think about what it built — what's wrong, what I want next — then select-all, copy, and paste the whole brain-dump into Claude Code. Messy spoken thoughts work fine; the agent sorts them out. It's several times faster than writing.
Step 2.5 — Test it like a real thing (it won't be perfect first try)
The truth no one tells beginners: the first build is a DRAFT. The agent makes something, you run it, you find what's off, you tell it — and THAT loop is the actual work. Don't read the code. Use the tool like a stranger would and watch where it lets you down. For this tool, check exactly this:
- 1Open it (Claude gives a localhost link or an index file — see Step 2), add a few staff, and click cells to give two of them shifts across the week.
- 2Watch the hours tally per person — does it add up correctly as you assign and change shifts?
- 3Deliberately book one person twice in a day (or past their max days) — does it warn in red like it should?
- 4Hit 'export week', then export one person's shifts: is the whole-rota text right, and does the per-person copy contain only that person?
- 5Refresh the page (F5 / Cmd-R). Is your whole rota still there? If it vanishes, 'saves on my device' isn't wired up — fix that next.
Found something wrong? Say it like this
You fix nothing yourself — you DESCRIBE what's wrong in plain words and the agent fixes it. Be specific: what you saw vs. what you expected. Real examples for this tool:
you ▸ 'the hours tally is wrong — recalculate each person's total from their assigned shifts every time I change one' you ▸ 'it's not warning me when someone's double-booked — turn that cell red when a person has two shifts the same day' you ▸ 'the per-person export includes everyone — copy only the selected person's shifts'
Don't stop at v1 — grow it
A tool you built in ten minutes is a starting point, not the finish line. The people who get hooked keep saying 'now also…'. Each line below is one sentence you paste into the same chat to level this tool up:
you ▸ 'stop anyone being booked more than 5 days a week and block the cell that would break it' — turns a warning into a real guardrail. you ▸ 'let staff mark days they can't work, and grey those cells out so I don't assign them' — fewer clashes before they happen. you ▸ 'send each person their own shifts straight to Telegram' — no more copy-pasting messages one by one (this connects to the Telegram Bot API — see APIs). you ▸ 'push the whole rota into a shared Google Calendar everyone can see' — staff check their phone instead of asking you.
Step 3 — Connect it to the world (optional)
Free data & APIs for this one
An API is just how your tool pulls in outside data or sends things out — many are free. You rarely need to research them yourself; the move that works for ANY idea is to ask the agent to find them:
- 1To start you need NO external API — the grid, the hours tally and the warnings all run locally on your device.
- 2Want to send each person their shifts automatically? The Telegram Bot API is free — ask Claude: 'add Telegram so each person gets their own shifts, and walk me through making the bot and where the token goes.'
- 3Want the rota in a shared calendar? Connect Google Calendar (free) — or just ask Claude: 'find free or open APIs that fit a shift-scheduling tool and tell me which actually need a key.'
About paying for the AI parts
- 1You don't pay for Claude twice. With a Claude subscription you create an API key right in the terminal and use it inside your projects — within your plan.
- 2From June 15 the rule splits: automation through that key gets its own monthly credit — about $20 on Pro, $100 or $200 on Max. Stay under it and it works as before.
- 3Run out and you pay per use (pay-as-you-go); unused credit doesn't roll over. So check your account and see whether the included credit already covers what you're building.
A tool gets superpowers when it can talk to other services — send you a message, read a sheet, pull live data. Each service hands out an 'API key' (a long password that says 'this is me'). For THIS tool, the useful ones are:
Which keys this tool can use
- 1Telegram — send each person their shifts for the week
- 2Google Calendar — push the whole rota into a shared calendar
Getting any key is the same recipe: log into the service → find Settings → 'API' or 'Developers' → 'Create key' → copy it → paste it to Claude once ('here's my key: …'). Claude stores it and you never touch it again.
Step 4 — Put it online (only if someone else needs it)
Small teams where staff need to see their own shifts — put it online so everyone checks the rota from their phone.
Buy a server and a domain — like ordering groceries
- 1Server: sign up at a host (Hetzner, DigitalOcean…), click 'Create Server', pick Ubuntu + the cheapest size + PASSWORD login. SAVE the IP address and password it gives you. (Don't be scared — it's a few dollars a month, cancel anytime.)
- 2Domain: buy a name at any registrar (Namecheap, Cloudflare…). Then add ONE 'A record': Type = A, Host = @, Value = your server's IP. That's the whole DNS part — ignore every other field.
- 3Hand it to Claude: back in your terminal, say — 'deploy my project to my server. IP: <the ip>, password: <the password>, domain: <yourname.com>. Set up HTTPS and basic security, do it all yourself.' Claude installs everything, secures it, and makes it live. You configure nothing.
- 4DNS can take minutes to a couple of hours to wake up — if Claude says the domain isn't answering yet, that's the wait, not a mistake. Come back later and say 'try again'.
Step 5 — Keep your keys (so you can come back)
Save the server's IP, the password (or SSH key), and your domain somewhere safe — a notes app, a password manager. Why it matters: any day later you can open the terminal, connect to the server, start Claude right there, and keep improving the live tool by talking — fix a bug, add a feature, change the look. Tip: tell Claude 'save the server details in a file in this project folder' so a future chat already knows them.
Step 6 — Stay safe (two easy habits)
- 1Back up anything you'd hate to lose. If the tool holds real data (your budget, health log, client list), ask Claude early: 'add an export/backup button' — one click saves your data to a file. Do it before you ever rebuild from scratch or move the folder.
- 2Don't hand Claude the keys to dangerous rooms. Keep it pointed at this project's own folder. Never connect a learning project to your bank, your crypto, or anything irreversible. Receipts and calendars — yes. Savings — no.
- 3Think before you ask. Claude does what you say in the folder you're in. 'Optimize my photos' optimizes them; it won't delete them — unless you ask for something reckless. Sane requests, clean workspace, and there's simply nothing scary left.
The mistakes that stop most people
- 1Asking for something vague ('make me an app') and getting something vague back. Name the screens, the buttons, what gets saved.
- 2Cramming in ten features at once. Ask for the tiniest working version first — then grow it with follow-up requests.
- 3Stopping at the first error. An error isn't failure — paste it to Claude or describe what you see, and it fixes it. That loop IS the work.
- 4Deciding you need to 'learn programming first'. You don't need to understand the code Claude writes. You need to describe the result.
- 5Forgetting the magic line — 'build the whole thing, don't stop to ask questions' — then wondering why it keeps pausing.
- 6Building for an imaginary audience. Build the version YOU will open tomorrow. Polish never; use immediately.
Normal. Tell Claude what's wrong in plain words ('the button does nothing', 'the page is blank') or paste the red error text. It finds and fixes it. You check. Repeat until it works.
That's it. You built a real tool.
Notice what just happened: no commands, no code — words. This is the entire skill. The people who 'can build things' are just people who describe what they want and let Claude do the typing.
More to build