Job Board
Operations & IoT · React + Node (Express) · 15 @molecule/* packages
Indeed-like job board with postings, applications, employer dashboard, and search — with built-in Stripe-backed subscription tiers
Try it
Opens instantly. Runs on sample data, so changes reset on reload.
What is inside
Screens (16)
- Landing
/ - Login
/login - Signup
/signup - ForgotPassword
/forgot-password - ResetPassword
/reset-password - Dashboard
/dashboard(signed in) - Jobs
/jobs(signed in) - JobDetail
/jobs/:id(signed in) - Applications
/applications(signed in) - Companies
/companies(signed in) - CompanyDetail
/companies/:id(signed in) - PostJob
/post-job(signed in) - Profile
/profile(signed in) - Settings
/settings(signed in) - JobApplicants
/jobs/:id/applicants(signed in) - Notifications
/notifications(signed in)
Data model (11 tables)
- applications — id, job_id, applicant_id, cover_letter, resume_url, status, created_at, updated_at
- companies — id, owner_id, name, logo_url, description, website, employee_count, contact_email, …
- devices — id, createdAt, updatedAt, userId, name, pushPlatform, pushSubscription, hasPushSubscription
- job_categories — id, name, slug, description, created_at, updated_at
- jobs — id, company_id, posted_by, title, description, location, salary_min, salary_max, …
- notifications — id, user_id, kind, body, link, read, created_at
- resource_tags — id, tagId, resourceType, resourceId, createdAt
- saved_jobs — id, user_id, job_id, saved_at
- tags — id, name, slug, color, description, createdAt, updatedAt
- user_profiles — user_id, headline, bio, resume_url, skills, location, willing_to_relocate, created_at, …
- payments — id, createdAt, updatedAt, userId, transactionId, productId, platformKey, data, …
API (8 handlers)
- applications
api/src/handlers/applications.ts - categories
api/src/handlers/categories.ts - companies
api/src/handlers/companies.ts - jobs
api/src/handlers/jobs.ts - notifications
api/src/handlers/notifications.ts - saved-jobs
api/src/handlers/saved-jobs.ts - uploads
api/src/handlers/uploads.ts - user-profiles
api/src/handlers/user-profiles.ts
Subscription tiers
free / pro / team — gated by: maxApplications, maxCategories, maxCompanies, maxJobs, advancedFeatures, canExport, retentionDays
Built from 15 @molecule/* packages
@molecule/api-database-postgresql@molecule/api-email-templates@molecule/api-emails-mailgun@molecule/api-entitlements@molecule/api-payments-stripe@molecule/api-resource-payment@molecule/api-resource-tag@molecule/api-resource-user@molecule/api-search-meilisearch@molecule/api-uploads-s3@molecule/app-billing-react@molecule/app-command-palette@molecule/app-data-table@molecule/app-file-upload@molecule/app-virtual-scroll
Required secrets
DATABASE_URLPostgreSQL connection stringMEILISEARCH_API_KEYMeiliSearch API keyMAILGUN_API_KEYMailgun API key for application notificationsMAILGUN_DOMAINMailgun sending domainAWS_S3_BUCKETS3 bucket for resume uploadsAWS_ACCESS_KEY_IDAWS access keyAWS_SECRET_ACCESS_KEYAWS secret key
The @molecule/* packages are Apache-2.0. The app you build from this template is yours to export and self-host. Licensing