Skip to content

Application Form

File: apps/landing/src/app/components/ApplicationForm.tsx Route: /opportunities/:id/apply


Overview

A multi-section application form that collects candidate information, uploads resumes/cover letters to Supabase Storage, and submits the application via a Supabase Edge Function.


Form Sections

Personal Information

FieldHTML ElementValidation
First Name<input>Required
Last Name<input>Required
Phone (country code + number)<select> + <input>Required, pattern validated
Email<input type="email">Required, email format
Location<input>Required

Resume and Cover Letter

FieldHTML ElementValidation
Resume<input type="file">Required, max 3.5MB, PDF/DOC/DOCX
Cover Letter<input type="file">Optional, max 3.5MB, PDF/DOC/DOCX
FieldHTML ElementValidation
LinkedIn URL<input type="url">Optional, URL format
Portfolio URL<input type="url">Optional, URL format

Additional Questions

FieldHTML ElementOptions
Work AuthorizedRadio buttonsYes / No
Needs SponsorshipRadio buttonsYes / No
Open to RelocationRadio buttonsYes / No
Why Interested<textarea>Optional
Reference ConsentRadio buttonsYes / No

File Upload Flow

  1. User selects file via <input type="file">
  2. On form submit, files are uploaded to Supabase Storage bucket applications
  3. File paths are stored and passed to the Edge Function submit-application