Getting in
All you need is a smartphone from the last five years, a login from your campaign, and location services enabled. Native apps are available for iPhone and Android, and the same screens run in any mobile browser at /canvasser/ on your campaign's domain — add it to your home screen and it launches like an app and stays logged in.
Say yes when the app asks for location permission — without it the map can't plot a walking route and HQ can't see where the team is. After login you'll see your next canvass event: date, time, meet location, and your assigned turf. "No active assignments" just means the campaign hasn't put you on a shift yet.
The main screen
During a shift, three views:
A few things are intentionally hidden: other turfs, other canvassers' data, and voter notes from other canvassers. Staff at HQ see the aggregate; you see your own work. Your GPS position reports every 15–30 seconds while the app is open, a "tracking active" indicator shows when location is shared, and pings are deleted after 7 days.
Doors, households & buildings
Your list isn't a flat run of names — it's organized the way a street actually is. Individual voters group into households (same address, apartment, and city), and households group into doors, or buildings (same building). Most of the time a door is one household and you knock it once. A multi-unit building shows as a single row that opens to a stack of units, so a 40-unit apartment block is one line on your list, not forty.
That structure saves you taps at exactly the moments a flat list wouldn't. Marking "can't access lobby" on a building cascades an Inaccessible outcome to every unit inside it in one action — no walking a whole stack to record doors you never actually reached. And every door wears a status glyph that means the same thing everywhere in the app:
What you actually see at each door depends on the turf's canvass mode — standard door-knock, lit drop, ID, or interview — chosen by HQ when they cut the turf. A lit-drop turf keeps it quick; an interview turf leads with the longer questionnaire. You don't pick it; you just get the layout that fits the work.
A typical shift
- At the meet location, listen for the captain's brief, then tap Start shift.
- Walk to the first household on the route and tap it — you'll see each voter's name, age, party, and previous contact.
- If someone answers: read the script, tap answers as the voter responds (branching skips irrelevant follow-ups), pick the outcome — spoken to, supportive, opposed, undecided, refused — add notes, save. The app auto-advances to the next household.
- If nobody answers: tap Not home once at the household level — it marks every voter at the address in one tap.
- Wrong address or moved? Pick Moved, Deceased, or Wrong address so the campaign can clean the data.
Two things are worth knowing at the door. Scripts can flip between English and the voter's own language when one's on file — the wording changes, but the answer values underneath don't, so a response logs identically whichever language you read it in. And every quick log drops an 8-second undo toast: tap it and, if the row is still waiting to sync, it's simply thrown away; if it already went up, it's reversed — a delete limited to your own contact, inside about a fifteen-minute window, that honestly recomputes the voter's status rather than pretending the knock never happened.
Messages from HQ arrive as a slim banner under the header — a nudge, never a screen-takeover — unless an organizer flags one urgent; acknowledging one is just the read receipt back. At the end of the shift, check your Stats view, brief the captain, and log out — that closes your session and stops GPS pings. Within minutes your contacts are on voter profiles and your session is on the leaderboard.
Offline behavior
Lose signal and the app keeps working — maps and your voter list are cached, new contact logs and script responses queue locally, and everything syncs the moment coverage returns.
The header carries a small sync pip that tells you exactly where you stand — SYNCED when everything's up, SYNCING n while it catches up, OFFLINE·n with a count of what's still waiting — and tapping it opens a sheet listing the actual rows in the queue. A GPS strip just above the bottom dock is the only other ambient status; the app won't pop a toast at you every time a bar of signal comes and goes. Photos are shrunk on your phone before they upload — around 700 KB at 1280 pixels — so a door photo still goes through on one weak bar.
The native app
Alongside the browser version there's a first-class app for iPhone and Android — the same screens, the same offline guarantees, the same doors — distributed through TestFlight and the App Store on iOS and as an Android app package. If your campaign sends you an install link, use it; if not, the browser version at /canvasser/ does everything the same way.
The real difference is under the hood: the native app keeps you signed in with a token stored on the device rather than a browser cookie, so you don't re-enter anything between shifts. Your very first shift walks you through a short three-card intro, and the safety shield stays pinned in the header on every screen — always one tap away, never buried in a menu.