Product architecture

How ShiftMed NYC works

A three-sided marketplace optimized for velocity: post → match → confirm → work → pay. Every step is instrumented, every rule is transparent.

Three actors, one marketplace

Clinician
Independent healthcare pros — RNs, LPNs, CNAs, MAs, NPs. Browse, bid, work, get paid.
Facility
Hospitals, SNFs, clinics. Post individual, block, or CSV-uploaded shifts. Review bids and rate performance.
Admin
ShiftMed operations. Vet accounts, review credentials, resolve disputes, manage fees and reliability rules.

Core shift flow

From post to payout in under 72 hours, typically less than 10 minutes to fill.

1Facility

Post

Sets license, borough, rate range, urgency, block size.

2Rules engine

Match

Scores eligible clinicians by location, license, reliability, rate.

3Clinician

Bid

Apply at posted rate or submit a counteroffer with a note.

4Facility

Accept

Accept, reject, or counter. Escrow holds funds on accept.

5Clinician

Work

Clock in, complete shift, clock out with facility signoff.

6Marketplace

Pay

Facility invoiced weekly. Clinician paid standard or next-day.

Matching engine
Weighted score determines who sees a shift first.
License match35%
Borough proximity25%
Reliability score20%
Rate fit (bid ≤ max)10%
Facility favorites10%

score = 0.35·L + 0.25·D + 0.20·R + 0.10·Rate + 0.10·Fav
Clinicians above threshold 0.6 are notified first; the pool widens every 90 seconds.

Reliability rules
Fair, transparent, adjustable by admin.

Score

100 − (late × 3) − (late-cancel × 8) − (no-show × 20)

  • · Late cancel window: 4 hours before start
  • · Below 70: paused from urgent shifts
  • · Below 50: manual review by Trust & Safety

Data model

Core entities and relationships.

Facility ──< Shift >── Bid >── Clinician
   │           │                    │
   │           └── Escrow ── Payout ─┘
   │
   └── Invoice (weekly, aggregates Shift.finalRate * hours)

Clinician ──< Credential (License, BLS, ACLS, TB, ...)
Clinician ──< Availability slots
Facility  ──< Favorites (Clinicians)

Shift.status : open → pending → filled → completed | cancelled
Bid.status   : pending → accepted | rejected
Credential   : valid | expiring (<60d) | expired

System diagram

Services and data stores backing the marketplace.

API Gateway

REST + Webhooks, rate-limited, signed.

Postgres + Redis

Transactional state, cache, matching queue.

Matching worker

Streams shift events, scores clinicians, notifies.

Payments core

Stripe Connect, ACH, escrow, next-day payouts.

Notifications

Email, SMS, push. Per-user preferences.

Credential vault

Encrypted uploads with expiry watch.

Messaging

1:1 threads scoped to a shift or facility.

Trust & Safety

Disputes, appeals, admin overrides.

Ready to see it in action?

Sign in with a pre-seeded role and explore the marketplace end-to-end.