1 Hub
Hub — In Progress
9:41
Get Started
Let's get you set up
Three steps. Your documents do the heavy lifting.
1/3
Your Identity
Name, phone, and company
2
Upload Documents
Pricebooks, rosters, SOPs
3
Invite Your Team
Send magic links to employees
Upload Documents
Takes about 30 seconds
Optional
PortfolioBilling & StripeLicensesFull Profile

ContractorOnboardingHub — 3 primary steps + optional advanced

useQuery(api.contractor.onboardingWizard.getActiveSession)

Hub — Complete
9:41
Get Started
You're all set!
Your contractor account is ready. Welcome aboard.
Your Identity
Complete
Upload Documents
47 services extracted
Invite Your Team
3 invites sent
Go to Dashboard
Start bidding on jobs
Account ReadyStart bidding on jobs. Your AI-extracted data powers your profile.

ContractorOnboardingHub — all steps complete

router.replace("/(contractor)/(tabs)")


Identity Form
9:41
Your Identity
Full Name
Mike Kowalski
Email
mike@kowalskiplumbing.com
Phone
(330) 555-0100
Business Name
Kowalski Plumbing & HVAC
Quick SetupThis info powers your contractor profile. You can edit it later in settings.

IdentityScreen — name, email, phone, business

useMutation(api.users.contractors.updateProfile)


Upload — Empty
9:41
Upload Documents
Drop everything in the bucket
Pricebooks, rosters, commission plans, SOPs — we'll sort it all with AI.
Tap to select files
PDFCSVExcelZIPDOCXImages
Pricebooks & Rate Sheets
Team Rosters & Org Charts
Commission & Comp Plans
SOPs & Handbooks
Other Business Documents
Phone Camera WorksTake photos of printed docs, whiteboards, or handwritten notes. AI extracts the data.

UploadDocsScreen — empty state

useMutation(api.intake.bulkUpload.initiateBulkUpload)

Upload — Active
9:41
Upload Documents
COIT_Pricebook_2026.xlsx
Extracted
Team_Roster_March.csv
Processing
Commission_Plan.pdf
Needs Review
SOP_Handbook.zip
4 files extracted
AI Extraction
AI found 47 services, 12 team members, 3 commission tiers
94%
Review Flagged ItemsItems marked 'Needs Review' have low confidence. Verify before continuing.

UploadDocsScreen — files + extraction

useQuery(api.intake.bulkUpload.listBulkUploadJobs)

AI Call Prompt
9:41
AI Call
Quick 5-Minute Call
AI found gaps in your uploaded docs. A quick call fills them in.
Fill the Gaps
Answer questions about pricing or team structure
Capture Tribal Knowledge
Scheduling quirks, customer rules
Owner Stays in Control
You set commissions, approve roles. Team can't change pay.
What AI will ask
Services and pricing
Team structure and roles
Commission rules and pay
Service area and scheduling
Business jargon and terminology
5-minute call · No human · 100% private
Completely OptionalSkip if your docs covered everything. You can always call later from settings.

AiCallScreen — gap analysis + call

useQuery(api.contractor.onboardingWizard.getCallEligibility)


Delegate — Empty
9:41
Invite Your Team
Delegate the Details
Send magic links to your team. They upload docs for their area.
Name
Team member name
Email
team@company.com
Role
Office Mgr
Dispatcher
Technician
Sales Rep
Add Team Member
You Stay in ControlTeam members can upload documents but cannot set commissions, change pay rates, or modify roles.

DelegateScreen — invite form

useMutation(api.intake.employeeLinks.generateEmployeeIntakeLink)

Delegate — Sent
9:41
Invite Your Team
SC
Sarah Chen
sarah@kowalski.com
Office MgrSent
TR
Tom Rivera
tom@kowalski.com
DispatcherSent
JM
Jake Miller
jake@kowalski.com
TechnicianPending
Add Another
Links SentTeam members have 7 days to complete their intake. You'll be notified when they finish.

DelegateScreen — invites sent

useQuery(api.intake.employeeLinks.listEmployeeTokens)

1 Hub
Hub & Identity
9:41
Get Started
Let's get you set up
Your Identity
Complete
2
Upload Documents
Pricebooks, rosters, SOPs
3
Invite Your Team
Magic links
Quick SetupThree steps. Your documents do the heavy lifting.
Identity
Full Name
Mike Kowalski
Email
mike@kowalskiplumbing.com
Phone
(330) 555-0100
Business Name
Kowalski Plumbing & HVAC
Upload & AI Call
9:41
Upload Documents
Uploaded Files
COIT_Pricebook_2026.xlsx
Extracted
Team_Roster_March.csv
Processing
Commission_Plan.pdf
Review
SOP_Handbook.zip
4 files
Review FlaggedLow confidence items need manual verification.
Quick 5-Minute Call
AI found gaps. A quick call fills them in.
Start AI Call
Delegate & Invites
9:41
Invite Your Team
Add Member
Name
Team member name
Email
team@company.com
Role
Office Mgr
Dispatcher
Technician
Sales Rep
Add
Owner ControlTeam can upload docs but can't change pay or commissions.
Sent Invites
SC
Sarah Chen
sarah@kowalski.com
Office MgrSent
TR
Tom Rivera
tom@kowalski.com
DispatcherSent
JM
Jake Miller
jake@kowalski.com
TechnicianPending
1 Hub
Onboarding Hub
https://app.3bids.io/contractor/onboarding
3BidsOnboarding
Hub
Identity
Upload Docs
AI Call
Invite Team
Portfolio
Billing
Licenses
Profile
MK
Mike Kowalski
Contractor
Settings
Onboarding Hub
1/3
Steps Complete
0
Docs Uploaded
0
Invites Sent
Your Identity
Name, phone, and company
2
Upload Documents
Pricebooks, rosters, SOPs
3
Invite Your Team
Send magic links
Document-First OnboardingUpload your pricebooks and SOPs first. AI extracts services, pricing, and team structure automatically.
Upload Center
https://app.3bids.io/contractor/onboarding/upload
3BidsOnboarding
Hub
Identity
Upload Docs
AI Call
Invite Team
MK
Mike Kowalski
Contractor
Upload Center
Uploaded Files
File
Status
Extraction
COIT_Pricebook_2026.xlsx
Extracted
47 services
Team_Roster_March.csv
Processing
12 members
Commission_Plan.pdf
Review
3 tiers
Review Flagged ItemsItems marked 'Needs Review' have low confidence. Verify before continuing.
Team Invites
https://app.3bids.io/contractor/onboarding/delegate
3BidsOnboarding
Hub
Identity
Upload Docs
AI Call
Invite Team
MK
Mike Kowalski
Contractor
Team Invites
Team member name
email@company.com
Role ▾
Add
Name
Email
Role
Status
Sarah Chen
sarah@kowalski.com
Office Mgr
Sent
Tom Rivera
tom@kowalski.com
Dispatcher
Sent
Jake Miller
jake@kowalski.com
Technician
Pending
Magic LinksTeam members have 7 days to complete their intake. You'll be notified when they finish.

Data Architecture

Contractor Intake Wizard — 3-step onboarding with AI document extraction, voice gap analysis, and team delegation via magic links.

Source Files

  • screen onboarding/index.tsx
  • screen onboarding/identity.tsx
  • screen onboarding/upload-docs.tsx
  • screen onboarding/ai-call.tsx
  • screen onboarding/delegate.tsx

Convex Queries

  • query getActiveSession
  • query listBulkUploadJobs
  • query listExtractionJobs
  • query listEmployeeTokens
  • query getCallEligibility

Convex Mutations

  • mutation updateProfile
  • mutation markPrimaryStepComplete
  • mutation initiateBulkUpload
  • mutation triggerAiExtraction
  • mutation startIntakeCall
  • mutation generateEmployeeIntakeLink

Onboarding Flow

not_started
identity
uploading
extracting
delegating
completed

Key Design Decisions

Bucket Philosophy

Dump everything in one upload — pricebooks, SOPs, rosters. AI sorts, categorizes, and extracts structured data automatically.

Magic Links

7-day employee tokens sent via email. Each employee uploads docs for their area. Owner retains control over pay and commissions.

AI Voice Call

Deepgram + Gemini gap analysis. 5-minute call fills gaps the documents didn't cover — tribal knowledge, scheduling quirks.

Owner Control

Team members can upload documents but cannot set commissions, change pay rates, or modify roles. Owner approves all financial data.

Back to Top