The shift marketplace for Thai doctors and the clinics that need them
ShiftIn connects licence-verified doctors with clinics posting freelance shifts. Doctors browse and apply in a tap. Clinics pick who they work with. No more hunting through LINE groups.
ชิฟต์อิน — ตลาดงานเวรสำหรับแพทย์ฟรีแลนซ์และคลินิก
Freelance shifts were found in noisy chat groups
Clinics posted urgent shifts into LINE groups with thousands of members. Doctors scrolled, messaged, and usually heard the shift was already taken.
Click around the product
This is a working replica of ShiftIn's main screens, filled with sample clinics, doctors and shifts. Filter shifts, switch the viewer's access level, open a shift, apply, then confirm the applicant as the clinic.
Two short paths that meet at a confirmed shift
Anyone can browse. Signing up and verifying is a short stop on the way, and the user always lands back on the shift that brought them in.
Find a shift that fits
- Browse without an accountSee shifts, pay and open-date counts.
- Sign up with email, Google or LINELINE login works inside LINE's own in-app browser.
- Upload an ID card and เลข ว.One photo. Reviewed by hand.
- Pick dates and applyContact details unlock once the clinic confirms.
Fill a shift with a verified doctor
- Sign up with emailPost right away, no waiting.
- Add a facility licence (optional)11 digits, checked automatically, earns the teal badge.
- Post the shiftType, dates, hours, pay and perks like ไม่หัก 3%.
- Review and confirmOther overlapping pending applications clear themselves.
Access opens up as trust is established
Three tiers decide what each visitor can see and do. The rules live in the database's row-level security, so they hold even if someone bypasses the UI.
| What they can do | Visitor | Signed up | Verified doctor |
|---|---|---|---|
| Browse shifts | Yes | Yes | Yes |
| See dates | Count only | All | All |
| See notes and procedures | No | Yes | Yes |
| See contact details | No | Locked | After confirm |
| Apply | No | No | Yes |
การยืนยันตัวตนเป็นการยืนยันตัวตนและสถานะใบอนุญาตเท่านั้น ShiftIn ไม่ได้ประเมินความสามารถทางคลินิกหรือความเหมาะสม
Shown on every verification screen: ShiftIn confirms identity and licence status only, never clinical competence.A neutral marketplace by design
ShiftIn connects people. It is not a healthcare provider, an agency, or an employer, and the product is built so it can't drift into being one.
ShiftIn never
- Sets pay rates or schedules for doctors
- Holds money, deposits or escrow
- Takes a percentage of a doctor's pay
- Charges anyone to get verified
- Supervises clinical work
Safeguards built in
- Licence-renting posts (แขวนป้าย) are rejected
- Append-only audit log of every user action
- Verification documents in private storage
- Clinics accept responsibility each time they post
- Self-service account deletion, blocked only while a shift is confirmed
Built end to end by one person
From database schema to Thai copy, every layer was designed and written solo.
Frontend
React with TanStack Start, built with Bun and Vite, hosted on Vercel.
Database
Supabase Postgres with row-level security on every table.
Server logic
Edge functions for licence checks, LINE auth and account deletion.
LINE login
Uses LIFF inside LINE's in-app browser, where regular OAuth fails.
Overlap rules
can_insert_application() blocks clashing shifts, midnight-crossing included.
Thai-first UI
IBM Plex Sans Thai, mobile-first layout, PDPA-ready legal pages.
Built by a doctor who knew the problem first-hand
พญ. ณัชชามน ภัทรทิชากรกุล
แพทย์ผู้ช่วยสอน หลักสูตรนานาชาติ จุฬาฯ · MedCU
หมอทำแอปมาแก้ปัญหากลุ่ม LINE หางานทุกวัน ShiftIn started as a fix for the chat groups doctors scroll every day.
Where ShiftIn goes next
Launched
Live at shiftinth.com, free for doctors and clinics.
Paused
Taking what launch taught us into the next version.
Deeper trust
Reliability scores, dentists, LINE notifications.
Wider reach
Nurses, calendars, maps and payments.
Business model: software only. Clinic subscriptions and flat post boosts later on. ShiftIn never takes a cut of a doctor's pay.
ขอบคุณค่ะ · Thank you
Questions, feedback or ideas for v2 are very welcome.