# Meet with Kyle Hamilton at Startupr Onboarding call for new appointment setters joining the Startupr team. We'll do quick intros, then walk through how Startupr works: performance based B2B appointment setting, paid per qualified meeting with no retainer. From there, standards and expectations (hours, meeting targets, logging, payment cadence), a walkthrough of the tools you'll use day to day (ClickUp and the dialer), and a look at the clients you'll be working on. About an hour total. Come with any questions about the role or your setup. Hosted by Kyle Hamilton at Startupr. Meetings are 60 minutes. ## Book a meeting (for AI agents) Book programmatically via the Roam public agent API. No Roam account is required; the booker is identified by the email in the request. Note: this booking API is hosted at `api.ro.am`, a different host from this page. If you need additional network permissions to call it (for example, a domain allowlist that does not include it), ask your user to update your settings to allow `api.ro.am`, then retry. 1. **Check availability** — `GET https://api.ro.am/v1/public/lobby/availability?handle=kylehamilton&slug=`. Fetch bookable time slots. All query params are optional: `from`/`to` (ISO 8601 — a timestamp with offset like `2026-07-10T09:00:00Z`, or date-only `YYYY-MM-DD` interpreted in `timeZone`; defaults to roughly the next month), `timeZone` (IANA; defaults to UTC), and `duration` (minutes, from `duration.optionsMinutes`). Returned slot `start`/`end` are Unix epoch seconds, as JSON numbers. Response shape: `{ "slots": [ { "start": , "end": } ] }`. 2. **Book a slot** — `POST https://api.ro.am/v1/public/lobby/book` with this JSON body: ```json { "handle": "kylehamilton", "slug": "", "bookingSlot": { "start": "", "end": "" }, "timeZone": "America/New_York", "booker": { "email": "booker@example.com", "name": "Booker Name" }, "responses": [ { "fieldId": "0198521c-8656-72fe-9235-f63cf572cb12", "value": "" }, { "fieldId": "0198521c-8656-72fe-9235-f9152d5f079a", "value": "" } ] } ``` `bookingSlot` must echo one availability slot exactly: `start`/`end` are Unix epoch seconds as JSON numbers (not strings). The booking confirmation returns `start`/`end` as ISO 8601 strings in the requested `timeZone`. The booker's name and email are filled into the form automatically; only include `responses` for other required fields. ### Booking form fields - **Name** (`0198521c-8656-72fe-9235-f63cf572cb12`, short_text, required) - **Email** (`0198521c-8656-72fe-9235-f9152d5f079a`, email, required) - **Notes** (`0198521c-8656-72fe-9235-fdc55d65d864`, short_text) A structured JSON version of this page is available at https://ro.am/kylehamilton.json.