# RateRight v2 — Product Specification
## AI-First Construction Hiring Platform

**Created:** 2026-02-04
**Author:** Rivet (COO System)
**Status:** DRAFT — Awaiting Michael's Review

---

## 1. Vision

**One sentence:** The simplest way to hire construction workers in Australia — AI does the work, you just tap.

**The problem:** Hiring construction workers is slow, manual, and expensive. Contractors waste hours posting jobs, reviewing profiles, making calls. Workers waste time filling out forms and applying to jobs they won't get.

**The solution:** An AI-powered marketplace where:
- Contractors type their company name → AI builds their profile and writes their job posts
- Workers send a voice note → AI builds their entire profile
- One tap to post. One tap to hire. $50 flat fee. Done.

**USP:** Every competitor makes the human do the work. We make the AI do the work.

---

## 2. Business Model

- **$50 flat fee** per confirmed hire
- **Workers pay $0** — always free for workers
- **Contractors pay $0 to post** — only pay when they actually hire someone
- No subscriptions, no percentages, no hidden fees
- Revenue = $50 × number of hires per month

---

## 3. User Personas

### Contractor (Buyer)
- **Who:** Site foreman, project manager, small builder, subcontractor
- **Age:** 30-55
- **Pain:** Needs 3 labourers by Monday. Doesn't have time to post jobs, review 50 applications, make calls
- **Device:** iPhone/Android, often checking on site between tasks
- **Wants:** Fast, reliable workers. No bullshit. "I need 2 steel fixers tomorrow in Parramatta"

### Worker (Seller)
- **Who:** Irish/British backpacker with White Card, experienced tradesperson, labourer looking for work
- **Age:** 20-40
- **Pain:** Filling out profiles is tedious. Doesn't know market rates. Wants to get on a job fast
- **Device:** Phone only. Often doesn't have a laptop
- **Wants:** Get matched to jobs near me. Know what I'll earn. Start this week

---

## 4. User Flows

### 4.1 Contractor Signup (< 2 minutes)
```
1. Download app / visit site
2. Tap "I'm hiring"
3. Enter company name OR ABN
4. AI researches company:
   - ABN lookup → business name, address, registration status
   - Google → reviews, website, services
   - LinkedIn → company size, key people
5. AI pre-fills profile: company name, address, industry, size, logo
6. Contractor reviews → one tap to confirm
7. Add phone number → SMS verification
8. Done. Ready to post first job.
```

### 4.2 Worker Signup (< 3 minutes)
```
1. Download app / visit site
2. Tap "I'm looking for work"
3. Two options:
   a. TYPE: Answer 5 simple questions (trade, experience, location, availability, certs)
   b. VOICE: Send a 30-second voice note about yourself
      → AI transcribes and extracts: trade, years experience, certifications,
        availability, location, languages, past employers
4. AI builds complete profile with all extracted info
5. Worker reviews → edit anything wrong → one tap to confirm
6. Upload White Card photo (AI reads and verifies card details)
7. Done. Start getting matched.
```

### 4.3 Post a Job (< 1 minute)
```
1. Contractor taps "Post a Job"
2. Selects trade category (steel fixer, formworker, labourer, etc.)
3. AI suggests:
   - Job title based on trade
   - Description template based on common requirements
   - Market rate for that trade in that area
   - Required certifications
   - Suggested start date based on their past patterns
4. Contractor adjusts anything (or accepts defaults)
5. One tap → job is live
6. AI immediately matches with available workers
7. Push notifications sent to matching workers
```

### 4.4 Get Matched & Hire
```
1. AI ranks workers by: proximity, experience, ratings, availability
2. Contractor sees top 5 matches with:
   - Name, trade, experience, rating
   - Distance from site
   - Availability
   - AI summary: "Steel fixer, 5 years experience, 4.8★, 3km away, available tomorrow"
3. Contractor taps "Hire" on preferred worker
4. Worker gets notification → one tap to accept
5. Both get each other's contact details
6. $50 fee charged to contractor
7. Done. Worker shows up tomorrow.
```

### 4.5 After the Job
```
1. Both rate each other (1-5 stars + optional comment)
2. AI adds to both profiles
3. Contractor gets "Hire again?" suggestion next time
4. Worker gets priority matching with contractors who rated them well
```

---

## 5. AI Features — Detailed Spec

### 5.1 Company Research Engine
**Trigger:** Contractor enters company name or ABN
**AI Actions:**
- Query ABN Lookup API → business name, status, GST registration, address
- Google search → company website, reviews, services offered
- LinkedIn search → company page, employee count, industry
- Cross-reference data, resolve conflicts
- Generate pre-filled profile

**Output:** Complete contractor profile draft requiring one-tap approval

### 5.2 Voice Profile Builder
**Trigger:** Worker sends voice note
**AI Actions:**
- Transcribe audio (Whisper/Deepgram)
- Extract structured data using LLM:
  - Primary trade(s)
  - Years of experience
  - Certifications held (White Card, forklift, EWP, etc.)
  - Location / areas willing to work
  - Availability (full-time, casual, weekends)
  - Languages spoken
  - Notable past employers or projects
- Generate complete profile from extraction
- Flag any gaps: "You didn't mention certifications — do you have a White Card?"

**Output:** Complete worker profile draft with follow-up questions for gaps

### 5.3 Smart Job Post Assistant
**Trigger:** Contractor starts posting a job
**AI Actions:**
- Based on trade selected, pre-fill:
  - Standard job description template
  - Required certifications for that trade
  - Market rate range (pulled from past jobs + market data)
  - Common tools/equipment needed
  - PPE requirements
- Based on contractor's history:
  - Suggest same rates as last time
  - Auto-fill site address if same as previous
  - Suggest workers they've hired before

### 5.4 Smart Matching Engine
**Algorithm:**
- **Distance:** Proximity to job site (weighted heavy — construction is local)
- **Experience:** Years in trade, relevant certifications
- **Rating:** Past performance on platform
- **Availability:** Calendar match with job dates
- **History:** Past successful matches with this contractor
- **Responsiveness:** How quickly they accept/decline

### 5.5 White Card Verification
**Trigger:** Worker uploads photo of White Card
**AI Actions:**
- OCR the card → extract name, card number, issue date, state
- Cross-reference with entered profile data
- Flag mismatches
- Mark profile as "Verified"

---

## 6. Technical Architecture

### Recommended Stack
```
FRONTEND
├── Next.js (web) — SSR, fast, SEO-friendly
├── React Native / Expo (mobile) — iOS + Android from one codebase
└── Tailwind CSS — rapid UI development

BACKEND
├── Supabase (existing) — Postgres, Auth, Realtime, Storage
├── Edge Functions — serverless API endpoints
└── Supabase Realtime — live notifications, chat

AI LAYER
├── Whisper / Deepgram — voice transcription
├── Claude / GPT — profile generation, job post assistant, matching
├── Gemini — image analysis (White Card verification)
├── ABN Lookup API — company verification

INFRASTRUCTURE
├── Vercel (web hosting)
├── EAS (Expo Application Services) for mobile builds
└── Supabase (existing instance)
```

### Why This Stack
- **Supabase stays** — database, auth, storage already working. No migration needed
- **Next.js + React Native** — share components, one team can build both
- **Vercel** — zero-config deployment, works perfectly with Next.js
- **Edge Functions** — serverless, scales automatically, cheap

---

## 7. Database Schema (Supabase/Postgres)

### Core Tables
```sql
-- Users (extends Supabase Auth)
profiles (
  id uuid PK references auth.users,
  type enum('worker', 'contractor'),
  name text,
  phone text,
  email text,
  avatar_url text,
  location point,
  suburb text,
  verified boolean default false,
  created_at timestamptz,
  ai_generated boolean default false
)

-- Contractor-specific
companies (
  id uuid PK,
  profile_id uuid FK → profiles,
  name text,
  abn text,
  address text,
  industry text,
  size text,
  website text,
  logo_url text,
  ai_research jsonb  -- stored AI research results
)

-- Worker-specific
worker_profiles (
  id uuid PK,
  profile_id uuid FK → profiles,
  trades text[],  -- array of trades
  experience_years integer,
  certifications text[],
  white_card_number text,
  white_card_verified boolean,
  availability enum('full-time', 'casual', 'weekends', 'flexible'),
  languages text[],
  bio text,  -- AI-generated from voice note
  voice_note_url text,
  ai_extracted jsonb  -- raw AI extraction from voice
)

-- Jobs
jobs (
  id uuid PK,
  company_id uuid FK → companies,
  title text,
  description text,
  trade text,
  location point,
  suburb text,
  site_address text,
  rate_min decimal,
  rate_max decimal,
  rate_type enum('hourly', 'daily'),
  start_date date,
  duration text,
  workers_needed integer default 1,
  certifications_required text[],
  status enum('draft', 'active', 'filled', 'closed'),
  ai_generated boolean default false,
  created_at timestamptz
)

-- Matches / Applications
matches (
  id uuid PK,
  job_id uuid FK → jobs,
  worker_id uuid FK → profiles,
  status enum('suggested', 'applied', 'accepted', 'rejected', 'hired'),
  match_score decimal,  -- AI match score 0-100
  ai_summary text,  -- "Steel fixer, 5 years, 4.8★, 3km away"
  contractor_action enum('pending', 'accepted', 'rejected'),
  worker_action enum('pending', 'accepted', 'rejected'),
  hired_at timestamptz,
  fee_charged boolean default false,
  created_at timestamptz
)

-- Ratings
ratings (
  id uuid PK,
  match_id uuid FK → matches,
  from_id uuid FK → profiles,
  to_id uuid FK → profiles,
  score integer check(score between 1 and 5),
  comment text,
  created_at timestamptz
)

-- Payments
payments (
  id uuid PK,
  match_id uuid FK → matches,
  company_id uuid FK → companies,
  amount decimal default 50.00,
  status enum('pending', 'charged', 'refunded'),
  stripe_payment_id text,
  created_at timestamptz
)
```

---

## 8. MVP vs Phase 2

### MVP (Build First — 6-8 weeks)
- [ ] Contractor signup with AI company research (ABN lookup + Google)
- [ ] Worker signup with simple form (5 questions)
- [ ] Job posting with AI suggestions
- [ ] Smart matching algorithm
- [ ] One-tap hire flow
- [ ] Push notifications
- [ ] Ratings system
- [ ] $50 payment via Stripe
- [ ] Mobile-responsive web app (Next.js)
- [ ] Basic admin dashboard

### Phase 2 (After MVP Launch)
- [ ] Voice profile builder (Whisper transcription)
- [ ] React Native mobile apps (iOS + Android)
- [ ] White Card photo verification (Gemini OCR)
- [ ] In-app messaging / chat
- [ ] Repeat hire suggestions
- [ ] Contractor job templates (save and reuse)
- [ ] Worker availability calendar
- [ ] Location-based push notifications ("New job 2km from you")
- [ ] Analytics dashboard for contractors
- [ ] Referral program

### Phase 3 (Scale)
- [ ] Payroll integration
- [ ] Timesheet tracking
- [ ] Insurance verification
- [ ] Multi-city expansion
- [ ] Enterprise contractor accounts
- [ ] API for recruitment agencies

---

## 9. Competitive Analysis

| Feature | RateRight v2 | Workmate | Sidekicker | Airtasker | HiPages |
|---------|-------------|----------|------------|-----------|---------|
| AI profile builder | ✅ | ❌ | ❌ | ❌ | ❌ |
| Voice signup | ✅ | ❌ | ❌ | ❌ | ❌ |
| Company auto-research | ✅ | ❌ | ❌ | ❌ | ❌ |
| One-tap hire | ✅ | ❌ | ❌ | ❌ | ❌ |
| Construction focus | ✅ | ✅ | ❌ | ❌ | ❌ |
| Flat fee pricing | ✅ ($50) | ❌ (%) | ❌ (%) | ❌ (%) | ❌ (leads) |
| Workers pay $0 | ✅ | ❌ | ❌ | ✅ | N/A |
| Mobile-first | ✅ | ⚠️ | ⚠️ | ✅ | ✅ |

**Key differentiator:** Nobody else uses AI to do the signup and job posting work FOR the user. Everyone else has forms. We have a conversation.

---

## 10. Success Metrics

### Launch (Month 1)
- 50 contractors signed up
- 200 workers signed up
- 10 confirmed hires ($500 revenue)
- <2 min average signup time
- >80% profile completion rate

### Growth (Month 3)
- 200 contractors
- 1,000 workers
- 100 hires/month ($5,000 revenue)
- <24hr average time to hire
- >4.0 average rating

### Scale (Month 6)
- 500 contractors
- 5,000 workers
- 500 hires/month ($25,000 revenue)
- Expand to Melbourne

---

## 11. Timeline Estimate

| Week | Milestone |
|------|-----------|
| 1-2 | Database schema, auth, Supabase setup |
| 3-4 | Contractor flow: signup + AI research + job posting |
| 5-6 | Worker flow: signup + profile + matching |
| 7 | Hire flow + Stripe payment ($50) |
| 8 | Notifications, ratings, polish |
| 9 | Testing, bug fixes, soft launch |
| 10 | Launch 🚀 |

**Who builds what:**
- **Markus:** Frontend (Next.js), Supabase functions, core flows
- **Rivet:** AI integrations (company research, matching, job suggestions), testing, ops
- **Michael:** Product direction, sales, first contractor relationships

---

## 12. Open Questions for Michael

1. **Domain:** Keep rateright.com.au or new domain?
2. **Payment:** Stripe? Or another payment provider?
3. **ABN API:** Use the free ABR API or a paid enrichment service?
4. **Mobile apps:** Start with responsive web, or go straight to React Native?
5. **Markus capacity:** How many hours/week can Markus dedicate to the rebuild?
6. **Launch market:** Sydney only, or wider from day one?
7. **Worker comms:** SMS notifications, push, or both?

---

*This spec is a living document. Update as decisions are made.*
*Created by Rivet — 2026-02-04*
