Variable: extractedJobSignalSchema
constextractedJobSignalSchema:any
Defined in: src/server/ai/extractors/job-signal.ts:26
Job-signal extractor (ADR-0040). A FALLBACK for unstructured input: most signals arrive already
structured (CareerOneStop fields, schema.org JobPosting JSON-LD) and skip this path entirely.
When a source yields only free text (a scraped career-page blob, a pasted listing), this asks the
AI boundary to pull out the same normalized fields the ingest pipeline expects.
STATUS: building block — NOT yet wired into the ingest path. The two live sources (CareerOneStop +
the schema.org file mapper) are structured and don't need it; when a free-text source is added,
map this ExtractedJobSignal into a JobSignalPayload and hand it to ingestJobSignals (the same
way mapSchemaOrg feeds that path in scripts/ingest-job-signals.mjs).
It does NOT classify the role family or score urgency — those are the pure lib (job-signal.ts),
run deterministically in the ingest action on the extracted title/text. It returns raw fields
only. Every field is nullable: extraction is best-effort and the ingest action tolerates gaps.
Privacy: we store the existence of a posting, never candidate PII. The prompt forbids returning applicant or contact-person data.