Default aggregated ads to Job, not Shift (stop fabricating shift dates/times)
A generic hiring ad like «پرستار درمانگاه» was published as a dated SHIFT with an invented date («فردا») and default hours («۰۸:۰۰–۱۴:۰۰») the source never stated — because classification defaulted to Shift. Now a dated Shift is only produced when the text carries an explicit shift signal (شیفت/آنکال/کشیک/نوبت); everything else is an ongoing hiring post → Job (no date to invent). Fixed in both the parser default and the Publish branch (so an AI mislabel can''t force a shift either). ReclassifyMisclassifiedShiftsAsync (in the post-ingest auto-cleanup) converts the existing signal-less aggregated shifts into jobs in place — copies the content to a JobOpening and archives the old shift (its URL 410s). After one pass it''s a no-op since new ads no longer become shifts. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -69,8 +69,11 @@ public class HeuristicListingParser : IListingParser
|
||||
}
|
||||
else
|
||||
{
|
||||
p.Kind = (jobSignals && !shiftSignals) ? ListingKind.Job : ListingKind.Shift;
|
||||
p.Notes.Add(p.Kind == ListingKind.Job ? "نوع: استخدام (تشخیص خودکار)" : "نوع: شیفت (تشخیص خودکار)");
|
||||
// A dated SHIFT requires an explicit shift signal («شیفت/آنکال/کشیک/نوبت»). Otherwise the ad
|
||||
// is an ongoing hiring post → Job. (Defaulting to Shift forced a fabricated date/time onto
|
||||
// generic ads like «پرستار درمانگاه», which the source never stated.)
|
||||
p.Kind = shiftSignals ? ListingKind.Shift : ListingKind.Job;
|
||||
p.Notes.Add(p.Kind == ListingKind.Shift ? "نوع: شیفت (تشخیص خودکار)" : "نوع: استخدام (تشخیص خودکار)");
|
||||
}
|
||||
|
||||
// --- Roles (an ad can name several at once: «پرستار سالمند و کودک و همراه بیمار») ---
|
||||
|
||||
Reference in New Issue
Block a user