λats-sdk

Universal Schema

TypeScript definitions and normalization rules for StandardJob.

Universal Job Schema

ATS SDK normalizes raw provider responses into a canonical StandardJob object.

Type Definition

export interface StandardJob {
  /** Unique composite ID: `${provider}-${companySlug}-${externalId}` */
  id: string;
  /** The originating ATS identifier */
  externalId: string;
  /** ATS provider name */
  source: AtsProvider;
  /** Role title */
  title: string;
  /** Primary location string */
  location: string;
  /** Array of all mentioned locations */
  locations: string[];
  /** Workplace model: Remote, Hybrid, or On-site */
  workplace?: "Remote" | "Hybrid" | "On-site";
  /** Normalized employment type */
  employmentType?: "Full-time" | "Part-time" | "Contract" | "Internship";
  /** Seniority / experience level */
  experienceLevel?: "Entry" | "Mid" | "Senior" | "Lead" | "Executive";
  /** Parsed years of experience requirement */
  experienceYears?: string;
  /** Extracted salary or compensation string */
  salary?: string;
  /** Full HTML or plain-text job description */
  description: string;
  /** Associated department or functional team names */
  departments?: string[];
  /** Original application URL */
  url: string;
  /** ISO timestamp when job was published */
  publishedAt?: string;
  /** ISO timestamp when job was last updated */
  updatedAt?: string;
  /** Complete unaltered upstream response */
  raw?: unknown;
}

Normalization Guarantees

  1. Deterministic Workplace Classification: Automatic parsing of remote/hybrid tags in titles, locations, and workplace attributes.
  2. Standardized Seniority: Extracts terms like Staff, Principal, Senior, Lead, Junior, and Intern into normalized buckets.
  3. Lossless raw payload: The original upstream API response is always preserved on job.raw for custom field extraction.

Field Details

On this page