FirstDevJob Docs
Technical

Database Schema

Convex database tables and relationships

Database Schema

FirstDevJob uses Convex as its database. The schema is defined in TypeScript.

Tables

jobs

Stores all job listings.

FieldTypeDescription
titlestringJob title
companystringCompany name
locationstringJob location
urlstringApplication link
roleLevelstring?intern, graduate, earlyCareer
tagsstring[]Technology tags
statusstringpending, approved, rejected, outdated

trackedApplications

Application tracking data.

FieldTypeDescription
userIdstringUser ID
jobIdId<"jobs">Reference to job
jobSnapshotobject?Cached job data used when source job is removed
statusstringsaved, applied, interviewing, offer, rejected, accepted
notesstring?User notes
_creationTimenumberCreated timestamp (Convex-managed)

profiles

User profile information.

FieldTypeDescription
userIdstringClerk user ID
displayNamestring?Display name
biostring?User bio
linksobject?Social links

Indexes

Key indexes for query performance:

  • jobs.by_status - Filter jobs by approval status
  • trackedApplications.by_userId - Get user's tracked applications
  • trackedApplications.by_userId_jobId - Unique tracking per user/job

On this page