Tour Dash
Audit · 5 September 2026

Nomenclature, by who is signed in

Every page in the app, read twice: once as an agent, once as a vendor. The question on each was whether the words on the screen describe what that person is actually there to do. Most of the app already holds one vocabulary. Where it slipped, it was in the older dialogs and forms, in the pages that never asked which side of the marketplace was looking at them, and in one word for the trade side that the app had already stopped using everywhere else. Fixed in the same pass, then walked again in a real browser as both accounts.

Scope every signed-in route, both account types, plus sign-up and the 404 Method code read, then headless Chrome against /demo as Dana (agent) and Mira (vendor) Changes made 25 files in the app, uncommitted, not deployed
01

The short version

The two sides now read as two products built from one vocabulary, not one product with the other side bolted on.

02

The vocabulary

This is the rule the pass was checked against. It is Michael's, from the two renames on 5 September, and it is now what the whole app says. The code keeps its own names (provider, listing, /create-service, /my-listings) and nothing in this pass renamed a column, hook, route or component.

The thingThe wordWhere it holds
Someone who represents propertyagentSign-up, every "posted by" line, the counterpart on any job you take. The poster is always the agent.
Someone in a tradevendorNav (Vendors), sign-up, Hire a vendor, the profile subtitle, the admin console, the landing and waitlist.
Work an agent posts for another agentopportunityFind opportunities, My opportunities, the wizard title Post an opportunity, its button and toast.
Work an agent posts for a vendorjobHire a vendor, Post job / Send job, the vendor's Find work and My jobs.
The unit of work, genericallyjobEvery count, rail figure and empty state. "Listing" is never used for a posted job.
The button that posts agent workGet coverageHeader, dashboard door, Posted jobs empty state, How it works. The bar's tab is Post, the first word of the page it opens.
What an agent's posts are called togetherPosted jobsThe nav item and the page. It holds both opportunities and vendor jobs.
Saying yes to a priced jobapplyApply, Apply now, Apply for this job, Application submitted, Awaiting a decision.
Saying yes to a job priced by the workquoteSend a quote, Priced by quote, By quote. Only quote-first trades ever see it.
Naming a different price on a priced jobyour priceName your price, Your price is with the agent, Asks $110, asking from $95.
Signing in and outsign in, sign outLogin page, sidebar footer, toasts. Logout is gone.
03

What each side sees

Read as a pair. Every row is one place; the two columns are the words an agent and a vendor read there. Where a cell says "same", the page does not need to know who is looking.

PlaceAgentVendor
MenuHome · Find opportunities · My opportunities · Posted jobs · Vendors · Leads · Referrals · Calendar · WalletHome · Find work · My jobs · Calendar · Wallet
Header buttonGet coverageNone. The dashboard carries Find work instead.
Phone barHome · Find · Post · Vendors · CalendarHome · Find · My jobs · Calendar · Wallet
Home railNext up · Nearby to earn · Waiting on you · Earned (spent as detail)Next up · Booked · Awaiting a decision · Earned
Home sectionsWaiting on you · Your next few days · Earn nearby · Recent activityYour next few days · Open work · Recent activity
Home, nothing booked"A job you take, or someone you book for a job you posted, lands here""When an agent books you, the job lands here" (was "accepts one of your quotes", wrong for a cleaner)
BoardFind opportunities · "Open jobs near you that another agent can take" · scopes Agent work / Vendor workFind work · "Jobs in your trade, inside your service radius" · scopes Your trade / Vendor work
Your workMy opportunities · "Work you're doing for other agents… Jobs you posted are under Posted jobs"My jobs · "The jobs you've been booked for, the applications and quotes still waiting on an answer, and the work you've finished"
Calendar subtitle"Every job you are booked on, and the ones you posted for somebody else""Every job you are booked on, by day"
Calendar month figure"$520 in pay · $45 to pay" (was "Pay to be quoted" for an agent who only posts)"$375 in pay"
Wallet subtitlePaid for covering, paid for coverage, sent to bankWhat your jobs have paid, and what has gone to your bank
Profile subtitle"How other agents and vendors see you before they book""How agents see you before they book you"
Edit profileFull name · Professional title · ZIP code · BioFull name · Business name · ZIP code · Service radius · Turnaround · Trade license # · Typical rate · About your work
Settings, bankingPayout setup and the card formPayout setup only. A vendor never pays here.
Settings, FAQHow do I post work? How do I get paid? Cancelling: edit the job under Posted jobsHow do I find work? How do I get paid? Cancelling: contact the agent from the job
How it worksPost · Pick · Book and pay · Mark completePayouts · Trade and radius · Apply or quote · The agent pays · Get paid
404Back to home · Find opportunitiesBack to home · Find work
Booked job dialogCounterpart is Covering agent or Vendor on a job you posted, Agent on a job you tookCounterpart is Agent. Contact agent.
The agent dashboard at 1440 wide: Get coverage in the header, a rail of Next up, Nearby to earn, Waiting on you and Earned, then Waiting on you with two posts and their applicants, Your next few days, Earn nearby and Recent activity.
Dana, the agent. Both sides of her day on one sheet: people waiting on her decision, the jobs she is covering, and what she could earn nearby.
The vendor dashboard at 1440 wide for a listing photographer: a Find work button, a rail of Next up, Booked, Awaiting a decision and Earned, then Your next few days empty and Open work with one job marked Sent to you.
Mira, a listing photographer. No Get coverage, no posting language anywhere, and the empty state says "When an agent books you", which is true whether she applies or quotes.
04

What changed

One word for the trade side

No more listings

The other party is the agent

Pages that now know who is reading

The applications dialog over Posted jobs: Applications for Need coverage — Chapel Hill Road, a line reading Who has applied and what they are asking, then Waiting on you (3) with three applicants, one marked Asks $110.00 and $15.00 above the $95.00 you posted.
The applications dialog, which had kept the old vocabulary longest. Waiting on you, asks, you posted, Booked and Rejected.
The vendor dashboard with the Apply for this job dialog open: At the posted price $375.00 or Name your price, You'd be paid $332.50, Tour Dash fee $42.50, an optional message, Cancel and Apply.
Mira applying from her dashboard. Before, this button inserted the application straight away with no price step and no message.

Sentence case and spelling

05

The phone

A second walk at 390 and 320 wide with touch input, as both accounts, every bottom tab and every item in the menu sheet. The bar and the sheet were already current: each label is the page's own name or its first word, the sheet is the complete role-scoped map, and the search box says "Search opportunities" for an agent and "Search work" for a vendor.

SurfaceAgentVendor
Bottom barHome · Find · Post (amber pill) · Vendors · CalendarHome · Find · My jobs (amber pill) · Calendar · Wallet
Active tabLights on Find, Post, Vendors, Calendar and My jobs; nothing lights on a page the bar does not carry, which is correct.
Menu sheetHome · Find opportunities · My opportunities · Posted jobs · Vendors · Leads · Referrals · Calendar · Wallet · Admin · How it works · Settings · Sign outHome · Find work · My jobs · Calendar · Wallet · How it works · Settings · Sign out
HeaderMenu, wordmark, bell, theme. Get coverage is hidden below 640 because the bar's Post tab is the same door.Menu, wordmark, bell, theme.
Fit at 320Every page reads 320 wide except My opportunities, which ran to 376: three tabs with counts, "Awaiting a decision" the widest. Fixed: the strip scrolls inside its own width, and below 640 the tab reads "Awaiting" (the rail beside it spells it out). All three tabs sit inside 320 now.
The agent dashboard on a 390-pixel phone: the summary grid, Waiting on you with two posts, and the bottom bar reading Home, Find, Post, Vendors, Calendar with Post as an amber pill.
Dana on a phone. Post is the bar's one primary, and it opens the same wizard as Get coverage does on the desktop header.
The vendor dashboard on a 390-pixel phone: Nothing booked yet with a Find work button, Open work with one job, and the bottom bar reading Home, Find, My jobs, Calendar, Wallet with My jobs as an amber pill.
Mira on a phone. No Post tab, no Vendors tab; the centre slot is the jobs she has taken.

One naming question is left open on purpose. The bar says Post, the rule being the first word of the page it opens (Post an opportunity); every other button into that wizard says Get coverage. Both follow a stated rule, and they disagree. If the bar should match the header, "Coverage" is the one-word form that fits five tabs at 320; that is Michael's call.

06

Still open

07

Method