UNPKG

@upstart.gg/sdk

Version:

You can test the CLI without recompiling by running:

197 lines (195 loc) • 4.79 kB
import { Type } from "@sinclair/typebox"; //#region src/shared/datasources/internal/job-board/schema.ts const jobBoardCompanySchema = Type.Object({ basicInfo: Type.Object({ name: Type.String({ title: "Company Name" }), legalName: Type.Optional(Type.String({ title: "Legal Company Name" })), industry: Type.Array(Type.String({ title: "Industry", description: "Industries the company operates in" })), companySize: Type.String({ enum: [ "1-10", "11-50", "51-200", "201-500", "501-1000", "1000+" ], title: "Company Size" }), foundedYear: Type.Optional(Type.Number({ title: "Founded Year", minimum: 1800, maximum: 2025 })), description: Type.String({ title: "Company Description", minLength: 1, maxLength: 5e3, format: "markdown" }) }), contact: Type.Object({ email: Type.String({ title: "Company Email", pattern: "^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$" }), phone: Type.Optional(Type.String({ title: "Company Phone", pattern: "^\\+?[1-9]\\d{1,14}$" })), website: Type.String({ title: "Company Website", pattern: "^https?://.*" }), socialMedia: Type.Optional(Type.Object({ linkedin: Type.Optional(Type.String()), twitter: Type.Optional(Type.String()), facebook: Type.Optional(Type.String()) })) }), location: Type.Object({ headquarters: Type.Object({ address: Type.Optional(Type.String()), city: Type.String(), state: Type.Optional(Type.String()), country: Type.String(), postalCode: Type.Optional(Type.String()) }), hasRemoteWorkPolicy: Type.Boolean({ title: "Offers Remote Work", default: false }), offices: Type.Optional(Type.Array(Type.Object({ city: Type.String(), state: Type.Optional(Type.String()), country: Type.String() }))) }) }, { description: "Schema representing a job board listing with company and job details" }); const jobBoardListingSchema = Type.Array(Type.Object({ id: Type.String({ title: "Job ID", description: "Unique identifier for the job posting" }), basicInfo: Type.Object({ title: Type.String({ title: "Job Title" }), department: Type.String({ title: "Department" }), employmentType: Type.Array(Type.String({ enum: [ "Full-time", "Part-time", "Contract", "Temporary", "Internship", "Freelance" ] })), experienceLevel: Type.String({ enum: [ "Entry", "Associate", "Mid-Senior", "Senior", "Lead", "Executive" ] }), workplaceType: Type.String({ enum: [ "On-site", "Hybrid", "Remote" ] }) }), compensation: Type.Object({ salary: Type.Optional(Type.Object({ min: Type.Number({ minimum: 0 }), max: Type.Number({ minimum: 0 }), currency: Type.String({ default: "USD" }), period: Type.String({ enum: [ "Hour", "Day", "Week", "Month", "Year" ] }) })), benefits: Type.Optional(Type.Array(Type.String({ enum: [ "Health Insurance", "Dental Insurance", "Vision Insurance", "401(k)", "Stock Options", "Paid Time Off", "Professional Development", "Gym Membership", "Remote Work", "Flexible Hours", "Other" ] }))), additionalCompensation: Type.Optional(Type.String()) }), details: Type.Object({ description: Type.String({ title: "Job Description", minLength: 1, maxLength: 1e4 }), responsibilities: Type.Array(Type.String()), requirements: Type.Object({ required: Type.Array(Type.String()), preferred: Type.Optional(Type.Array(Type.String())) }), skills: Type.Array(Type.Object({ name: Type.String(), level: Type.Optional(Type.String({ enum: [ "Beginner", "Intermediate", "Advanced", "Expert" ] })), required: Type.Boolean({ default: true }) })) }), applicationProcess: Type.Object({ howToApply: Type.String({ enum: [ "Direct", "External", "Email" ] }), applicationUrl: Type.Optional(Type.String()), applicationEmail: Type.Optional(Type.String({ pattern: "^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$" })), requiredDocuments: Type.Array(Type.String({ enum: [ "Resume", "Cover Letter", "Portfolio", "References", "Other" ] })) }), metadata: Type.Object({ postingDate: Type.String({ title: "Posting Date", format: "date" }), expirationDate: Type.Optional(Type.String({ title: "Expiration Date", format: "date" })), status: Type.String({ enum: [ "Draft", "Active", "Paused", "Filled", "Expired", "Cancelled" ], default: "Draft" }), isSponsored: Type.Boolean({ default: false }), isRemoteEligible: Type.Boolean({ default: false }), isVisaSponsored: Type.Boolean({ default: false }) }) })); //#endregion export { jobBoardCompanySchema, jobBoardListingSchema }; //# sourceMappingURL=schema.js.map