1 Permits Dashboard
2 Permit Management
3 Licensing & Compliance
Permits List
9:41
7
Active
3
Pending
2
Expiring
All Active Pending Expired
Auto-reminders notify you 30, 60, or 90 days before any permit or license expires.
Building Permit OH-BLD-44120-0847
Active

Summit County Exp: Aug 15, 2026
Kitchen remodel — 142 Oak St
Renewal available
Electrical Permit OH-ELC-44313-1204
Pending

Cuyahoga County Applied: Feb 10, 2026
Panel upgrade — 88 Elm Dr
Plumbing Permit OH-PLB-44120-0591
Expired

Summit County Exp: Jan 30, 2026
Bath remodel — 55 Pine Ln

PermitCard, StatsCard components

useQuery(api.permits.queries.list) + useQuery(api.permits.queries.getStats)

Permits — Empty State
9:41
0
Active
0
Pending
0
Expiring
No Permits Tracked
Track permits, schedule inspections, and get automatic renewal reminders all in one place.

Empty component with IconCircle style D (hero)

Shown when permits.length === 0


Create Permit
9:41
Upload the original permit document and we'll auto-extract the expiration date for reminders.
Building
Electrical
Plumbing
Mechanical
Demolition
Special
Kitchen Remodel — 142 Oak St
Tap to upload permit PDF
PDF, JPG, PNG up to 10MB

CreatePermitScreen with type selector chips

useMutation(api.permits.mutations.createPermit)

Permit Detail
9:41
OH-BLD-44120-0847 Building Permit
Active

142 Oak St, Akron, OH 44120
Summit County
Portal
Call
Key Dates
IssuedFeb 12, 2026
ExpiresAug 15, 2026
Associated Job Kitchen Remodel
Documents
Building_Permit_0847.pdf Uploaded Feb 12, 2026 · 2.4 MB
Renewal Reminders Get notified before expiration
30 days 60 days 90 days

PermitDetailScreen with tabbed layout

useQuery(api.permits.queries.get) + useMutation(api.permits.mutations.deletePermit)

Inspection Schedule
9:41
OH-BLD-44120-0847 Building Permit · 142 Oak St

2Passed
1Scheduled
1Failed
1Pending
Foundation Passed
Jan 18, 2026 · Inspector: R. Hayes
All footings properly set. Rebar placement approved. Drainage adequate.
Framing Passed
Feb 4, 2026 · Inspector: M. Torres
Structural framing meets code. Header sizes confirmed per plan.
Rough-In Scheduled
Mar 5, 2026 · 9:00 AM – 12:00 PM Plumbing, electrical, HVAC rough-in review
Final Not Scheduled
Required for permit closeout
Re-Inspection Failed
Feb 20, 2026 · Inspector: R. Hayes
GFI outlets not installed per plan. Correct and reschedule inspection.

InspectionCard with timeline layout

useQuery(api.permits.queries.get) → inspections array


License Manager
9:41
2
Verified
1
Pending
A+
Rating
Checkr verification runs automatically. Verified licenses boost your compliance score and bid visibility.
General Contractor OH-GC-2024-14892
Verified

State of Ohio Exp: Dec 31, 2026
Checkr Verified
Master Electrician OH-ME-2023-08341
Verified

State of Ohio Exp: Jun 30, 2026
Checkr Verified
Journeyman Plumber OH-JP-2025-22010
Pending

State of Ohio Submitted: Feb 1, 2026
Verifying

LicenseCard with Checkr verification badge

useQuery(api.licenses.queries.list) + Checkr integration status

Expiration Alerts
9:41
Expiring This Month
Plumbing Permit OH-PLB-44120-0591
Expired Jan 30 25 days overdue
Liability Insurance Policy #GL-2024-OH-8891
Exp Feb 28 4 days left
Expiring in 90 Days
Master Electrician OH-ME-2023-08341
Exp Jun 30 126 days left
Building Permit OH-BLD-44120-0847
Exp Aug 15 172 days left
Reminders are sent via push notification. Enable multiple intervals to stay ahead of deadlines.
Reminder Preferences
30-day reminder Push notification
60-day reminder Push notification
90-day reminder Push notification

ReminderCard with urgency-sorted list

useQuery(api.permits.queries.listReminders) sorted by daysUntilExpiration

Compliance Overview
9:41
85%
Compliant
2 items need your attention to reach full compliance
100% compliance unlocks the Verified Contractor badge on your profile, boosting homeowner trust.
Compliance Breakdown
Licenses 3/3 Valid
All licenses current and verified
Insurance Expiring Soon
Liability expires Feb 28, 2026
Permits 2 Pending
Electrical + plumbing under review
Background Check Cleared
Checkr verified Dec 15, 2025
What's Needed

Renew Liability Insurance Policy expiring in 4 days
Fix
Renew Plumbing Permit Expired 25 days ago
Fix

ComplianceOverview with score ring

useQuery(api.compliance.queries.getScore) aggregates licenses, insurance, permits, background

Data Architecture

Schema — permits

permitType: string (building, electrical, plumbing...)
permitNumber: string (OH-BLD-44120-0847)
jurisdiction: string (Summit County)
jurisdictionUrl: string?
jurisdictionPhone: string?
status: string (draft|applied|active|expired...)
applicationDate: number (timestamp)
approvalDate: number?
expirationDate: number?
propertyAddress: string?
description: string?
contractorId: Id<contractorUsers>
jobId: Id<jobs>?

Schema — licenses

licenseType: string (contractor, electrician, plumber)
licenseNumber: string (OH-GC-2024-14892)
state: string (OH)
expirationDate: number
verificationStatus: string (verified|pending|expired)
verificationProvider: string (checkr)
verifiedAt: number?
contractorId: Id<contractorUsers>

Schema — inspections

permitId: Id<permits>
inspectionType: string (foundation, framing, rough-in, final)
scheduledDate: number?
status: string (passed|failed|scheduled|not_scheduled)
inspectorName: string?
notes: string?
completedAt: number?

Hooks

usePermits() → permits[], stats, filters
useLicenses() → licenses[], verification
useCompliance() → score, breakdown, needs
useInspections() → inspections[] by permit

Mutations

createPermit(permitType, jurisdiction, ...)
updatePermit(permitId, fields...)
deletePermit(permitId)
scheduleInspection(permitId, type, date)
addLicense(type, number, state, exp)
completeReminder(reminderId)
dismissReminder(reminderId)

Integration — Checkr

verifyLicense(licenseNumber, state)
backgroundCheck(contractorId)
webhook: checkr.completed → update status
webhook: checkr.flagged → admin alert
autoRefresh: every 90 days re-verify
Permits & Inspections
9:41
Permits & Inspections
7
Active
3
Pending
2
Expiring
All Permits
Building Permit
OH-BLD-44120-0847 · Summit County
Active
Electrical Permit
OH-ELC-44313-1204 · Cuyahoga County
Pending
Plumbing Permit
OH-PLB-44120-0591 · Summit County
Expired
OH-BLD-44120-0847
Building Permit · Summit County
Active
Issued
Feb 12, 2026
Expires
Aug 15, 2026
Location
142 Oak St, Akron
Inspection Timeline
2
Passed
1
Scheduled
1
Failed
1
Pending
Foundation
Jan 18, 2026 · R. Hayes
Passed
Framing
Feb 4, 2026 · M. Torres
Passed
Rough-In
Mar 5, 2026 · 9:00 AM – 12:00 PM
Scheduled
Re-Inspection
Feb 20, 2026 · R. Hayes — GFI outlets not installed
Failed
Final
Required for permit closeout
Not Scheduled
Licensing & Compliance
9:41
Licensing & Compliance
2
Verified
1
Pending
A+
Rating
Licenses
General Contractor
OH-GC-2024-14892 · Exp Dec 31, 2026
Verified
Master Electrician
OH-ME-2023-08341 · Exp Jun 30, 2026
Verified
Journeyman Plumber
OH-JP-2025-22010 · Submitted Feb 1
Pending
Compliance Score
85%
Compliant
2 items need your attention to reach full compliance
Compliance Breakdown
Licenses
All current & verified
3/3 Valid
Insurance
Liability expires Feb 28, 2026
Expiring Soon
Permits
Electrical + plumbing under review
2 Pending
Background Check
Checkr verified Dec 15, 2025
Cleared
Action Required
Renew Liability Insurance
Policy expiring in 4 days
Fix
Renew Plumbing Permit
Expired 25 days ago
Fix
Permits & Licensing Center
https://app.3bids.io/contractor/permits
3Bids
Dashboard ⌘1
All Permits ⌘2
Inspections ⌘3
Licenses ⌘4
Alerts ⌘5
Compliance ⌘6
MK
Mike Kowalski
Contractor
Settings ⌘,

Permits & Licensing Center

7
Active Permits
2
Verified Licenses
85%
Compliance
2
Action Needed
Active Permits
Building Permit
OH-BLD-44120-0847 · Summit County · Exp Aug 15
Active
Electrical Permit
OH-ELC-44313-1204 · Cuyahoga County · Applied Feb 10
Pending
Plumbing Permit
OH-PLB-44120-0591 · Summit County · Exp Jan 30
Expired
Upcoming Inspections
Rough-In — Building Permit
Mar 5, 2026 · 9:00 AM – 12:00 PM
Scheduled
Re-Inspection — GFI Outlets
Failed Feb 20 — needs reschedule
Failed
Licenses
General Contractor
OH-GC-2024-14892 · Exp Dec 31, 2026
Verified
Master Electrician
OH-ME-2023-08341 · Exp Jun 30, 2026
Verified
Journeyman Plumber
OH-JP-2025-22010 · Verifying
Pending
Expiration Alerts
Plumbing Permit — Expired
25 days overdue
Liability Insurance
Expires in 4 days
Master Electrician License
Expires Jun 30 — 126 days left
Compliance Trend