119 lines
3.1 KiB
JavaScript
119 lines
3.1 KiB
JavaScript
// Recruiters schema mapping - recruiter natural language support
|
|
import { createSchemaMapping } from "./base-mapping.js";
|
|
import fs from "node:fs";
|
|
|
|
const SCHEMA_PATH = "../smatchitObjectOdmdb/schema/recruiters.json";
|
|
|
|
let recruitersSchema = null;
|
|
try {
|
|
if (fs.existsSync(SCHEMA_PATH)) {
|
|
recruitersSchema = JSON.parse(fs.readFileSync(SCHEMA_PATH, "utf-8"));
|
|
}
|
|
} catch (error) {
|
|
console.warn(`Warning: Could not load recruiters schema: ${error.message}`);
|
|
}
|
|
|
|
export const recruitersMapping = createSchemaMapping(
|
|
recruitersSchema,
|
|
"recruiters"
|
|
);
|
|
|
|
// Additional recruiters-specific enhancements
|
|
if (recruitersMapping.available) {
|
|
const recruitersEnhancements = {
|
|
// Identity & Contact
|
|
"recruiter id": "alias",
|
|
"recruiter name": "alias",
|
|
"hr id": "alias",
|
|
"hiring manager": "alias",
|
|
|
|
// Contact Information
|
|
"contact email": "email",
|
|
"recruiter email": "email",
|
|
"hiring email": "email",
|
|
"hr email": "email",
|
|
"contact phone": "phone",
|
|
"recruiter phone": "phone",
|
|
telephone: "phone",
|
|
"phone number": "phone",
|
|
|
|
// Company Associations
|
|
companies: "sirets",
|
|
employers: "sirets",
|
|
clients: "sirets",
|
|
businesses: "sirets",
|
|
organizations: "sirets",
|
|
"company list": "sirets",
|
|
"employer list": "sirets",
|
|
|
|
// Professional Information
|
|
tips: "tipsadvice",
|
|
advice: "tipsadvice",
|
|
articles: "tipsadvice",
|
|
guidance: "tipsadvice",
|
|
recommendations: "tipsadvice",
|
|
"help articles": "tipsadvice",
|
|
|
|
// Activity & Dates
|
|
joined: "dt_create",
|
|
registration: "dt_create",
|
|
"sign up": "dt_create",
|
|
"account created": "dt_create",
|
|
"last updated": "dt_update",
|
|
"profile updated": "dt_update",
|
|
modified: "dt_update",
|
|
|
|
// Status & Activity
|
|
"active recruiter": "status",
|
|
"recruiter status": "status",
|
|
"hiring status": "status",
|
|
availability: "status",
|
|
|
|
// Job Management
|
|
"job postings": "jobads",
|
|
"job ads": "jobads",
|
|
postings: "jobads",
|
|
advertisements: "jobads",
|
|
vacancies: "jobads",
|
|
openings: "jobads",
|
|
|
|
// Recruitment Activity
|
|
candidates: "candidates",
|
|
applicants: "applicants",
|
|
seekers: "seekers",
|
|
prospects: "prospects",
|
|
"talent pool": "candidates",
|
|
|
|
// Performance & Metrics
|
|
placements: "placements",
|
|
hires: "hires",
|
|
"successful hires": "placements",
|
|
"recruitment success": "placements",
|
|
};
|
|
|
|
// Merge enhancements into synonyms
|
|
Object.entries(recruitersEnhancements).forEach(([synonym, fieldName]) => {
|
|
recruitersMapping.synonyms[synonym.toLowerCase()] = fieldName;
|
|
});
|
|
|
|
// Add recruiter-specific context
|
|
recruitersMapping.context = {
|
|
description:
|
|
"Recruiters create and manage job postings, recruit for companies (sirets), and manage the hiring process",
|
|
primaryActions: [
|
|
"create jobads",
|
|
"manage candidates",
|
|
"process applications",
|
|
"schedule interviews",
|
|
],
|
|
relationships: {
|
|
sirets: "Companies the recruiter works for",
|
|
jobads: "Job postings created by this recruiter",
|
|
candidates: "People being recruited",
|
|
seekers: "Job seekers in recruitment process",
|
|
},
|
|
};
|
|
}
|
|
|
|
export default recruitersMapping;
|