A public token-gated portal for external crews. It renders the crew's pay model — which drives whether it asks for hours or units — the stages assigned to that crew grouped by project, and their recent entries with status.
Also called: sub hub · sub magic link · subcontractor reports hours · 1099 crew portal · sub portal · subcontractor login · crew reports hours · trade partner portal
Your subs report without ever creating an account
Each external crew gets one durable link. It lists that sub's assigned stages across every one of your jobs and lets them report hours or units, expenses and progress. Subs will not sign up for their builder's software, and asking them to is how subcontract labour ends up invisible until the invoice arrives.
A sub sees their own stages and nothing else
The token resolves to one crew inside one org, and every read and write is scoped to it. They cannot see another sub's work, your other crews, or anything about the jobs beyond the stages assigned to them. An expired or unknown token is a flat not-found.
It asks for whatever that crew is actually paid on
The portal renders from the crew's pay model: hours for an hourly crew, units with your own label — square feet, squares, whatever you measure in — for a per-unit crew. A sub asked for hours when he is paid by the square either guesses or ignores you.
Sub submissions go through the same approvals and the same P&L
Their entries land as submitted, clear through the one approvals screen your own crews go through, and price into the job's actual cost by that crew's model. Sub cost stops being a surprise that arrives at the end of the month with no way to check the days.
A contractor in your contacts becomes a tracked labour source in one step
Set up labour tracking on a Contractor contact and an external crew is created and linked to it, so the company you invoice and the crew that works the stages are the same record. Doing it twice returns the crew that already exists rather than creating a second one.
- 1getOrCreateSubLink issues one idempotent sub-<hex> token per external crew, re-read on a unique-index race.
- 2GET /api/sub-portal returns crew, assigned work and recent entries; an invalid or expired token is a flat 404.
- 3POST /api/sub-portal/log writes a time or expense entry scoped to the crew the token resolves to, always as 'submitted'.
- 4Receipts upload through the portal's own endpoint.
- 5The builder copies the link from the crew card.
Subcontractors will not create an account on a builder's system, and chasing their hours, units and receipts by text and email is exactly where a job's real labour cost goes missing. Each sub gets one durable link listing their assigned work across every one of that builder's projects, and reports hours or units, expenses and progress from it with no login at all. A sub can only ever see and write against their own crew's work. Everything they file arrives pending, for the builder to approve on his side.
- Subcontract labour invisible until the invoice arrives.
- Subs refusing to adopt builder software.
- Sub costs missing from job margin.
See it on your own jobs
Twenty minutes, your numbers, no slide deck. We’ll build one of your real buildings in front of you and send you the estimate link at the end — yours to keep either way.
or keep browsing features →