@thejob/schema 2.0.4 → 2.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/settings.json +7 -0
- package/dist/index.cjs +1350 -130
- package/dist/index.d.cts +430 -1
- package/dist/index.d.ts +430 -1
- package/dist/index.js +1328 -125
- package/package.json +1 -1
- package/src/index.ts +8 -0
- package/src/job/job-taxonomy.constant.ts +1104 -0
- package/src/job/job-taxonomy.util.ts +111 -0
- package/src/job/job.schema.ts +30 -0
- package/src/post/post.constant.ts +7 -0
- package/src/post/post.schema.ts +68 -0
package/dist/index.cjs
CHANGED
|
@@ -61,9 +61,13 @@ __export(index_exports, {
|
|
|
61
61
|
GroupTranslationSchema: () => GroupTranslationSchema,
|
|
62
62
|
GroupVisibility: () => GroupVisibility,
|
|
63
63
|
InputQuestionSchema: () => InputQuestionSchema,
|
|
64
|
+
JOB_TAXONOMY: () => JOB_TAXONOMY,
|
|
65
|
+
JobCategory: () => JobCategory,
|
|
66
|
+
JobIndustry: () => JobIndustry,
|
|
64
67
|
JobSchema: () => JobSchema,
|
|
65
68
|
JobSearchUrgency: () => JobSearchUrgency,
|
|
66
69
|
JobStatus: () => JobStatus,
|
|
70
|
+
JobSubCategory: () => JobSubCategory,
|
|
67
71
|
LocationSchema: () => LocationSchema,
|
|
68
72
|
MIN_SALARY_LOWER_BOUND: () => MIN_SALARY_LOWER_BOUND,
|
|
69
73
|
MIN_SALARY_UPPER_BOUND: () => MIN_SALARY_UPPER_BOUND,
|
|
@@ -71,6 +75,8 @@ __export(index_exports, {
|
|
|
71
75
|
PageStatus: () => PageStatus,
|
|
72
76
|
PageType: () => PageType,
|
|
73
77
|
PaginationSchema: () => PaginationSchema,
|
|
78
|
+
PostSchema: () => PostSchema,
|
|
79
|
+
PostStatus: () => PostStatus,
|
|
74
80
|
ProficiencyLevel: () => ProficiencyLevel,
|
|
75
81
|
QuestionSchema: () => QuestionSchema,
|
|
76
82
|
QuestionType: () => QuestionType,
|
|
@@ -95,10 +101,14 @@ __export(index_exports, {
|
|
|
95
101
|
SupportedEmployeeCounts: () => SupportedEmployeeCounts,
|
|
96
102
|
SupportedEmploymentTypes: () => SupportedEmploymentTypes,
|
|
97
103
|
SupportedExperienceLevels: () => SupportedExperienceLevels,
|
|
104
|
+
SupportedJobCategories: () => SupportedJobCategories,
|
|
105
|
+
SupportedJobIndustries: () => SupportedJobIndustries,
|
|
98
106
|
SupportedJobSearchUrgencies: () => SupportedJobSearchUrgencies,
|
|
99
107
|
SupportedJobStatuses: () => SupportedJobStatuses,
|
|
108
|
+
SupportedJobSubCategories: () => SupportedJobSubCategories,
|
|
100
109
|
SupportedPageStatuses: () => SupportedPageStatuses,
|
|
101
110
|
SupportedPageTypes: () => SupportedPageTypes,
|
|
111
|
+
SupportedPostStatuses: () => SupportedPostStatuses,
|
|
102
112
|
SupportedProficiencyLevels: () => SupportedProficiencyLevels,
|
|
103
113
|
SupportedQuestionTypes: () => SupportedQuestionTypes,
|
|
104
114
|
SupportedReferralSources: () => SupportedReferralSources,
|
|
@@ -111,6 +121,7 @@ __export(index_exports, {
|
|
|
111
121
|
SupportedUserRoles: () => SupportedUserRoles,
|
|
112
122
|
SupportedUserStatuses: () => SupportedUserStatuses,
|
|
113
123
|
SupportedWorkModes: () => SupportedWorkModes,
|
|
124
|
+
TAXONOMY_LABELS: () => TAXONOMY_LABELS,
|
|
114
125
|
TermsAcceptedSchema: () => TermsAcceptedSchema,
|
|
115
126
|
UserAdditionalInfoSchema: () => UserAdditionalInfoSchema,
|
|
116
127
|
UserCertificationSchema: () => UserCertificationSchema,
|
|
@@ -131,8 +142,14 @@ __export(index_exports, {
|
|
|
131
142
|
UserStatus: () => UserStatus,
|
|
132
143
|
WorkExperienceSchema: () => WorkExperienceSchema,
|
|
133
144
|
WorkMode: () => WorkMode,
|
|
145
|
+
categoryOfIndustry: () => categoryOfIndustry,
|
|
146
|
+
categoryOfSubCategory: () => categoryOfSubCategory,
|
|
134
147
|
dateString: () => dateString,
|
|
135
|
-
|
|
148
|
+
deriveIndustry: () => deriveIndustry,
|
|
149
|
+
getSchemaByQuestion: () => getSchemaByQuestion,
|
|
150
|
+
industriesOfCategory: () => industriesOfCategory,
|
|
151
|
+
industryOfSubCategory: () => industryOfSubCategory,
|
|
152
|
+
subCategoriesOfIndustry: () => subCategoriesOfIndustry
|
|
136
153
|
});
|
|
137
154
|
module.exports = __toCommonJS(index_exports);
|
|
138
155
|
|
|
@@ -819,6 +836,20 @@ var JobSchema = (0, import_yup18.object)({
|
|
|
819
836
|
keywords: (0, import_yup18.array)().of((0, import_yup18.string)()).optional().label("Keywords")
|
|
820
837
|
}).nullable().optional().label("SEO Tags"),
|
|
821
838
|
jdSummary: (0, import_yup18.string)().optional().label("JD Summary"),
|
|
839
|
+
/**
|
|
840
|
+
* Structured, model-extracted sections of the posting, re-organized into clean
|
|
841
|
+
* bullet points. This is our OWN unique presentation of the job (rendered as the
|
|
842
|
+
* primary, server-side page content) so the page adds value over the raw scraped
|
|
843
|
+
* description and is not penalized by Google as duplicate content. All sections
|
|
844
|
+
* optional: absent on jobs not yet (re-)enriched, and any section is `[]`/omitted
|
|
845
|
+
* when the posting genuinely has none.
|
|
846
|
+
*/
|
|
847
|
+
jobHighlights: (0, import_yup18.object)({
|
|
848
|
+
responsibilities: (0, import_yup18.array)().of((0, import_yup18.string)()).optional().label("Responsibilities"),
|
|
849
|
+
requirements: (0, import_yup18.array)().of((0, import_yup18.string)()).optional().label("Requirements"),
|
|
850
|
+
benefits: (0, import_yup18.array)().of((0, import_yup18.string)()).optional().label("Benefits"),
|
|
851
|
+
qualifications: (0, import_yup18.array)().of((0, import_yup18.string)()).optional().label("Qualifications")
|
|
852
|
+
}).nullable().optional().label("Job Highlights"),
|
|
822
853
|
canCreateAlert: (0, import_yup18.boolean)().optional().label("Can create alert"),
|
|
823
854
|
canDirectApply: (0, import_yup18.boolean)().optional().label("Can direct apply"),
|
|
824
855
|
hasApplied: (0, import_yup18.boolean)().optional().label("Has applied"),
|
|
@@ -835,6 +866,18 @@ var JobSchema = (0, import_yup18.object)({
|
|
|
835
866
|
isNegotiable: (0, import_yup18.boolean)().nullable().optional().default(true).label("Is Negotiable")
|
|
836
867
|
}).nullable().optional().label("Salary Range"),
|
|
837
868
|
reports: (0, import_yup18.array)().of(UserIdAndCreatedAtSchema).optional().label("Reports"),
|
|
869
|
+
// Taxonomy fields are constants (see job-taxonomy.constant.ts), stored as slugs and
|
|
870
|
+
// translated for display. They are deliberately NOT `oneOf`-constrained here: a value
|
|
871
|
+
// outside the taxonomy must be DROPPED, never a reason to reject the posting. Yup
|
|
872
|
+
// `oneOf` fails the whole object, so one stale subCategory would cost a user their
|
|
873
|
+
// entire job on the create/edit form, and a single drifted LLM value would bin an
|
|
874
|
+
// otherwise-good enriched job.
|
|
875
|
+
//
|
|
876
|
+
// Callers sanitize instead: jobs-service's sanitizeTaxonomy() coerces unknown values
|
|
877
|
+
// to null / filters them out of the array before validation. Taxonomies change over
|
|
878
|
+
// time (values get renamed, retired, added), so stored jobs will always outlive the
|
|
879
|
+
// enum — being lenient here is what lets the taxonomy evolve without a migration
|
|
880
|
+
// gate on every write.
|
|
838
881
|
category: (0, import_yup18.string)().nullable().optional().label("Category"),
|
|
839
882
|
industry: (0, import_yup18.string)().nullable().optional().label("Industry"),
|
|
840
883
|
subCategories: (0, import_yup18.array)().of((0, import_yup18.string)().trim().required()).nullable().optional().label("Sub Categories"),
|
|
@@ -844,15 +887,1175 @@ var JobSchema = (0, import_yup18.object)({
|
|
|
844
887
|
featuredMarkets: (0, import_yup18.array)().of((0, import_yup18.string)().required()).optional().default([]).label("Featured markets")
|
|
845
888
|
}).concat(DbDefaultSchema).noUnknown().label("Job");
|
|
846
889
|
|
|
847
|
-
// src/
|
|
890
|
+
// src/job/job-taxonomy.constant.ts
|
|
891
|
+
var JobCategory = /* @__PURE__ */ ((JobCategory2) => {
|
|
892
|
+
JobCategory2["TechnologyDataAndDigital"] = "technology_data_and_digital";
|
|
893
|
+
JobCategory2["HealthcareAndLifeSciences"] = "healthcare_and_life_sciences";
|
|
894
|
+
JobCategory2["AgricultureEnergyAndEnvironment"] = "agriculture_energy_and_environment";
|
|
895
|
+
JobCategory2["FinanceBankingAndLegal"] = "finance_banking_and_legal";
|
|
896
|
+
JobCategory2["ConstructionEngineeringAndTrades"] = "construction_engineering_and_trades";
|
|
897
|
+
JobCategory2["MarketingMediaAndCreative"] = "marketing_media_and_creative";
|
|
898
|
+
JobCategory2["LogisticsSalesAndOperations"] = "logistics_sales_and_operations";
|
|
899
|
+
JobCategory2["EducationAndPublicService"] = "education_and_public_service";
|
|
900
|
+
JobCategory2["HospitalityFoodAndTourism"] = "hospitality_food_and_tourism";
|
|
901
|
+
JobCategory2["ManufacturingAndProduction"] = "manufacturing_and_production";
|
|
902
|
+
JobCategory2["RetailAndConsumerServices"] = "retail_and_consumer_services";
|
|
903
|
+
JobCategory2["AutomotiveAndTransportServices"] = "automotive_and_transport_services";
|
|
904
|
+
return JobCategory2;
|
|
905
|
+
})(JobCategory || {});
|
|
906
|
+
var SupportedJobCategories = Object.values(JobCategory);
|
|
907
|
+
var JobIndustry = /* @__PURE__ */ ((JobIndustry2) => {
|
|
908
|
+
JobIndustry2["SoftwareAndWebDevelopment"] = "software_and_web_development";
|
|
909
|
+
JobIndustry2["DataAIAndAnalytics"] = "data_ai_and_analytics";
|
|
910
|
+
JobIndustry2["ITInfrastructureAndSecurity"] = "it_infrastructure_and_security";
|
|
911
|
+
JobIndustry2["ProductAndDesign"] = "product_and_design";
|
|
912
|
+
JobIndustry2["MedicalPractice"] = "medical_practice";
|
|
913
|
+
JobIndustry2["TherapyAndRehabilitation"] = "therapy_and_rehabilitation";
|
|
914
|
+
JobIndustry2["BioTechAndPharmaceuticals"] = "biotech_and_pharmaceuticals";
|
|
915
|
+
JobIndustry2["MentalHealth"] = "mental_health";
|
|
916
|
+
JobIndustry2["RenewableEnergy"] = "renewable_energy";
|
|
917
|
+
JobIndustry2["NaturalResourcesAndUtilities"] = "natural_resources_and_utilities";
|
|
918
|
+
JobIndustry2["AgricultureAndForestry"] = "agriculture_and_forestry";
|
|
919
|
+
JobIndustry2["EnvironmentalServices"] = "environmental_services";
|
|
920
|
+
JobIndustry2["BankingAndInvestments"] = "banking_and_investments";
|
|
921
|
+
JobIndustry2["FinTechAndInsurance"] = "fintech_and_insurance";
|
|
922
|
+
JobIndustry2["AccountingAndAudit"] = "accounting_and_audit";
|
|
923
|
+
JobIndustry2["LegalServices"] = "legal_services";
|
|
924
|
+
JobIndustry2["ArchitectureAndPlanning"] = "architecture_and_planning";
|
|
925
|
+
JobIndustry2["CivilAndIndustrialEngineering"] = "civil_and_industrial_engineering";
|
|
926
|
+
JobIndustry2["SkilledTrades"] = "skilled_trades";
|
|
927
|
+
JobIndustry2["MarketingAndAdvertising"] = "marketing_and_advertising";
|
|
928
|
+
JobIndustry2["MediaAndEntertainment"] = "media_and_entertainment";
|
|
929
|
+
JobIndustry2["CreativeArtsAndFashion"] = "creative_arts_and_fashion";
|
|
930
|
+
JobIndustry2["SupplyChainAndTransport"] = "supply_chain_and_transport";
|
|
931
|
+
JobIndustry2["SalesAndBusinessDevelopment"] = "sales_and_business_development";
|
|
932
|
+
JobIndustry2["HRAndAdmin"] = "hr_and_admin";
|
|
933
|
+
JobIndustry2["EducationAndTraining"] = "education_and_training";
|
|
934
|
+
JobIndustry2["GovernmentAndNonProfit"] = "government_and_non_profit";
|
|
935
|
+
JobIndustry2["FoodAndBeverageService"] = "food_and_beverage_service";
|
|
936
|
+
JobIndustry2["AccommodationAndTravel"] = "accommodation_and_travel";
|
|
937
|
+
JobIndustry2["ProductionAndAssembly"] = "production_and_assembly";
|
|
938
|
+
JobIndustry2["QualityAndProcess"] = "quality_and_process";
|
|
939
|
+
JobIndustry2["RetailOperations"] = "retail_operations";
|
|
940
|
+
JobIndustry2["CustomerService"] = "customer_service";
|
|
941
|
+
JobIndustry2["VehicleServiceAndRepair"] = "vehicle_service_and_repair";
|
|
942
|
+
JobIndustry2["DrivingAndTransport"] = "driving_and_transport";
|
|
943
|
+
return JobIndustry2;
|
|
944
|
+
})(JobIndustry || {});
|
|
945
|
+
var SupportedJobIndustries = Object.values(JobIndustry);
|
|
946
|
+
var JobSubCategory = /* @__PURE__ */ ((JobSubCategory2) => {
|
|
947
|
+
JobSubCategory2["Frontend"] = "frontend";
|
|
948
|
+
JobSubCategory2["Backend"] = "backend";
|
|
949
|
+
JobSubCategory2["FullStack"] = "full_stack";
|
|
950
|
+
JobSubCategory2["MobileAppDev"] = "mobile_app_dev";
|
|
951
|
+
JobSubCategory2["GameDevelopment"] = "game_development";
|
|
952
|
+
JobSubCategory2["EmbeddedSystems"] = "embedded_systems";
|
|
953
|
+
JobSubCategory2["QAAndTesting"] = "qa_and_testing";
|
|
954
|
+
JobSubCategory2["SoftwareEngineering"] = "software_engineering";
|
|
955
|
+
JobSubCategory2["WebDevelopment"] = "web_development";
|
|
956
|
+
JobSubCategory2["SoftwareArchitecture"] = "software_architecture";
|
|
957
|
+
JobSubCategory2["DataScience"] = "data_science";
|
|
958
|
+
JobSubCategory2["MachineLearning"] = "machine_learning";
|
|
959
|
+
JobSubCategory2["ArtificialIntelligence"] = "artificial_intelligence";
|
|
960
|
+
JobSubCategory2["BusinessIntelligence"] = "business_intelligence";
|
|
961
|
+
JobSubCategory2["DataEngineering"] = "data_engineering";
|
|
962
|
+
JobSubCategory2["DataVisualization"] = "data_visualization";
|
|
963
|
+
JobSubCategory2["DataAnalysis"] = "data_analysis";
|
|
964
|
+
JobSubCategory2["DeepLearning"] = "deep_learning";
|
|
965
|
+
JobSubCategory2["Cybersecurity"] = "cybersecurity";
|
|
966
|
+
JobSubCategory2["CloudEngineering"] = "cloud_engineering";
|
|
967
|
+
JobSubCategory2["DevOps"] = "devops";
|
|
968
|
+
JobSubCategory2["NetworkAdministration"] = "network_administration";
|
|
969
|
+
JobSubCategory2["SystemsEngineering"] = "systems_engineering";
|
|
970
|
+
JobSubCategory2["DatabaseAdministration"] = "database_administration";
|
|
971
|
+
JobSubCategory2["ITSupport"] = "it_support";
|
|
972
|
+
JobSubCategory2["TechnicalSupport"] = "technical_support";
|
|
973
|
+
JobSubCategory2["SiteReliabilityEngineering"] = "site_reliability_engineering";
|
|
974
|
+
JobSubCategory2["ProductManagement"] = "product_management";
|
|
975
|
+
JobSubCategory2["UIUXDesign"] = "ui_ux_design";
|
|
976
|
+
JobSubCategory2["UserResearch"] = "user_research";
|
|
977
|
+
JobSubCategory2["InteractionDesign"] = "interaction_design";
|
|
978
|
+
JobSubCategory2["TechnicalWriting"] = "technical_writing";
|
|
979
|
+
JobSubCategory2["ProductMarketing"] = "product_marketing";
|
|
980
|
+
JobSubCategory2["BusinessAnalysis"] = "business_analysis";
|
|
981
|
+
JobSubCategory2["ProjectManagement"] = "project_management";
|
|
982
|
+
JobSubCategory2["ProgramManagement"] = "program_management";
|
|
983
|
+
JobSubCategory2["Nursing"] = "nursing";
|
|
984
|
+
JobSubCategory2["GeneralPractice"] = "general_practice";
|
|
985
|
+
JobSubCategory2["Surgery"] = "surgery";
|
|
986
|
+
JobSubCategory2["Pediatrics"] = "pediatrics";
|
|
987
|
+
JobSubCategory2["EmergencyMedicine"] = "emergency_medicine";
|
|
988
|
+
JobSubCategory2["Radiology"] = "radiology";
|
|
989
|
+
JobSubCategory2["Anesthesiology"] = "anesthesiology";
|
|
990
|
+
JobSubCategory2["Geriatrics"] = "geriatrics";
|
|
991
|
+
JobSubCategory2["Oncology"] = "oncology";
|
|
992
|
+
JobSubCategory2["Dentistry"] = "dentistry";
|
|
993
|
+
JobSubCategory2["DentalHygiene"] = "dental_hygiene";
|
|
994
|
+
JobSubCategory2["MedicalSecretary"] = "medical_secretary";
|
|
995
|
+
JobSubCategory2["Veterinary"] = "veterinary";
|
|
996
|
+
JobSubCategory2["PhysicalTherapy"] = "physical_therapy";
|
|
997
|
+
JobSubCategory2["OccupationalTherapy"] = "occupational_therapy";
|
|
998
|
+
JobSubCategory2["SpeechPathology"] = "speech_pathology";
|
|
999
|
+
JobSubCategory2["RespiratoryTherapy"] = "respiratory_therapy";
|
|
1000
|
+
JobSubCategory2["ElderlyCare"] = "elderly_care";
|
|
1001
|
+
JobSubCategory2["DisabilitySupport"] = "disability_support";
|
|
1002
|
+
JobSubCategory2["ClinicalResearch"] = "clinical_research";
|
|
1003
|
+
JobSubCategory2["DrugDevelopment"] = "drug_development";
|
|
1004
|
+
JobSubCategory2["Bioinformatics"] = "bioinformatics";
|
|
1005
|
+
JobSubCategory2["Microbiology"] = "microbiology";
|
|
1006
|
+
JobSubCategory2["Pharmacology"] = "pharmacology";
|
|
1007
|
+
JobSubCategory2["LaboratoryTech"] = "laboratory_tech";
|
|
1008
|
+
JobSubCategory2["Psychology"] = "psychology";
|
|
1009
|
+
JobSubCategory2["Counseling"] = "counseling";
|
|
1010
|
+
JobSubCategory2["Psychiatry"] = "psychiatry";
|
|
1011
|
+
JobSubCategory2["SocialWork"] = "social_work";
|
|
1012
|
+
JobSubCategory2["AddictionRecovery"] = "addiction_recovery";
|
|
1013
|
+
JobSubCategory2["ChildWelfare"] = "child_welfare";
|
|
1014
|
+
JobSubCategory2["SolarEnergy"] = "solar_energy";
|
|
1015
|
+
JobSubCategory2["WindPower"] = "wind_power";
|
|
1016
|
+
JobSubCategory2["Hydroelectric"] = "hydroelectric";
|
|
1017
|
+
JobSubCategory2["BatteryAndStorageTech"] = "battery_and_storage_tech";
|
|
1018
|
+
JobSubCategory2["Geothermal"] = "geothermal";
|
|
1019
|
+
JobSubCategory2["Biofuels"] = "biofuels";
|
|
1020
|
+
JobSubCategory2["OilAndGas"] = "oil_and_gas";
|
|
1021
|
+
JobSubCategory2["MiningAndGeology"] = "mining_and_geology";
|
|
1022
|
+
JobSubCategory2["NuclearEnergy"] = "nuclear_energy";
|
|
1023
|
+
JobSubCategory2["WaterManagement"] = "water_management";
|
|
1024
|
+
JobSubCategory2["ElectricalGridOperations"] = "electrical_grid_operations";
|
|
1025
|
+
JobSubCategory2["AgriTech"] = "agri_tech";
|
|
1026
|
+
JobSubCategory2["Horticulture"] = "horticulture";
|
|
1027
|
+
JobSubCategory2["LivestockManagement"] = "livestock_management";
|
|
1028
|
+
JobSubCategory2["Forestry"] = "forestry";
|
|
1029
|
+
JobSubCategory2["FisheriesAndAquaculture"] = "fisheries_and_aquaculture";
|
|
1030
|
+
JobSubCategory2["SoilScience"] = "soil_science";
|
|
1031
|
+
JobSubCategory2["SustainabilityConsulting"] = "sustainability_consulting";
|
|
1032
|
+
JobSubCategory2["WasteManagement"] = "waste_management";
|
|
1033
|
+
JobSubCategory2["WildlifeConservation"] = "wildlife_conservation";
|
|
1034
|
+
JobSubCategory2["CarbonAccounting"] = "carbon_accounting";
|
|
1035
|
+
JobSubCategory2["Ecology"] = "ecology";
|
|
1036
|
+
JobSubCategory2["OccupationalHealthAndSafety"] = "occupational_health_and_safety";
|
|
1037
|
+
JobSubCategory2["Sustainability"] = "sustainability";
|
|
1038
|
+
JobSubCategory2["InvestmentBanking"] = "investment_banking";
|
|
1039
|
+
JobSubCategory2["CorporateFinance"] = "corporate_finance";
|
|
1040
|
+
JobSubCategory2["WealthManagement"] = "wealth_management";
|
|
1041
|
+
JobSubCategory2["VentureCapital"] = "venture_capital";
|
|
1042
|
+
JobSubCategory2["AssetManagement"] = "asset_management";
|
|
1043
|
+
JobSubCategory2["FinancialAnalysis"] = "financial_analysis";
|
|
1044
|
+
JobSubCategory2["FinancialPlanning"] = "financial_planning";
|
|
1045
|
+
JobSubCategory2["RiskManagement"] = "risk_management";
|
|
1046
|
+
JobSubCategory2["CreditAnalysis"] = "credit_analysis";
|
|
1047
|
+
JobSubCategory2["CryptocurrencyAndWeb3"] = "cryptocurrency_and_web3";
|
|
1048
|
+
JobSubCategory2["DigitalPayments"] = "digital_payments";
|
|
1049
|
+
JobSubCategory2["ActuarialScience"] = "actuarial_science";
|
|
1050
|
+
JobSubCategory2["InsuranceUnderwriting"] = "insurance_underwriting";
|
|
1051
|
+
JobSubCategory2["ClaimsAdjustment"] = "claims_adjustment";
|
|
1052
|
+
JobSubCategory2["PublicAccounting"] = "public_accounting";
|
|
1053
|
+
JobSubCategory2["Taxation"] = "taxation";
|
|
1054
|
+
JobSubCategory2["ForensicAccounting"] = "forensic_accounting";
|
|
1055
|
+
JobSubCategory2["AuditAndAssurance"] = "audit_and_assurance";
|
|
1056
|
+
JobSubCategory2["Bookkeeping"] = "bookkeeping";
|
|
1057
|
+
JobSubCategory2["AccountsPayable"] = "accounts_payable";
|
|
1058
|
+
JobSubCategory2["AccountsReceivable"] = "accounts_receivable";
|
|
1059
|
+
JobSubCategory2["Payroll"] = "payroll";
|
|
1060
|
+
JobSubCategory2["Collections"] = "collections";
|
|
1061
|
+
JobSubCategory2["CorporateLaw"] = "corporate_law";
|
|
1062
|
+
JobSubCategory2["Litigation"] = "litigation";
|
|
1063
|
+
JobSubCategory2["IntellectualProperty"] = "intellectual_property";
|
|
1064
|
+
JobSubCategory2["ComplianceAndRegulatory"] = "compliance_and_regulatory";
|
|
1065
|
+
JobSubCategory2["ParalegalServices"] = "paralegal_services";
|
|
1066
|
+
JobSubCategory2["Paralegal"] = "paralegal";
|
|
1067
|
+
JobSubCategory2["UrbanPlanning"] = "urban_planning";
|
|
1068
|
+
JobSubCategory2["InteriorDesign"] = "interior_design";
|
|
1069
|
+
JobSubCategory2["LandscapeArchitecture"] = "landscape_architecture";
|
|
1070
|
+
JobSubCategory2["CADBIMManagement"] = "cad_bim_management";
|
|
1071
|
+
JobSubCategory2["ConstructionManagement"] = "construction_management";
|
|
1072
|
+
JobSubCategory2["SiteSupervision"] = "site_supervision";
|
|
1073
|
+
JobSubCategory2["StructuralEngineering"] = "structural_engineering";
|
|
1074
|
+
JobSubCategory2["MechanicalEngineering"] = "mechanical_engineering";
|
|
1075
|
+
JobSubCategory2["ElectricalEngineering"] = "electrical_engineering";
|
|
1076
|
+
JobSubCategory2["RoboticsAndAutomation"] = "robotics_and_automation";
|
|
1077
|
+
JobSubCategory2["ChemicalEngineering"] = "chemical_engineering";
|
|
1078
|
+
JobSubCategory2["IndustrialEngineering"] = "industrial_engineering";
|
|
1079
|
+
JobSubCategory2["ProcessEngineering"] = "process_engineering";
|
|
1080
|
+
JobSubCategory2["Mechatronics"] = "mechatronics";
|
|
1081
|
+
JobSubCategory2["Electrician"] = "electrician";
|
|
1082
|
+
JobSubCategory2["PlumbingAndHVAC"] = "plumbing_and_hvac";
|
|
1083
|
+
JobSubCategory2["Carpentry"] = "carpentry";
|
|
1084
|
+
JobSubCategory2["Welding"] = "welding";
|
|
1085
|
+
JobSubCategory2["HeavyEquipmentOperation"] = "heavy_equipment_operation";
|
|
1086
|
+
JobSubCategory2["Masonry"] = "masonry";
|
|
1087
|
+
JobSubCategory2["Machining"] = "machining";
|
|
1088
|
+
JobSubCategory2["FacilitiesMaintenance"] = "facilities_maintenance";
|
|
1089
|
+
JobSubCategory2["DigitalMarketing"] = "digital_marketing";
|
|
1090
|
+
JobSubCategory2["SEOSEM"] = "seo_sem";
|
|
1091
|
+
JobSubCategory2["ContentStrategy"] = "content_strategy";
|
|
1092
|
+
JobSubCategory2["SocialMediaManagement"] = "social_media_management";
|
|
1093
|
+
JobSubCategory2["BrandManagement"] = "brand_management";
|
|
1094
|
+
JobSubCategory2["MarketResearch"] = "market_research";
|
|
1095
|
+
JobSubCategory2["MarketingStrategy"] = "marketing_strategy";
|
|
1096
|
+
JobSubCategory2["Journalism"] = "journalism";
|
|
1097
|
+
JobSubCategory2["VideoProduction"] = "video_production";
|
|
1098
|
+
JobSubCategory2["AnimationAndVFX"] = "animation_and_vfx";
|
|
1099
|
+
JobSubCategory2["AudioEngineering"] = "audio_engineering";
|
|
1100
|
+
JobSubCategory2["Photography"] = "photography";
|
|
1101
|
+
JobSubCategory2["Broadcasting"] = "broadcasting";
|
|
1102
|
+
JobSubCategory2["GraphicDesign"] = "graphic_design";
|
|
1103
|
+
JobSubCategory2["FineArts"] = "fine_arts";
|
|
1104
|
+
JobSubCategory2["FashionDesign"] = "fashion_design";
|
|
1105
|
+
JobSubCategory2["ApparelManufacturing"] = "apparel_manufacturing";
|
|
1106
|
+
JobSubCategory2["TextileDesign"] = "textile_design";
|
|
1107
|
+
JobSubCategory2["LogisticsManagement"] = "logistics_management";
|
|
1108
|
+
JobSubCategory2["Warehousing"] = "warehousing";
|
|
1109
|
+
JobSubCategory2["FleetOperations"] = "fleet_operations";
|
|
1110
|
+
JobSubCategory2["FreightForwarding"] = "freight_forwarding";
|
|
1111
|
+
JobSubCategory2["Procurement"] = "procurement";
|
|
1112
|
+
JobSubCategory2["Purchasing"] = "purchasing";
|
|
1113
|
+
JobSubCategory2["WarehouseOperations"] = "warehouse_operations";
|
|
1114
|
+
JobSubCategory2["FreightAndShipping"] = "freight_and_shipping";
|
|
1115
|
+
JobSubCategory2["EnterpriseSales"] = "enterprise_sales";
|
|
1116
|
+
JobSubCategory2["AccountManagement"] = "account_management";
|
|
1117
|
+
JobSubCategory2["RetailManagement"] = "retail_management";
|
|
1118
|
+
JobSubCategory2["RealEstateSales"] = "real_estate_sales";
|
|
1119
|
+
JobSubCategory2["CustomerSuccess"] = "customer_success";
|
|
1120
|
+
JobSubCategory2["SalesManagement"] = "sales_management";
|
|
1121
|
+
JobSubCategory2["SalesOperations"] = "sales_operations";
|
|
1122
|
+
JobSubCategory2["SalesSupport"] = "sales_support";
|
|
1123
|
+
JobSubCategory2["TechnicalSales"] = "technical_sales";
|
|
1124
|
+
JobSubCategory2["Recruiting"] = "recruiting";
|
|
1125
|
+
JobSubCategory2["CompensationAndBenefits"] = "compensation_and_benefits";
|
|
1126
|
+
JobSubCategory2["OfficeAdministration"] = "office_administration";
|
|
1127
|
+
JobSubCategory2["ExecutiveAssistance"] = "executive_assistance";
|
|
1128
|
+
JobSubCategory2["OrganizationalDevelopment"] = "organizational_development";
|
|
1129
|
+
JobSubCategory2["HROperations"] = "hr_operations";
|
|
1130
|
+
JobSubCategory2["TalentAcquisition"] = "talent_acquisition";
|
|
1131
|
+
JobSubCategory2["LearningAndDevelopment"] = "learning_and_development";
|
|
1132
|
+
JobSubCategory2["AdministrativeSupport"] = "administrative_support";
|
|
1133
|
+
JobSubCategory2["OfficeManagement"] = "office_management";
|
|
1134
|
+
JobSubCategory2["K12Teaching"] = "k_12_teaching";
|
|
1135
|
+
JobSubCategory2["HigherEducation"] = "higher_education";
|
|
1136
|
+
JobSubCategory2["SpecialEducation"] = "special_education";
|
|
1137
|
+
JobSubCategory2["ESLInstruction"] = "esl_instruction";
|
|
1138
|
+
JobSubCategory2["EdTech"] = "edtech";
|
|
1139
|
+
JobSubCategory2["CorporateTraining"] = "corporate_training";
|
|
1140
|
+
JobSubCategory2["PublicPolicy"] = "public_policy";
|
|
1141
|
+
JobSubCategory2["SocialServices"] = "social_services";
|
|
1142
|
+
JobSubCategory2["FundraisingAndGrants"] = "fundraising_and_grants";
|
|
1143
|
+
JobSubCategory2["LawEnforcement"] = "law_enforcement";
|
|
1144
|
+
JobSubCategory2["Military"] = "military";
|
|
1145
|
+
JobSubCategory2["Diplomacy"] = "diplomacy";
|
|
1146
|
+
JobSubCategory2["PublicAdministration"] = "public_administration";
|
|
1147
|
+
JobSubCategory2["RestaurantOperations"] = "restaurant_operations";
|
|
1148
|
+
JobSubCategory2["FoodPreparation"] = "food_preparation";
|
|
1149
|
+
JobSubCategory2["CulinaryArts"] = "culinary_arts";
|
|
1150
|
+
JobSubCategory2["BaristaAndBar"] = "barista_and_bar";
|
|
1151
|
+
JobSubCategory2["Catering"] = "catering";
|
|
1152
|
+
JobSubCategory2["FoodService"] = "food_service";
|
|
1153
|
+
JobSubCategory2["HotelOperations"] = "hotel_operations";
|
|
1154
|
+
JobSubCategory2["FrontDeskAndReception"] = "front_desk_and_reception";
|
|
1155
|
+
JobSubCategory2["Housekeeping"] = "housekeeping";
|
|
1156
|
+
JobSubCategory2["TravelAndTourism"] = "travel_and_tourism";
|
|
1157
|
+
JobSubCategory2["EventsAndConferences"] = "events_and_conferences";
|
|
1158
|
+
JobSubCategory2["Assembly"] = "assembly";
|
|
1159
|
+
JobSubCategory2["MachineOperation"] = "machine_operation";
|
|
1160
|
+
JobSubCategory2["ProductionManagement"] = "production_management";
|
|
1161
|
+
JobSubCategory2["ManufacturingEngineering"] = "manufacturing_engineering";
|
|
1162
|
+
JobSubCategory2["FoodProduction"] = "food_production";
|
|
1163
|
+
JobSubCategory2["Packaging"] = "packaging";
|
|
1164
|
+
JobSubCategory2["QualityAssurance"] = "quality_assurance";
|
|
1165
|
+
JobSubCategory2["QualityControl"] = "quality_control";
|
|
1166
|
+
JobSubCategory2["ProcessImprovement"] = "process_improvement";
|
|
1167
|
+
JobSubCategory2["MaintenanceAndReliability"] = "maintenance_and_reliability";
|
|
1168
|
+
JobSubCategory2["IndustrialSafety"] = "industrial_safety";
|
|
1169
|
+
JobSubCategory2["StoreManagement"] = "store_management";
|
|
1170
|
+
JobSubCategory2["SalesAssociate"] = "sales_associate";
|
|
1171
|
+
JobSubCategory2["VisualMerchandising"] = "visual_merchandising";
|
|
1172
|
+
JobSubCategory2["CashierAndCheckout"] = "cashier_and_checkout";
|
|
1173
|
+
JobSubCategory2["InventoryAndStock"] = "inventory_and_stock";
|
|
1174
|
+
JobSubCategory2["CustomerSupport"] = "customer_support";
|
|
1175
|
+
JobSubCategory2["CallCentre"] = "call_centre";
|
|
1176
|
+
JobSubCategory2["ClientAdvisory"] = "client_advisory";
|
|
1177
|
+
JobSubCategory2["ComplaintsAndEscalations"] = "complaints_and_escalations";
|
|
1178
|
+
JobSubCategory2["AutomotiveTechnician"] = "automotive_technician";
|
|
1179
|
+
JobSubCategory2["AutomotiveRepair"] = "automotive_repair";
|
|
1180
|
+
JobSubCategory2["HeavyVehicleMechanic"] = "heavy_vehicle_mechanic";
|
|
1181
|
+
JobSubCategory2["VehicleInspection"] = "vehicle_inspection";
|
|
1182
|
+
JobSubCategory2["AutoBodyAndPaint"] = "auto_body_and_paint";
|
|
1183
|
+
JobSubCategory2["TruckDriving"] = "truck_driving";
|
|
1184
|
+
JobSubCategory2["DeliveryAndCourier"] = "delivery_and_courier";
|
|
1185
|
+
JobSubCategory2["PublicTransport"] = "public_transport";
|
|
1186
|
+
JobSubCategory2["FleetManagement"] = "fleet_management";
|
|
1187
|
+
return JobSubCategory2;
|
|
1188
|
+
})(JobSubCategory || {});
|
|
1189
|
+
var SupportedJobSubCategories = Object.values(JobSubCategory);
|
|
1190
|
+
var JOB_TAXONOMY = [
|
|
1191
|
+
{
|
|
1192
|
+
category: "technology_data_and_digital" /* TechnologyDataAndDigital */,
|
|
1193
|
+
industries: [
|
|
1194
|
+
{
|
|
1195
|
+
industry: "software_and_web_development" /* SoftwareAndWebDevelopment */,
|
|
1196
|
+
subCategories: [
|
|
1197
|
+
"frontend" /* Frontend */,
|
|
1198
|
+
"backend" /* Backend */,
|
|
1199
|
+
"full_stack" /* FullStack */,
|
|
1200
|
+
"mobile_app_dev" /* MobileAppDev */,
|
|
1201
|
+
"game_development" /* GameDevelopment */,
|
|
1202
|
+
"embedded_systems" /* EmbeddedSystems */,
|
|
1203
|
+
"qa_and_testing" /* QAAndTesting */,
|
|
1204
|
+
"software_engineering" /* SoftwareEngineering */,
|
|
1205
|
+
"web_development" /* WebDevelopment */,
|
|
1206
|
+
"software_architecture" /* SoftwareArchitecture */
|
|
1207
|
+
]
|
|
1208
|
+
},
|
|
1209
|
+
{
|
|
1210
|
+
industry: "data_ai_and_analytics" /* DataAIAndAnalytics */,
|
|
1211
|
+
subCategories: [
|
|
1212
|
+
"data_science" /* DataScience */,
|
|
1213
|
+
"machine_learning" /* MachineLearning */,
|
|
1214
|
+
"artificial_intelligence" /* ArtificialIntelligence */,
|
|
1215
|
+
"business_intelligence" /* BusinessIntelligence */,
|
|
1216
|
+
"data_engineering" /* DataEngineering */,
|
|
1217
|
+
"data_visualization" /* DataVisualization */,
|
|
1218
|
+
"data_analysis" /* DataAnalysis */,
|
|
1219
|
+
"deep_learning" /* DeepLearning */
|
|
1220
|
+
]
|
|
1221
|
+
},
|
|
1222
|
+
{
|
|
1223
|
+
industry: "it_infrastructure_and_security" /* ITInfrastructureAndSecurity */,
|
|
1224
|
+
subCategories: [
|
|
1225
|
+
"cybersecurity" /* Cybersecurity */,
|
|
1226
|
+
"cloud_engineering" /* CloudEngineering */,
|
|
1227
|
+
"devops" /* DevOps */,
|
|
1228
|
+
"network_administration" /* NetworkAdministration */,
|
|
1229
|
+
"systems_engineering" /* SystemsEngineering */,
|
|
1230
|
+
"database_administration" /* DatabaseAdministration */,
|
|
1231
|
+
"it_support" /* ITSupport */,
|
|
1232
|
+
"technical_support" /* TechnicalSupport */,
|
|
1233
|
+
"site_reliability_engineering" /* SiteReliabilityEngineering */
|
|
1234
|
+
]
|
|
1235
|
+
},
|
|
1236
|
+
{
|
|
1237
|
+
industry: "product_and_design" /* ProductAndDesign */,
|
|
1238
|
+
subCategories: [
|
|
1239
|
+
"product_management" /* ProductManagement */,
|
|
1240
|
+
"ui_ux_design" /* UIUXDesign */,
|
|
1241
|
+
"user_research" /* UserResearch */,
|
|
1242
|
+
"interaction_design" /* InteractionDesign */,
|
|
1243
|
+
"technical_writing" /* TechnicalWriting */,
|
|
1244
|
+
"product_marketing" /* ProductMarketing */,
|
|
1245
|
+
"business_analysis" /* BusinessAnalysis */,
|
|
1246
|
+
"project_management" /* ProjectManagement */,
|
|
1247
|
+
"program_management" /* ProgramManagement */
|
|
1248
|
+
]
|
|
1249
|
+
}
|
|
1250
|
+
]
|
|
1251
|
+
},
|
|
1252
|
+
{
|
|
1253
|
+
category: "healthcare_and_life_sciences" /* HealthcareAndLifeSciences */,
|
|
1254
|
+
industries: [
|
|
1255
|
+
{
|
|
1256
|
+
industry: "medical_practice" /* MedicalPractice */,
|
|
1257
|
+
subCategories: [
|
|
1258
|
+
"nursing" /* Nursing */,
|
|
1259
|
+
"general_practice" /* GeneralPractice */,
|
|
1260
|
+
"surgery" /* Surgery */,
|
|
1261
|
+
"pediatrics" /* Pediatrics */,
|
|
1262
|
+
"emergency_medicine" /* EmergencyMedicine */,
|
|
1263
|
+
"radiology" /* Radiology */,
|
|
1264
|
+
"anesthesiology" /* Anesthesiology */,
|
|
1265
|
+
"geriatrics" /* Geriatrics */,
|
|
1266
|
+
"oncology" /* Oncology */,
|
|
1267
|
+
"dentistry" /* Dentistry */,
|
|
1268
|
+
"dental_hygiene" /* DentalHygiene */,
|
|
1269
|
+
"medical_secretary" /* MedicalSecretary */,
|
|
1270
|
+
"veterinary" /* Veterinary */
|
|
1271
|
+
]
|
|
1272
|
+
},
|
|
1273
|
+
{
|
|
1274
|
+
industry: "therapy_and_rehabilitation" /* TherapyAndRehabilitation */,
|
|
1275
|
+
subCategories: [
|
|
1276
|
+
"physical_therapy" /* PhysicalTherapy */,
|
|
1277
|
+
"occupational_therapy" /* OccupationalTherapy */,
|
|
1278
|
+
"speech_pathology" /* SpeechPathology */,
|
|
1279
|
+
"respiratory_therapy" /* RespiratoryTherapy */,
|
|
1280
|
+
"elderly_care" /* ElderlyCare */,
|
|
1281
|
+
"disability_support" /* DisabilitySupport */
|
|
1282
|
+
]
|
|
1283
|
+
},
|
|
1284
|
+
{
|
|
1285
|
+
industry: "biotech_and_pharmaceuticals" /* BioTechAndPharmaceuticals */,
|
|
1286
|
+
subCategories: [
|
|
1287
|
+
"clinical_research" /* ClinicalResearch */,
|
|
1288
|
+
"drug_development" /* DrugDevelopment */,
|
|
1289
|
+
"bioinformatics" /* Bioinformatics */,
|
|
1290
|
+
"microbiology" /* Microbiology */,
|
|
1291
|
+
"pharmacology" /* Pharmacology */,
|
|
1292
|
+
"laboratory_tech" /* LaboratoryTech */
|
|
1293
|
+
]
|
|
1294
|
+
},
|
|
1295
|
+
{
|
|
1296
|
+
industry: "mental_health" /* MentalHealth */,
|
|
1297
|
+
subCategories: [
|
|
1298
|
+
"psychology" /* Psychology */,
|
|
1299
|
+
"counseling" /* Counseling */,
|
|
1300
|
+
"psychiatry" /* Psychiatry */,
|
|
1301
|
+
"social_work" /* SocialWork */,
|
|
1302
|
+
"addiction_recovery" /* AddictionRecovery */,
|
|
1303
|
+
"child_welfare" /* ChildWelfare */
|
|
1304
|
+
]
|
|
1305
|
+
}
|
|
1306
|
+
]
|
|
1307
|
+
},
|
|
1308
|
+
{
|
|
1309
|
+
category: "agriculture_energy_and_environment" /* AgricultureEnergyAndEnvironment */,
|
|
1310
|
+
industries: [
|
|
1311
|
+
{
|
|
1312
|
+
industry: "renewable_energy" /* RenewableEnergy */,
|
|
1313
|
+
subCategories: [
|
|
1314
|
+
"solar_energy" /* SolarEnergy */,
|
|
1315
|
+
"wind_power" /* WindPower */,
|
|
1316
|
+
"hydroelectric" /* Hydroelectric */,
|
|
1317
|
+
"battery_and_storage_tech" /* BatteryAndStorageTech */,
|
|
1318
|
+
"geothermal" /* Geothermal */,
|
|
1319
|
+
"biofuels" /* Biofuels */
|
|
1320
|
+
]
|
|
1321
|
+
},
|
|
1322
|
+
{
|
|
1323
|
+
industry: "natural_resources_and_utilities" /* NaturalResourcesAndUtilities */,
|
|
1324
|
+
subCategories: [
|
|
1325
|
+
"oil_and_gas" /* OilAndGas */,
|
|
1326
|
+
"mining_and_geology" /* MiningAndGeology */,
|
|
1327
|
+
"nuclear_energy" /* NuclearEnergy */,
|
|
1328
|
+
"water_management" /* WaterManagement */,
|
|
1329
|
+
"electrical_grid_operations" /* ElectricalGridOperations */
|
|
1330
|
+
]
|
|
1331
|
+
},
|
|
1332
|
+
{
|
|
1333
|
+
industry: "agriculture_and_forestry" /* AgricultureAndForestry */,
|
|
1334
|
+
subCategories: [
|
|
1335
|
+
"agri_tech" /* AgriTech */,
|
|
1336
|
+
"horticulture" /* Horticulture */,
|
|
1337
|
+
"livestock_management" /* LivestockManagement */,
|
|
1338
|
+
"forestry" /* Forestry */,
|
|
1339
|
+
"fisheries_and_aquaculture" /* FisheriesAndAquaculture */,
|
|
1340
|
+
"soil_science" /* SoilScience */
|
|
1341
|
+
]
|
|
1342
|
+
},
|
|
1343
|
+
{
|
|
1344
|
+
industry: "environmental_services" /* EnvironmentalServices */,
|
|
1345
|
+
subCategories: [
|
|
1346
|
+
"sustainability_consulting" /* SustainabilityConsulting */,
|
|
1347
|
+
"waste_management" /* WasteManagement */,
|
|
1348
|
+
"wildlife_conservation" /* WildlifeConservation */,
|
|
1349
|
+
"carbon_accounting" /* CarbonAccounting */,
|
|
1350
|
+
"ecology" /* Ecology */,
|
|
1351
|
+
"occupational_health_and_safety" /* OccupationalHealthAndSafety */,
|
|
1352
|
+
"sustainability" /* Sustainability */
|
|
1353
|
+
]
|
|
1354
|
+
}
|
|
1355
|
+
]
|
|
1356
|
+
},
|
|
1357
|
+
{
|
|
1358
|
+
category: "finance_banking_and_legal" /* FinanceBankingAndLegal */,
|
|
1359
|
+
industries: [
|
|
1360
|
+
{
|
|
1361
|
+
industry: "banking_and_investments" /* BankingAndInvestments */,
|
|
1362
|
+
subCategories: [
|
|
1363
|
+
"investment_banking" /* InvestmentBanking */,
|
|
1364
|
+
"corporate_finance" /* CorporateFinance */,
|
|
1365
|
+
"wealth_management" /* WealthManagement */,
|
|
1366
|
+
"venture_capital" /* VentureCapital */,
|
|
1367
|
+
"asset_management" /* AssetManagement */,
|
|
1368
|
+
"financial_analysis" /* FinancialAnalysis */,
|
|
1369
|
+
"financial_planning" /* FinancialPlanning */,
|
|
1370
|
+
"risk_management" /* RiskManagement */,
|
|
1371
|
+
"credit_analysis" /* CreditAnalysis */
|
|
1372
|
+
]
|
|
1373
|
+
},
|
|
1374
|
+
{
|
|
1375
|
+
industry: "fintech_and_insurance" /* FinTechAndInsurance */,
|
|
1376
|
+
subCategories: [
|
|
1377
|
+
"cryptocurrency_and_web3" /* CryptocurrencyAndWeb3 */,
|
|
1378
|
+
"digital_payments" /* DigitalPayments */,
|
|
1379
|
+
"actuarial_science" /* ActuarialScience */,
|
|
1380
|
+
"insurance_underwriting" /* InsuranceUnderwriting */,
|
|
1381
|
+
"claims_adjustment" /* ClaimsAdjustment */
|
|
1382
|
+
]
|
|
1383
|
+
},
|
|
1384
|
+
{
|
|
1385
|
+
industry: "accounting_and_audit" /* AccountingAndAudit */,
|
|
1386
|
+
subCategories: [
|
|
1387
|
+
"public_accounting" /* PublicAccounting */,
|
|
1388
|
+
"taxation" /* Taxation */,
|
|
1389
|
+
"forensic_accounting" /* ForensicAccounting */,
|
|
1390
|
+
"audit_and_assurance" /* AuditAndAssurance */,
|
|
1391
|
+
"bookkeeping" /* Bookkeeping */,
|
|
1392
|
+
"accounts_payable" /* AccountsPayable */,
|
|
1393
|
+
"accounts_receivable" /* AccountsReceivable */,
|
|
1394
|
+
"payroll" /* Payroll */,
|
|
1395
|
+
"collections" /* Collections */
|
|
1396
|
+
]
|
|
1397
|
+
},
|
|
1398
|
+
{
|
|
1399
|
+
industry: "legal_services" /* LegalServices */,
|
|
1400
|
+
subCategories: [
|
|
1401
|
+
"corporate_law" /* CorporateLaw */,
|
|
1402
|
+
"litigation" /* Litigation */,
|
|
1403
|
+
"intellectual_property" /* IntellectualProperty */,
|
|
1404
|
+
"compliance_and_regulatory" /* ComplianceAndRegulatory */,
|
|
1405
|
+
"paralegal_services" /* ParalegalServices */,
|
|
1406
|
+
"paralegal" /* Paralegal */
|
|
1407
|
+
]
|
|
1408
|
+
}
|
|
1409
|
+
]
|
|
1410
|
+
},
|
|
1411
|
+
{
|
|
1412
|
+
category: "construction_engineering_and_trades" /* ConstructionEngineeringAndTrades */,
|
|
1413
|
+
industries: [
|
|
1414
|
+
{
|
|
1415
|
+
industry: "architecture_and_planning" /* ArchitectureAndPlanning */,
|
|
1416
|
+
subCategories: [
|
|
1417
|
+
"urban_planning" /* UrbanPlanning */,
|
|
1418
|
+
"interior_design" /* InteriorDesign */,
|
|
1419
|
+
"landscape_architecture" /* LandscapeArchitecture */,
|
|
1420
|
+
"cad_bim_management" /* CADBIMManagement */,
|
|
1421
|
+
"construction_management" /* ConstructionManagement */,
|
|
1422
|
+
"site_supervision" /* SiteSupervision */
|
|
1423
|
+
]
|
|
1424
|
+
},
|
|
1425
|
+
{
|
|
1426
|
+
industry: "civil_and_industrial_engineering" /* CivilAndIndustrialEngineering */,
|
|
1427
|
+
subCategories: [
|
|
1428
|
+
"structural_engineering" /* StructuralEngineering */,
|
|
1429
|
+
"mechanical_engineering" /* MechanicalEngineering */,
|
|
1430
|
+
"electrical_engineering" /* ElectricalEngineering */,
|
|
1431
|
+
"robotics_and_automation" /* RoboticsAndAutomation */,
|
|
1432
|
+
"chemical_engineering" /* ChemicalEngineering */,
|
|
1433
|
+
"industrial_engineering" /* IndustrialEngineering */,
|
|
1434
|
+
"process_engineering" /* ProcessEngineering */,
|
|
1435
|
+
"mechatronics" /* Mechatronics */
|
|
1436
|
+
]
|
|
1437
|
+
},
|
|
1438
|
+
{
|
|
1439
|
+
industry: "skilled_trades" /* SkilledTrades */,
|
|
1440
|
+
subCategories: [
|
|
1441
|
+
"electrician" /* Electrician */,
|
|
1442
|
+
"plumbing_and_hvac" /* PlumbingAndHVAC */,
|
|
1443
|
+
"carpentry" /* Carpentry */,
|
|
1444
|
+
"welding" /* Welding */,
|
|
1445
|
+
"heavy_equipment_operation" /* HeavyEquipmentOperation */,
|
|
1446
|
+
"masonry" /* Masonry */,
|
|
1447
|
+
"machining" /* Machining */,
|
|
1448
|
+
"facilities_maintenance" /* FacilitiesMaintenance */
|
|
1449
|
+
]
|
|
1450
|
+
}
|
|
1451
|
+
]
|
|
1452
|
+
},
|
|
1453
|
+
{
|
|
1454
|
+
category: "marketing_media_and_creative" /* MarketingMediaAndCreative */,
|
|
1455
|
+
industries: [
|
|
1456
|
+
{
|
|
1457
|
+
industry: "marketing_and_advertising" /* MarketingAndAdvertising */,
|
|
1458
|
+
subCategories: [
|
|
1459
|
+
"digital_marketing" /* DigitalMarketing */,
|
|
1460
|
+
"seo_sem" /* SEOSEM */,
|
|
1461
|
+
"content_strategy" /* ContentStrategy */,
|
|
1462
|
+
"social_media_management" /* SocialMediaManagement */,
|
|
1463
|
+
"brand_management" /* BrandManagement */,
|
|
1464
|
+
"market_research" /* MarketResearch */,
|
|
1465
|
+
"marketing_strategy" /* MarketingStrategy */
|
|
1466
|
+
]
|
|
1467
|
+
},
|
|
1468
|
+
{
|
|
1469
|
+
industry: "media_and_entertainment" /* MediaAndEntertainment */,
|
|
1470
|
+
subCategories: [
|
|
1471
|
+
"journalism" /* Journalism */,
|
|
1472
|
+
"video_production" /* VideoProduction */,
|
|
1473
|
+
"animation_and_vfx" /* AnimationAndVFX */,
|
|
1474
|
+
"audio_engineering" /* AudioEngineering */,
|
|
1475
|
+
"photography" /* Photography */,
|
|
1476
|
+
"broadcasting" /* Broadcasting */
|
|
1477
|
+
]
|
|
1478
|
+
},
|
|
1479
|
+
{
|
|
1480
|
+
industry: "creative_arts_and_fashion" /* CreativeArtsAndFashion */,
|
|
1481
|
+
subCategories: [
|
|
1482
|
+
"graphic_design" /* GraphicDesign */,
|
|
1483
|
+
"fine_arts" /* FineArts */,
|
|
1484
|
+
"fashion_design" /* FashionDesign */,
|
|
1485
|
+
"apparel_manufacturing" /* ApparelManufacturing */,
|
|
1486
|
+
"textile_design" /* TextileDesign */
|
|
1487
|
+
]
|
|
1488
|
+
}
|
|
1489
|
+
]
|
|
1490
|
+
},
|
|
1491
|
+
{
|
|
1492
|
+
category: "logistics_sales_and_operations" /* LogisticsSalesAndOperations */,
|
|
1493
|
+
industries: [
|
|
1494
|
+
{
|
|
1495
|
+
industry: "supply_chain_and_transport" /* SupplyChainAndTransport */,
|
|
1496
|
+
subCategories: [
|
|
1497
|
+
"logistics_management" /* LogisticsManagement */,
|
|
1498
|
+
"warehousing" /* Warehousing */,
|
|
1499
|
+
"fleet_operations" /* FleetOperations */,
|
|
1500
|
+
"freight_forwarding" /* FreightForwarding */,
|
|
1501
|
+
"procurement" /* Procurement */,
|
|
1502
|
+
"purchasing" /* Purchasing */,
|
|
1503
|
+
"warehouse_operations" /* WarehouseOperations */,
|
|
1504
|
+
"freight_and_shipping" /* FreightAndShipping */
|
|
1505
|
+
]
|
|
1506
|
+
},
|
|
1507
|
+
{
|
|
1508
|
+
industry: "sales_and_business_development" /* SalesAndBusinessDevelopment */,
|
|
1509
|
+
subCategories: [
|
|
1510
|
+
"enterprise_sales" /* EnterpriseSales */,
|
|
1511
|
+
"account_management" /* AccountManagement */,
|
|
1512
|
+
"retail_management" /* RetailManagement */,
|
|
1513
|
+
"real_estate_sales" /* RealEstateSales */,
|
|
1514
|
+
"customer_success" /* CustomerSuccess */,
|
|
1515
|
+
"sales_management" /* SalesManagement */,
|
|
1516
|
+
"sales_operations" /* SalesOperations */,
|
|
1517
|
+
"sales_support" /* SalesSupport */,
|
|
1518
|
+
"technical_sales" /* TechnicalSales */
|
|
1519
|
+
]
|
|
1520
|
+
},
|
|
1521
|
+
{
|
|
1522
|
+
industry: "hr_and_admin" /* HRAndAdmin */,
|
|
1523
|
+
subCategories: [
|
|
1524
|
+
"recruiting" /* Recruiting */,
|
|
1525
|
+
"compensation_and_benefits" /* CompensationAndBenefits */,
|
|
1526
|
+
"office_administration" /* OfficeAdministration */,
|
|
1527
|
+
"executive_assistance" /* ExecutiveAssistance */,
|
|
1528
|
+
"organizational_development" /* OrganizationalDevelopment */,
|
|
1529
|
+
"hr_operations" /* HROperations */,
|
|
1530
|
+
"talent_acquisition" /* TalentAcquisition */,
|
|
1531
|
+
"learning_and_development" /* LearningAndDevelopment */,
|
|
1532
|
+
"administrative_support" /* AdministrativeSupport */,
|
|
1533
|
+
"office_management" /* OfficeManagement */
|
|
1534
|
+
]
|
|
1535
|
+
}
|
|
1536
|
+
]
|
|
1537
|
+
},
|
|
1538
|
+
{
|
|
1539
|
+
category: "education_and_public_service" /* EducationAndPublicService */,
|
|
1540
|
+
industries: [
|
|
1541
|
+
{
|
|
1542
|
+
industry: "education_and_training" /* EducationAndTraining */,
|
|
1543
|
+
subCategories: [
|
|
1544
|
+
"k_12_teaching" /* K12Teaching */,
|
|
1545
|
+
"higher_education" /* HigherEducation */,
|
|
1546
|
+
"special_education" /* SpecialEducation */,
|
|
1547
|
+
"esl_instruction" /* ESLInstruction */,
|
|
1548
|
+
"edtech" /* EdTech */,
|
|
1549
|
+
"corporate_training" /* CorporateTraining */
|
|
1550
|
+
]
|
|
1551
|
+
},
|
|
1552
|
+
{
|
|
1553
|
+
industry: "government_and_non_profit" /* GovernmentAndNonProfit */,
|
|
1554
|
+
subCategories: [
|
|
1555
|
+
"public_policy" /* PublicPolicy */,
|
|
1556
|
+
"social_services" /* SocialServices */,
|
|
1557
|
+
"fundraising_and_grants" /* FundraisingAndGrants */,
|
|
1558
|
+
"law_enforcement" /* LawEnforcement */,
|
|
1559
|
+
"military" /* Military */,
|
|
1560
|
+
"diplomacy" /* Diplomacy */,
|
|
1561
|
+
"public_administration" /* PublicAdministration */
|
|
1562
|
+
]
|
|
1563
|
+
}
|
|
1564
|
+
]
|
|
1565
|
+
},
|
|
1566
|
+
{
|
|
1567
|
+
category: "hospitality_food_and_tourism" /* HospitalityFoodAndTourism */,
|
|
1568
|
+
industries: [
|
|
1569
|
+
{
|
|
1570
|
+
industry: "food_and_beverage_service" /* FoodAndBeverageService */,
|
|
1571
|
+
subCategories: [
|
|
1572
|
+
"restaurant_operations" /* RestaurantOperations */,
|
|
1573
|
+
"food_preparation" /* FoodPreparation */,
|
|
1574
|
+
"culinary_arts" /* CulinaryArts */,
|
|
1575
|
+
"barista_and_bar" /* BaristaAndBar */,
|
|
1576
|
+
"catering" /* Catering */,
|
|
1577
|
+
"food_service" /* FoodService */
|
|
1578
|
+
]
|
|
1579
|
+
},
|
|
1580
|
+
{
|
|
1581
|
+
industry: "accommodation_and_travel" /* AccommodationAndTravel */,
|
|
1582
|
+
subCategories: [
|
|
1583
|
+
"hotel_operations" /* HotelOperations */,
|
|
1584
|
+
"front_desk_and_reception" /* FrontDeskAndReception */,
|
|
1585
|
+
"housekeeping" /* Housekeeping */,
|
|
1586
|
+
"travel_and_tourism" /* TravelAndTourism */,
|
|
1587
|
+
"events_and_conferences" /* EventsAndConferences */
|
|
1588
|
+
]
|
|
1589
|
+
}
|
|
1590
|
+
]
|
|
1591
|
+
},
|
|
1592
|
+
{
|
|
1593
|
+
category: "manufacturing_and_production" /* ManufacturingAndProduction */,
|
|
1594
|
+
industries: [
|
|
1595
|
+
{
|
|
1596
|
+
industry: "production_and_assembly" /* ProductionAndAssembly */,
|
|
1597
|
+
subCategories: [
|
|
1598
|
+
"assembly" /* Assembly */,
|
|
1599
|
+
"machine_operation" /* MachineOperation */,
|
|
1600
|
+
"production_management" /* ProductionManagement */,
|
|
1601
|
+
"manufacturing_engineering" /* ManufacturingEngineering */,
|
|
1602
|
+
"food_production" /* FoodProduction */,
|
|
1603
|
+
"packaging" /* Packaging */
|
|
1604
|
+
]
|
|
1605
|
+
},
|
|
1606
|
+
{
|
|
1607
|
+
industry: "quality_and_process" /* QualityAndProcess */,
|
|
1608
|
+
subCategories: [
|
|
1609
|
+
"quality_assurance" /* QualityAssurance */,
|
|
1610
|
+
"quality_control" /* QualityControl */,
|
|
1611
|
+
"process_improvement" /* ProcessImprovement */,
|
|
1612
|
+
"maintenance_and_reliability" /* MaintenanceAndReliability */,
|
|
1613
|
+
"industrial_safety" /* IndustrialSafety */
|
|
1614
|
+
]
|
|
1615
|
+
}
|
|
1616
|
+
]
|
|
1617
|
+
},
|
|
1618
|
+
{
|
|
1619
|
+
category: "retail_and_consumer_services" /* RetailAndConsumerServices */,
|
|
1620
|
+
industries: [
|
|
1621
|
+
{
|
|
1622
|
+
industry: "retail_operations" /* RetailOperations */,
|
|
1623
|
+
subCategories: [
|
|
1624
|
+
"store_management" /* StoreManagement */,
|
|
1625
|
+
"sales_associate" /* SalesAssociate */,
|
|
1626
|
+
"visual_merchandising" /* VisualMerchandising */,
|
|
1627
|
+
"cashier_and_checkout" /* CashierAndCheckout */,
|
|
1628
|
+
"inventory_and_stock" /* InventoryAndStock */
|
|
1629
|
+
]
|
|
1630
|
+
},
|
|
1631
|
+
{
|
|
1632
|
+
industry: "customer_service" /* CustomerService */,
|
|
1633
|
+
subCategories: [
|
|
1634
|
+
"customer_support" /* CustomerSupport */,
|
|
1635
|
+
"call_centre" /* CallCentre */,
|
|
1636
|
+
"client_advisory" /* ClientAdvisory */,
|
|
1637
|
+
"complaints_and_escalations" /* ComplaintsAndEscalations */
|
|
1638
|
+
]
|
|
1639
|
+
}
|
|
1640
|
+
]
|
|
1641
|
+
},
|
|
1642
|
+
{
|
|
1643
|
+
category: "automotive_and_transport_services" /* AutomotiveAndTransportServices */,
|
|
1644
|
+
industries: [
|
|
1645
|
+
{
|
|
1646
|
+
industry: "vehicle_service_and_repair" /* VehicleServiceAndRepair */,
|
|
1647
|
+
subCategories: [
|
|
1648
|
+
"automotive_technician" /* AutomotiveTechnician */,
|
|
1649
|
+
"automotive_repair" /* AutomotiveRepair */,
|
|
1650
|
+
"heavy_vehicle_mechanic" /* HeavyVehicleMechanic */,
|
|
1651
|
+
"vehicle_inspection" /* VehicleInspection */,
|
|
1652
|
+
"auto_body_and_paint" /* AutoBodyAndPaint */
|
|
1653
|
+
]
|
|
1654
|
+
},
|
|
1655
|
+
{
|
|
1656
|
+
industry: "driving_and_transport" /* DrivingAndTransport */,
|
|
1657
|
+
subCategories: [
|
|
1658
|
+
"truck_driving" /* TruckDriving */,
|
|
1659
|
+
"delivery_and_courier" /* DeliveryAndCourier */,
|
|
1660
|
+
"public_transport" /* PublicTransport */,
|
|
1661
|
+
"fleet_management" /* FleetManagement */
|
|
1662
|
+
]
|
|
1663
|
+
}
|
|
1664
|
+
]
|
|
1665
|
+
}
|
|
1666
|
+
];
|
|
1667
|
+
var TAXONOMY_LABELS = {
|
|
1668
|
+
"technology_data_and_digital": "Technology, Data & Digital",
|
|
1669
|
+
"healthcare_and_life_sciences": "Healthcare & Life Sciences",
|
|
1670
|
+
"agriculture_energy_and_environment": "Agriculture, Energy & Environment",
|
|
1671
|
+
"finance_banking_and_legal": "Finance, Banking & Legal",
|
|
1672
|
+
"construction_engineering_and_trades": "Construction, Engineering & Trades",
|
|
1673
|
+
"marketing_media_and_creative": "Marketing, Media & Creative",
|
|
1674
|
+
"logistics_sales_and_operations": "Logistics, Sales & Operations",
|
|
1675
|
+
"education_and_public_service": "Education & Public Service",
|
|
1676
|
+
"hospitality_food_and_tourism": "Hospitality, Food & Tourism",
|
|
1677
|
+
"manufacturing_and_production": "Manufacturing & Production",
|
|
1678
|
+
"retail_and_consumer_services": "Retail & Consumer Services",
|
|
1679
|
+
"automotive_and_transport_services": "Automotive & Transport Services",
|
|
1680
|
+
"software_and_web_development": "Software & Web Development",
|
|
1681
|
+
"data_ai_and_analytics": "Data, AI & Analytics",
|
|
1682
|
+
"it_infrastructure_and_security": "IT Infrastructure & Security",
|
|
1683
|
+
"product_and_design": "Product & Design",
|
|
1684
|
+
"medical_practice": "Medical Practice",
|
|
1685
|
+
"therapy_and_rehabilitation": "Therapy & Rehabilitation",
|
|
1686
|
+
"biotech_and_pharmaceuticals": "BioTech & Pharmaceuticals",
|
|
1687
|
+
"mental_health": "Mental Health",
|
|
1688
|
+
"renewable_energy": "Renewable Energy",
|
|
1689
|
+
"natural_resources_and_utilities": "Natural Resources & Utilities",
|
|
1690
|
+
"agriculture_and_forestry": "Agriculture & Forestry",
|
|
1691
|
+
"environmental_services": "Environmental Services",
|
|
1692
|
+
"banking_and_investments": "Banking & Investments",
|
|
1693
|
+
"fintech_and_insurance": "FinTech & Insurance",
|
|
1694
|
+
"accounting_and_audit": "Accounting & Audit",
|
|
1695
|
+
"legal_services": "Legal Services",
|
|
1696
|
+
"architecture_and_planning": "Architecture & Planning",
|
|
1697
|
+
"civil_and_industrial_engineering": "Civil & Industrial Engineering",
|
|
1698
|
+
"skilled_trades": "Skilled Trades",
|
|
1699
|
+
"marketing_and_advertising": "Marketing & Advertising",
|
|
1700
|
+
"media_and_entertainment": "Media & Entertainment",
|
|
1701
|
+
"creative_arts_and_fashion": "Creative Arts & Fashion",
|
|
1702
|
+
"supply_chain_and_transport": "Supply Chain & Transport",
|
|
1703
|
+
"sales_and_business_development": "Sales & Business Development",
|
|
1704
|
+
"hr_and_admin": "HR & Admin",
|
|
1705
|
+
"education_and_training": "Education & Training",
|
|
1706
|
+
"government_and_non_profit": "Government & Non-Profit",
|
|
1707
|
+
"food_and_beverage_service": "Food & Beverage Service",
|
|
1708
|
+
"accommodation_and_travel": "Accommodation & Travel",
|
|
1709
|
+
"production_and_assembly": "Production & Assembly",
|
|
1710
|
+
"quality_and_process": "Quality & Process",
|
|
1711
|
+
"retail_operations": "Retail Operations",
|
|
1712
|
+
"customer_service": "Customer Service",
|
|
1713
|
+
"vehicle_service_and_repair": "Vehicle Service & Repair",
|
|
1714
|
+
"driving_and_transport": "Driving & Transport",
|
|
1715
|
+
"frontend": "Frontend",
|
|
1716
|
+
"backend": "Backend",
|
|
1717
|
+
"full_stack": "Full Stack",
|
|
1718
|
+
"mobile_app_dev": "Mobile App Dev",
|
|
1719
|
+
"game_development": "Game Development",
|
|
1720
|
+
"embedded_systems": "Embedded Systems",
|
|
1721
|
+
"qa_and_testing": "QA & Testing",
|
|
1722
|
+
"software_engineering": "Software Engineering",
|
|
1723
|
+
"web_development": "Web Development",
|
|
1724
|
+
"software_architecture": "Software Architecture",
|
|
1725
|
+
"data_science": "Data Science",
|
|
1726
|
+
"machine_learning": "Machine Learning",
|
|
1727
|
+
"artificial_intelligence": "Artificial Intelligence",
|
|
1728
|
+
"business_intelligence": "Business Intelligence",
|
|
1729
|
+
"data_engineering": "Data Engineering",
|
|
1730
|
+
"data_visualization": "Data Visualization",
|
|
1731
|
+
"data_analysis": "Data Analysis",
|
|
1732
|
+
"deep_learning": "Deep Learning",
|
|
1733
|
+
"cybersecurity": "Cybersecurity",
|
|
1734
|
+
"cloud_engineering": "Cloud Engineering",
|
|
1735
|
+
"devops": "DevOps",
|
|
1736
|
+
"network_administration": "Network Administration",
|
|
1737
|
+
"systems_engineering": "Systems Engineering",
|
|
1738
|
+
"database_administration": "Database Administration",
|
|
1739
|
+
"it_support": "IT Support",
|
|
1740
|
+
"technical_support": "Technical Support",
|
|
1741
|
+
"site_reliability_engineering": "Site Reliability Engineering",
|
|
1742
|
+
"product_management": "Product Management",
|
|
1743
|
+
"ui_ux_design": "UI/UX Design",
|
|
1744
|
+
"user_research": "User Research",
|
|
1745
|
+
"interaction_design": "Interaction Design",
|
|
1746
|
+
"technical_writing": "Technical Writing",
|
|
1747
|
+
"product_marketing": "Product Marketing",
|
|
1748
|
+
"business_analysis": "Business Analysis",
|
|
1749
|
+
"project_management": "Project Management",
|
|
1750
|
+
"program_management": "Program Management",
|
|
1751
|
+
"nursing": "Nursing",
|
|
1752
|
+
"general_practice": "General Practice",
|
|
1753
|
+
"surgery": "Surgery",
|
|
1754
|
+
"pediatrics": "Pediatrics",
|
|
1755
|
+
"emergency_medicine": "Emergency Medicine",
|
|
1756
|
+
"radiology": "Radiology",
|
|
1757
|
+
"anesthesiology": "Anesthesiology",
|
|
1758
|
+
"geriatrics": "Geriatrics",
|
|
1759
|
+
"oncology": "Oncology",
|
|
1760
|
+
"dentistry": "Dentistry",
|
|
1761
|
+
"dental_hygiene": "Dental Hygiene",
|
|
1762
|
+
"medical_secretary": "Medical Secretary",
|
|
1763
|
+
"veterinary": "Veterinary",
|
|
1764
|
+
"physical_therapy": "Physical Therapy",
|
|
1765
|
+
"occupational_therapy": "Occupational Therapy",
|
|
1766
|
+
"speech_pathology": "Speech Pathology",
|
|
1767
|
+
"respiratory_therapy": "Respiratory Therapy",
|
|
1768
|
+
"elderly_care": "Elderly Care",
|
|
1769
|
+
"disability_support": "Disability Support",
|
|
1770
|
+
"clinical_research": "Clinical Research",
|
|
1771
|
+
"drug_development": "Drug Development",
|
|
1772
|
+
"bioinformatics": "Bioinformatics",
|
|
1773
|
+
"microbiology": "Microbiology",
|
|
1774
|
+
"pharmacology": "Pharmacology",
|
|
1775
|
+
"laboratory_tech": "Laboratory Tech",
|
|
1776
|
+
"psychology": "Psychology",
|
|
1777
|
+
"counseling": "Counseling",
|
|
1778
|
+
"psychiatry": "Psychiatry",
|
|
1779
|
+
"social_work": "Social Work",
|
|
1780
|
+
"addiction_recovery": "Addiction Recovery",
|
|
1781
|
+
"child_welfare": "Child Welfare",
|
|
1782
|
+
"solar_energy": "Solar Energy",
|
|
1783
|
+
"wind_power": "Wind Power",
|
|
1784
|
+
"hydroelectric": "Hydroelectric",
|
|
1785
|
+
"battery_and_storage_tech": "Battery & Storage Tech",
|
|
1786
|
+
"geothermal": "Geothermal",
|
|
1787
|
+
"biofuels": "Biofuels",
|
|
1788
|
+
"oil_and_gas": "Oil & Gas",
|
|
1789
|
+
"mining_and_geology": "Mining & Geology",
|
|
1790
|
+
"nuclear_energy": "Nuclear Energy",
|
|
1791
|
+
"water_management": "Water Management",
|
|
1792
|
+
"electrical_grid_operations": "Electrical Grid Operations",
|
|
1793
|
+
"agri_tech": "Agri-Tech",
|
|
1794
|
+
"horticulture": "Horticulture",
|
|
1795
|
+
"livestock_management": "Livestock Management",
|
|
1796
|
+
"forestry": "Forestry",
|
|
1797
|
+
"fisheries_and_aquaculture": "Fisheries & Aquaculture",
|
|
1798
|
+
"soil_science": "Soil Science",
|
|
1799
|
+
"sustainability_consulting": "Sustainability Consulting",
|
|
1800
|
+
"waste_management": "Waste Management",
|
|
1801
|
+
"wildlife_conservation": "Wildlife Conservation",
|
|
1802
|
+
"carbon_accounting": "Carbon Accounting",
|
|
1803
|
+
"ecology": "Ecology",
|
|
1804
|
+
"occupational_health_and_safety": "Occupational Health & Safety",
|
|
1805
|
+
"sustainability": "Sustainability",
|
|
1806
|
+
"investment_banking": "Investment Banking",
|
|
1807
|
+
"corporate_finance": "Corporate Finance",
|
|
1808
|
+
"wealth_management": "Wealth Management",
|
|
1809
|
+
"venture_capital": "Venture Capital",
|
|
1810
|
+
"asset_management": "Asset Management",
|
|
1811
|
+
"financial_analysis": "Financial Analysis",
|
|
1812
|
+
"financial_planning": "Financial Planning",
|
|
1813
|
+
"risk_management": "Risk Management",
|
|
1814
|
+
"credit_analysis": "Credit Analysis",
|
|
1815
|
+
"cryptocurrency_and_web3": "Cryptocurrency & Web3",
|
|
1816
|
+
"digital_payments": "Digital Payments",
|
|
1817
|
+
"actuarial_science": "Actuarial Science",
|
|
1818
|
+
"insurance_underwriting": "Insurance Underwriting",
|
|
1819
|
+
"claims_adjustment": "Claims Adjustment",
|
|
1820
|
+
"public_accounting": "Public Accounting",
|
|
1821
|
+
"taxation": "Taxation",
|
|
1822
|
+
"forensic_accounting": "Forensic Accounting",
|
|
1823
|
+
"audit_and_assurance": "Audit & Assurance",
|
|
1824
|
+
"bookkeeping": "Bookkeeping",
|
|
1825
|
+
"accounts_payable": "Accounts Payable",
|
|
1826
|
+
"accounts_receivable": "Accounts Receivable",
|
|
1827
|
+
"payroll": "Payroll",
|
|
1828
|
+
"collections": "Collections",
|
|
1829
|
+
"corporate_law": "Corporate Law",
|
|
1830
|
+
"litigation": "Litigation",
|
|
1831
|
+
"intellectual_property": "Intellectual Property",
|
|
1832
|
+
"compliance_and_regulatory": "Compliance & Regulatory",
|
|
1833
|
+
"paralegal_services": "Paralegal Services",
|
|
1834
|
+
"paralegal": "Paralegal",
|
|
1835
|
+
"urban_planning": "Urban Planning",
|
|
1836
|
+
"interior_design": "Interior Design",
|
|
1837
|
+
"landscape_architecture": "Landscape Architecture",
|
|
1838
|
+
"cad_bim_management": "CAD/BIM Management",
|
|
1839
|
+
"construction_management": "Construction Management",
|
|
1840
|
+
"site_supervision": "Site Supervision",
|
|
1841
|
+
"structural_engineering": "Structural Engineering",
|
|
1842
|
+
"mechanical_engineering": "Mechanical Engineering",
|
|
1843
|
+
"electrical_engineering": "Electrical Engineering",
|
|
1844
|
+
"robotics_and_automation": "Robotics & Automation",
|
|
1845
|
+
"chemical_engineering": "Chemical Engineering",
|
|
1846
|
+
"industrial_engineering": "Industrial Engineering",
|
|
1847
|
+
"process_engineering": "Process Engineering",
|
|
1848
|
+
"mechatronics": "Mechatronics",
|
|
1849
|
+
"electrician": "Electrician",
|
|
1850
|
+
"plumbing_and_hvac": "Plumbing & HVAC",
|
|
1851
|
+
"carpentry": "Carpentry",
|
|
1852
|
+
"welding": "Welding",
|
|
1853
|
+
"heavy_equipment_operation": "Heavy Equipment Operation",
|
|
1854
|
+
"masonry": "Masonry",
|
|
1855
|
+
"machining": "Machining",
|
|
1856
|
+
"facilities_maintenance": "Facilities Maintenance",
|
|
1857
|
+
"digital_marketing": "Digital Marketing",
|
|
1858
|
+
"seo_sem": "SEO/SEM",
|
|
1859
|
+
"content_strategy": "Content Strategy",
|
|
1860
|
+
"social_media_management": "Social Media Management",
|
|
1861
|
+
"brand_management": "Brand Management",
|
|
1862
|
+
"market_research": "Market Research",
|
|
1863
|
+
"marketing_strategy": "Marketing Strategy",
|
|
1864
|
+
"journalism": "Journalism",
|
|
1865
|
+
"video_production": "Video Production",
|
|
1866
|
+
"animation_and_vfx": "Animation & VFX",
|
|
1867
|
+
"audio_engineering": "Audio Engineering",
|
|
1868
|
+
"photography": "Photography",
|
|
1869
|
+
"broadcasting": "Broadcasting",
|
|
1870
|
+
"graphic_design": "Graphic Design",
|
|
1871
|
+
"fine_arts": "Fine Arts",
|
|
1872
|
+
"fashion_design": "Fashion Design",
|
|
1873
|
+
"apparel_manufacturing": "Apparel Manufacturing",
|
|
1874
|
+
"textile_design": "Textile Design",
|
|
1875
|
+
"logistics_management": "Logistics Management",
|
|
1876
|
+
"warehousing": "Warehousing",
|
|
1877
|
+
"fleet_operations": "Fleet Operations",
|
|
1878
|
+
"freight_forwarding": "Freight Forwarding",
|
|
1879
|
+
"procurement": "Procurement",
|
|
1880
|
+
"purchasing": "Purchasing",
|
|
1881
|
+
"warehouse_operations": "Warehouse Operations",
|
|
1882
|
+
"freight_and_shipping": "Freight & Shipping",
|
|
1883
|
+
"enterprise_sales": "Enterprise Sales",
|
|
1884
|
+
"account_management": "Account Management",
|
|
1885
|
+
"retail_management": "Retail Management",
|
|
1886
|
+
"real_estate_sales": "Real Estate Sales",
|
|
1887
|
+
"customer_success": "Customer Success",
|
|
1888
|
+
"sales_management": "Sales Management",
|
|
1889
|
+
"sales_operations": "Sales Operations",
|
|
1890
|
+
"sales_support": "Sales Support",
|
|
1891
|
+
"technical_sales": "Technical Sales",
|
|
1892
|
+
"recruiting": "Recruiting",
|
|
1893
|
+
"compensation_and_benefits": "Compensation & Benefits",
|
|
1894
|
+
"office_administration": "Office Administration",
|
|
1895
|
+
"executive_assistance": "Executive Assistance",
|
|
1896
|
+
"organizational_development": "Organizational Development",
|
|
1897
|
+
"hr_operations": "HR Operations",
|
|
1898
|
+
"talent_acquisition": "Talent Acquisition",
|
|
1899
|
+
"learning_and_development": "Learning & Development",
|
|
1900
|
+
"administrative_support": "Administrative Support",
|
|
1901
|
+
"office_management": "Office Management",
|
|
1902
|
+
"k_12_teaching": "K-12 Teaching",
|
|
1903
|
+
"higher_education": "Higher Education",
|
|
1904
|
+
"special_education": "Special Education",
|
|
1905
|
+
"esl_instruction": "ESL Instruction",
|
|
1906
|
+
"edtech": "EdTech",
|
|
1907
|
+
"corporate_training": "Corporate Training",
|
|
1908
|
+
"public_policy": "Public Policy",
|
|
1909
|
+
"social_services": "Social Services",
|
|
1910
|
+
"fundraising_and_grants": "Fundraising & Grants",
|
|
1911
|
+
"law_enforcement": "Law Enforcement",
|
|
1912
|
+
"military": "Military",
|
|
1913
|
+
"diplomacy": "Diplomacy",
|
|
1914
|
+
"public_administration": "Public Administration",
|
|
1915
|
+
"restaurant_operations": "Restaurant Operations",
|
|
1916
|
+
"food_preparation": "Food Preparation",
|
|
1917
|
+
"culinary_arts": "Culinary Arts",
|
|
1918
|
+
"barista_and_bar": "Barista & Bar",
|
|
1919
|
+
"catering": "Catering",
|
|
1920
|
+
"food_service": "Food Service",
|
|
1921
|
+
"hotel_operations": "Hotel Operations",
|
|
1922
|
+
"front_desk_and_reception": "Front Desk & Reception",
|
|
1923
|
+
"housekeeping": "Housekeeping",
|
|
1924
|
+
"travel_and_tourism": "Travel & Tourism",
|
|
1925
|
+
"events_and_conferences": "Events & Conferences",
|
|
1926
|
+
"assembly": "Assembly",
|
|
1927
|
+
"machine_operation": "Machine Operation",
|
|
1928
|
+
"production_management": "Production Management",
|
|
1929
|
+
"manufacturing_engineering": "Manufacturing Engineering",
|
|
1930
|
+
"food_production": "Food Production",
|
|
1931
|
+
"packaging": "Packaging",
|
|
1932
|
+
"quality_assurance": "Quality Assurance",
|
|
1933
|
+
"quality_control": "Quality Control",
|
|
1934
|
+
"process_improvement": "Process Improvement",
|
|
1935
|
+
"maintenance_and_reliability": "Maintenance & Reliability",
|
|
1936
|
+
"industrial_safety": "Industrial Safety",
|
|
1937
|
+
"store_management": "Store Management",
|
|
1938
|
+
"sales_associate": "Sales Associate",
|
|
1939
|
+
"visual_merchandising": "Visual Merchandising",
|
|
1940
|
+
"cashier_and_checkout": "Cashier & Checkout",
|
|
1941
|
+
"inventory_and_stock": "Inventory & Stock",
|
|
1942
|
+
"customer_support": "Customer Support",
|
|
1943
|
+
"call_centre": "Call Centre",
|
|
1944
|
+
"client_advisory": "Client Advisory",
|
|
1945
|
+
"complaints_and_escalations": "Complaints & Escalations",
|
|
1946
|
+
"automotive_technician": "Automotive Technician",
|
|
1947
|
+
"automotive_repair": "Automotive Repair",
|
|
1948
|
+
"heavy_vehicle_mechanic": "Heavy Vehicle Mechanic",
|
|
1949
|
+
"vehicle_inspection": "Vehicle Inspection",
|
|
1950
|
+
"auto_body_and_paint": "Auto Body & Paint",
|
|
1951
|
+
"truck_driving": "Truck Driving",
|
|
1952
|
+
"delivery_and_courier": "Delivery & Courier",
|
|
1953
|
+
"public_transport": "Public Transport",
|
|
1954
|
+
"fleet_management": "Fleet Management"
|
|
1955
|
+
};
|
|
1956
|
+
|
|
1957
|
+
// src/job/job-taxonomy.util.ts
|
|
1958
|
+
var INDUSTRY_OF_SUB = new Map(
|
|
1959
|
+
JOB_TAXONOMY.flatMap(
|
|
1960
|
+
(c) => c.industries.flatMap((i) => i.subCategories.map((s) => [s, i.industry]))
|
|
1961
|
+
)
|
|
1962
|
+
);
|
|
1963
|
+
var CATEGORY_OF_SUB = new Map(
|
|
1964
|
+
JOB_TAXONOMY.flatMap(
|
|
1965
|
+
(c) => c.industries.flatMap((i) => i.subCategories.map((s) => [s, c.category]))
|
|
1966
|
+
)
|
|
1967
|
+
);
|
|
1968
|
+
var CATEGORY_OF_INDUSTRY = new Map(
|
|
1969
|
+
JOB_TAXONOMY.flatMap((c) => c.industries.map((i) => [i.industry, c.category]))
|
|
1970
|
+
);
|
|
1971
|
+
function industryOfSubCategory(sub) {
|
|
1972
|
+
return INDUSTRY_OF_SUB.get(sub);
|
|
1973
|
+
}
|
|
1974
|
+
function categoryOfSubCategory(sub) {
|
|
1975
|
+
return CATEGORY_OF_SUB.get(sub);
|
|
1976
|
+
}
|
|
1977
|
+
function categoryOfIndustry(industry) {
|
|
1978
|
+
return CATEGORY_OF_INDUSTRY.get(industry);
|
|
1979
|
+
}
|
|
1980
|
+
function industriesOfCategory(category) {
|
|
1981
|
+
return JOB_TAXONOMY.find((c) => c.category === category)?.industries.map((i) => i.industry) ?? [];
|
|
1982
|
+
}
|
|
1983
|
+
function subCategoriesOfIndustry(industry) {
|
|
1984
|
+
for (const c of JOB_TAXONOMY) {
|
|
1985
|
+
for (const i of c.industries) if (i.industry === industry) return i.subCategories;
|
|
1986
|
+
}
|
|
1987
|
+
return [];
|
|
1988
|
+
}
|
|
1989
|
+
function deriveIndustry(category, subCategories) {
|
|
1990
|
+
const subs = (subCategories ?? []).filter((s) => INDUSTRY_OF_SUB.has(s));
|
|
1991
|
+
if (subs.length === 0) return void 0;
|
|
1992
|
+
if (category) {
|
|
1993
|
+
const inCategory = subs.find((s) => CATEGORY_OF_SUB.get(s) === category);
|
|
1994
|
+
if (inCategory) return INDUSTRY_OF_SUB.get(inCategory);
|
|
1995
|
+
return void 0;
|
|
1996
|
+
}
|
|
1997
|
+
return INDUSTRY_OF_SUB.get(subs[0]);
|
|
1998
|
+
}
|
|
1999
|
+
|
|
2000
|
+
// src/post/post.schema.ts
|
|
848
2001
|
var import_yup19 = require("yup");
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
|
|
2002
|
+
|
|
2003
|
+
// src/post/post.constant.ts
|
|
2004
|
+
var PostStatus = /* @__PURE__ */ ((PostStatus2) => {
|
|
2005
|
+
PostStatus2["Draft"] = "draft";
|
|
2006
|
+
PostStatus2["Published"] = "published";
|
|
2007
|
+
PostStatus2["Archived"] = "archived";
|
|
2008
|
+
return PostStatus2;
|
|
2009
|
+
})(PostStatus || {});
|
|
2010
|
+
var SupportedPostStatuses = Object.values(PostStatus);
|
|
2011
|
+
|
|
2012
|
+
// src/post/post.schema.ts
|
|
2013
|
+
var PostSchema = (0, import_yup19.object)({
|
|
2014
|
+
/** Headline shown in listings and at the top of the post. */
|
|
2015
|
+
title: (0, import_yup19.string)().required().min(5).max(200).label("Title"),
|
|
2016
|
+
/** User-friendly, unique URL identifier. */
|
|
2017
|
+
slug: (0, import_yup19.string)().required().max(250).label("Slug"),
|
|
2018
|
+
/** Short summary used in listings and meta description fallback. */
|
|
2019
|
+
excerpt: (0, import_yup19.string)().max(500).optional().label("Excerpt"),
|
|
2020
|
+
/** Rendered HTML source of truth for the post body (sanitized on write/render).
|
|
2021
|
+
* Supports rich formatting markdown can't express (image size/alignment, etc). */
|
|
2022
|
+
bodyHTML: (0, import_yup19.string)().required().min(1).label("Body (HTML)"),
|
|
2023
|
+
/** Optional Markdown mirror of the body (portable text / search fallback).
|
|
2024
|
+
* Kept for back-compat and plain-text derivation; bodyHTML is authoritative. */
|
|
2025
|
+
bodyMarkdown: (0, import_yup19.string)().optional().label("Body (Markdown)"),
|
|
2026
|
+
/** Cover/hero image URL. Not `.url()`-validated: the value is either an
|
|
2027
|
+
* uploaded file URL served by this platform (which may be a bare host like
|
|
2028
|
+
* `http://localhost:3082/...` in dev, that yup's `.url()` wrongly rejects) or
|
|
2029
|
+
* an admin-pasted link. Kept as a plain string; empty ⇒ null. */
|
|
2030
|
+
coverImage: (0, import_yup19.string)().nullable().optional().label("Cover image"),
|
|
2031
|
+
/** Author (user id). */
|
|
2032
|
+
authorId: (0, import_yup19.string)().required().label("Author ID"),
|
|
2033
|
+
/** Free-form tags for filtering and related-posts. */
|
|
2034
|
+
tags: (0, import_yup19.array)().of((0, import_yup19.string)().trim().required()).default([]).label("Tags"),
|
|
2035
|
+
/** Estimated reading time in minutes (server-derived from body length). */
|
|
2036
|
+
readingTimeMinutes: (0, import_yup19.number)().min(0).optional().label("Reading time (minutes)"),
|
|
2037
|
+
/** SEO overrides. */
|
|
2038
|
+
seoTags: (0, import_yup19.object)({
|
|
2039
|
+
description: (0, import_yup19.string)().optional().label("Description"),
|
|
2040
|
+
keywords: (0, import_yup19.array)().of((0, import_yup19.string)().required()).optional().label("Keywords")
|
|
2041
|
+
}).nullable().optional().label("SEO Tags"),
|
|
2042
|
+
/** When the post was first published (epoch ms). Server-owned. */
|
|
2043
|
+
publishedAt: (0, import_yup19.number)().nullable().optional().label("Published at"),
|
|
2044
|
+
/** Whether the post is featured in the blog listing. */
|
|
2045
|
+
isFeatured: (0, import_yup19.boolean)().default(false).optional().label("Is featured"),
|
|
2046
|
+
/** Publication state. */
|
|
2047
|
+
status: (0, import_yup19.string)().oneOf(SupportedPostStatuses).default("draft" /* Draft */).required().label("Status")
|
|
2048
|
+
}).concat(DbDefaultSchema).noUnknown().label("Post");
|
|
2049
|
+
|
|
2050
|
+
// src/pagination/pagination.schema.ts
|
|
2051
|
+
var import_yup20 = require("yup");
|
|
2052
|
+
var PaginationSchema = (0, import_yup20.object)().shape({
|
|
2053
|
+
page: (0, import_yup20.number)().required().min(1).label("Page").default(1),
|
|
2054
|
+
limit: (0, import_yup20.number)().required().min(1).max(100).label("Limit").default(10),
|
|
2055
|
+
sortBy: (0, import_yup20.string)().notOneOf([""]).optional().label("SortBy"),
|
|
2056
|
+
nextPage: (0, import_yup20.string)().optional().label("Next Page Token"),
|
|
2057
|
+
prevPage: (0, import_yup20.string)().optional().label("Previous Page Token"),
|
|
2058
|
+
sortDirection: (0, import_yup20.string)().oneOf(["asc", "desc"]).optional().label("Sort Direction")
|
|
856
2059
|
});
|
|
857
2060
|
|
|
858
2061
|
// src/pagination/pagination.constant.ts
|
|
@@ -868,7 +2071,7 @@ var DefaultPaginationOptions = {
|
|
|
868
2071
|
};
|
|
869
2072
|
|
|
870
2073
|
// src/report/report.schema.ts
|
|
871
|
-
var
|
|
2074
|
+
var import_yup21 = require("yup");
|
|
872
2075
|
|
|
873
2076
|
// src/report/report.constant.ts
|
|
874
2077
|
var ResourceType = /* @__PURE__ */ ((ResourceType3) => {
|
|
@@ -892,15 +2095,15 @@ var ReportReason = /* @__PURE__ */ ((ReportReason3) => {
|
|
|
892
2095
|
var SupportedReportReasons = Object.values(ReportReason);
|
|
893
2096
|
|
|
894
2097
|
// src/report/report.schema.ts
|
|
895
|
-
var ReportSchema = (0,
|
|
896
|
-
type: (0,
|
|
897
|
-
resourceId: (0,
|
|
898
|
-
reason: (0,
|
|
899
|
-
comment: (0,
|
|
2098
|
+
var ReportSchema = (0, import_yup21.object)({
|
|
2099
|
+
type: (0, import_yup21.mixed)().oneOf(SupportedResourceTypes).required().label("Type"),
|
|
2100
|
+
resourceId: (0, import_yup21.string)().required().label("Resource ID"),
|
|
2101
|
+
reason: (0, import_yup21.mixed)().oneOf(SupportedReportReasons).required("Please choose a reason").label("Reason"),
|
|
2102
|
+
comment: (0, import_yup21.string)().max(1e3).optional().label("Comment")
|
|
900
2103
|
}).label("Report Schema");
|
|
901
2104
|
|
|
902
2105
|
// src/user/user.schema.ts
|
|
903
|
-
var
|
|
2106
|
+
var import_yup34 = require("yup");
|
|
904
2107
|
|
|
905
2108
|
// src/user/user.constant.ts
|
|
906
2109
|
var UserRole = /* @__PURE__ */ ((UserRole2) => {
|
|
@@ -982,51 +2185,51 @@ var MIN_SALARY_LOWER_BOUND = 0;
|
|
|
982
2185
|
var MIN_SALARY_UPPER_BOUND = 1e6;
|
|
983
2186
|
|
|
984
2187
|
// src/user/work-experience.schema.ts
|
|
985
|
-
var
|
|
986
|
-
var WorkExperienceSchema = (0,
|
|
2188
|
+
var import_yup22 = require("yup");
|
|
2189
|
+
var WorkExperienceSchema = (0, import_yup22.object)().shape({
|
|
987
2190
|
company: PageSchema.pick(["name", "slug", "type", "logo"]).deepPartial().concat(PageSchema.pick(["name", "type"])).required().label("Company"),
|
|
988
|
-
designation: (0,
|
|
2191
|
+
designation: (0, import_yup22.string)().trim().required().label("Designation"),
|
|
989
2192
|
duration: DurationSchema({
|
|
990
2193
|
format: "YYYY-MM",
|
|
991
2194
|
startLabel: "Start Date",
|
|
992
2195
|
endLabel: "End Date"
|
|
993
2196
|
}).required().label("Duration"),
|
|
994
|
-
description: (0,
|
|
2197
|
+
description: (0, import_yup22.string)().trim().max(3e3).optional().label("Description"),
|
|
995
2198
|
location: LocationSchema.required().label("Location"),
|
|
996
|
-
isRemote: (0,
|
|
2199
|
+
isRemote: (0, import_yup22.boolean)().oneOf([true, false]).default(false).label("Is Remote")
|
|
997
2200
|
}).noUnknown().strict().label("Work Experience");
|
|
998
2201
|
|
|
999
2202
|
// src/user/education.schema.ts
|
|
1000
|
-
var
|
|
1001
|
-
var EducationSchema = (0,
|
|
2203
|
+
var import_yup23 = require("yup");
|
|
2204
|
+
var EducationSchema = (0, import_yup23.object)({
|
|
1002
2205
|
institute: PageSchema.pick(["name", "slug", "type", "logo"]).deepPartial().concat(PageSchema.pick(["name", "type"])).required().label("Institute"),
|
|
1003
|
-
course: (0,
|
|
1004
|
-
fieldOfStudy: (0,
|
|
2206
|
+
course: (0, import_yup23.string)().trim().required().label("Course"),
|
|
2207
|
+
fieldOfStudy: (0, import_yup23.string)().trim().required().label("Field of Study"),
|
|
1005
2208
|
duration: DurationSchema({
|
|
1006
2209
|
format: "YYYY-MM",
|
|
1007
2210
|
startLabel: "Start Date",
|
|
1008
2211
|
endLabel: "End Date"
|
|
1009
2212
|
}).required().label("Duration"),
|
|
1010
|
-
description: (0,
|
|
1011
|
-
isDistanceLearning: (0,
|
|
2213
|
+
description: (0, import_yup23.string)().trim().max(3e3).optional().label("Description"),
|
|
2214
|
+
isDistanceLearning: (0, import_yup23.boolean)().default(false).label("Is Distance Learning"),
|
|
1012
2215
|
location: LocationSchema.required().label("Location"),
|
|
1013
|
-
studyType: (0,
|
|
2216
|
+
studyType: (0, import_yup23.string)().oneOf(SupportedStudyTypes).trim().max(50).required().label("Study Type")
|
|
1014
2217
|
}).noUnknown().strict().label("Education");
|
|
1015
2218
|
|
|
1016
2219
|
// src/user/user-skill.schema.ts
|
|
1017
|
-
var
|
|
1018
|
-
var UserSkillSchema = (0,
|
|
1019
|
-
name: (0,
|
|
1020
|
-
proficiencyLevel: (0,
|
|
2220
|
+
var import_yup24 = require("yup");
|
|
2221
|
+
var UserSkillSchema = (0, import_yup24.object)({
|
|
2222
|
+
name: (0, import_yup24.string)().required().label("Name"),
|
|
2223
|
+
proficiencyLevel: (0, import_yup24.string)().oneOf(SupportedProficiencyLevels).required().label("Proficiency Level"),
|
|
1021
2224
|
lastUsed: dateString().format("YYYY-MM").nullable().optional().label("Last Used")
|
|
1022
2225
|
}).noUnknown().strict().label("Skill");
|
|
1023
2226
|
|
|
1024
2227
|
// src/user/project.schema.ts
|
|
1025
|
-
var
|
|
1026
|
-
var UserProjectSchema = (0,
|
|
1027
|
-
name: (0,
|
|
1028
|
-
url: (0,
|
|
1029
|
-
description: (0,
|
|
2228
|
+
var import_yup25 = require("yup");
|
|
2229
|
+
var UserProjectSchema = (0, import_yup25.object)({
|
|
2230
|
+
name: (0, import_yup25.string)().trim().max(50).required().label("Name"),
|
|
2231
|
+
url: (0, import_yup25.string)().optional().label("URL"),
|
|
2232
|
+
description: (0, import_yup25.string)().trim().min(100).max(3e3).required().label("Description"),
|
|
1030
2233
|
duration: DurationSchema({
|
|
1031
2234
|
format: "YYYY-MM",
|
|
1032
2235
|
startLabel: "Start Date",
|
|
@@ -1035,83 +2238,83 @@ var UserProjectSchema = (0, import_yup24.object)({
|
|
|
1035
2238
|
}).noUnknown().strict().label("Project");
|
|
1036
2239
|
|
|
1037
2240
|
// src/user/user-certification.schema.ts
|
|
1038
|
-
var
|
|
1039
|
-
var UserCertificationSchema = (0,
|
|
1040
|
-
name: (0,
|
|
2241
|
+
var import_yup26 = require("yup");
|
|
2242
|
+
var UserCertificationSchema = (0, import_yup26.object)({
|
|
2243
|
+
name: (0, import_yup26.string)().trim().max(100).required().label("Name"),
|
|
1041
2244
|
// TODO: Add validation for authority
|
|
1042
|
-
authority: (0,
|
|
1043
|
-
licenseNumber: (0,
|
|
2245
|
+
authority: (0, import_yup26.string)().trim().max(100).required().label("Authority"),
|
|
2246
|
+
licenseNumber: (0, import_yup26.string)().trim().max(50).optional().label("License Number"),
|
|
1044
2247
|
duration: DurationSchema({
|
|
1045
2248
|
format: "YYYY-MM",
|
|
1046
2249
|
startLabel: "Start Date",
|
|
1047
2250
|
endLabel: "End Date"
|
|
1048
2251
|
}).optional().nullable().label("Duration"),
|
|
1049
|
-
url: (0,
|
|
2252
|
+
url: (0, import_yup26.string)().optional().label("URL")
|
|
1050
2253
|
}).noUnknown().strict().label("Certification");
|
|
1051
2254
|
|
|
1052
2255
|
// src/user/user-interest.schema.ts
|
|
1053
|
-
var
|
|
1054
|
-
var UserInterestSchema = (0,
|
|
2256
|
+
var import_yup27 = require("yup");
|
|
2257
|
+
var UserInterestSchema = (0, import_yup27.string)().trim().required().label("Interest");
|
|
1055
2258
|
|
|
1056
2259
|
// src/user/user-language.schema.ts
|
|
1057
|
-
var
|
|
1058
|
-
var UserLanguageSchema = (0,
|
|
1059
|
-
name: (0,
|
|
1060
|
-
proficiencyLevel: (0,
|
|
2260
|
+
var import_yup28 = require("yup");
|
|
2261
|
+
var UserLanguageSchema = (0, import_yup28.object)({
|
|
2262
|
+
name: (0, import_yup28.string)().trim().required().label("Name"),
|
|
2263
|
+
proficiencyLevel: (0, import_yup28.string)().oneOf(SupportedProficiencyLevels).trim().max(50).required().label("Proficiency Level")
|
|
1061
2264
|
}).noUnknown().strict().label("Language");
|
|
1062
2265
|
|
|
1063
2266
|
// src/user/user-additional-info.schema.ts
|
|
1064
|
-
var
|
|
1065
|
-
var UserAdditionalInfoSchema = (0,
|
|
1066
|
-
title: (0,
|
|
1067
|
-
description: (0,
|
|
2267
|
+
var import_yup29 = require("yup");
|
|
2268
|
+
var UserAdditionalInfoSchema = (0, import_yup29.object)({
|
|
2269
|
+
title: (0, import_yup29.string)().trim().max(60).required().label("Title"),
|
|
2270
|
+
description: (0, import_yup29.string)().trim().max(1e3).required().label("Description")
|
|
1068
2271
|
}).noUnknown().strict().label("User Additional Info");
|
|
1069
2272
|
|
|
1070
2273
|
// src/user/general-detail.schema.ts
|
|
1071
|
-
var
|
|
1072
|
-
var UserGeneralDetailSchema = (0,
|
|
1073
|
-
id: (0,
|
|
1074
|
-
name: (0,
|
|
1075
|
-
first: (0,
|
|
1076
|
-
last: (0,
|
|
2274
|
+
var import_yup30 = require("yup");
|
|
2275
|
+
var UserGeneralDetailSchema = (0, import_yup30.object)({
|
|
2276
|
+
id: (0, import_yup30.string)().optional().label("ID"),
|
|
2277
|
+
name: (0, import_yup30.object)().shape({
|
|
2278
|
+
first: (0, import_yup30.string)().trim().max(50).required().label("First Name"),
|
|
2279
|
+
last: (0, import_yup30.string)().trim().max(50).optional().label("Last Name")
|
|
1077
2280
|
}).required().label("Name"),
|
|
1078
|
-
headline: (0,
|
|
1079
|
-
image: (0,
|
|
1080
|
-
aboutMe: (0,
|
|
1081
|
-
email: (0,
|
|
1082
|
-
mobile: (0,
|
|
1083
|
-
emailVerified: (0,
|
|
1084
|
-
mobileVerified: (0,
|
|
1085
|
-
experienceLevel: (0,
|
|
2281
|
+
headline: (0, import_yup30.string)().trim().max(200).optional().label("Headline"),
|
|
2282
|
+
image: (0, import_yup30.string)().optional().label("Image"),
|
|
2283
|
+
aboutMe: (0, import_yup30.string)().trim().max(3e3).optional().label("About Me"),
|
|
2284
|
+
email: (0, import_yup30.string)().required().label("Email"),
|
|
2285
|
+
mobile: (0, import_yup30.string)().nullable().optional().label("Mobile"),
|
|
2286
|
+
emailVerified: (0, import_yup30.string)().nullable().optional().label("Email Verified"),
|
|
2287
|
+
mobileVerified: (0, import_yup30.string)().nullable().optional().label("Mobile Verified"),
|
|
2288
|
+
experienceLevel: (0, import_yup30.string)().oneOf(SupportedExperienceLevels).required().label("Experience level"),
|
|
1086
2289
|
location: LocationSchema.required().label("Location"),
|
|
1087
|
-
region: (0,
|
|
1088
|
-
country: (0,
|
|
1089
|
-
lang: (0,
|
|
2290
|
+
region: (0, import_yup30.object)().shape({
|
|
2291
|
+
country: (0, import_yup30.string)().trim().required().label("Region Country"),
|
|
2292
|
+
lang: (0, import_yup30.string)().trim().required().label("Region Language")
|
|
1090
2293
|
}).optional().default(void 0).label("Region"),
|
|
1091
|
-
profileVisibility: (0,
|
|
2294
|
+
profileVisibility: (0, import_yup30.string)().oneOf(SupportedUserProfileVisibilities).default("public" /* Public */).label("Profile Visibility")
|
|
1092
2295
|
}).noUnknown().strict().label("General Detail");
|
|
1093
2296
|
|
|
1094
2297
|
// src/user/user-job-preferences.schema.ts
|
|
1095
|
-
var
|
|
1096
|
-
var UserJobPreferencesSchema = (0,
|
|
2298
|
+
var import_yup31 = require("yup");
|
|
2299
|
+
var UserJobPreferencesSchema = (0, import_yup31.object)({
|
|
1097
2300
|
/**
|
|
1098
2301
|
* Whether the job seeker is openly signalling availability. Surfaces the
|
|
1099
2302
|
* "Open to work" badge on the public profile and boosts visibility in
|
|
1100
2303
|
* recruiter search. Defaults to `false` - users must opt in.
|
|
1101
2304
|
*/
|
|
1102
|
-
openToWork: (0,
|
|
2305
|
+
openToWork: (0, import_yup31.boolean)().default(false).label("Open to Work"),
|
|
1103
2306
|
/**
|
|
1104
2307
|
* How urgently the user is looking for their next job. Drives match scoring
|
|
1105
2308
|
* and can downgrade the visibility of expired or low-relevance postings for
|
|
1106
2309
|
* users in `passively_browsing` mode.
|
|
1107
2310
|
*/
|
|
1108
|
-
jobSearchUrgency: (0,
|
|
2311
|
+
jobSearchUrgency: (0, import_yup31.string)().oneOf(SupportedJobSearchUrgencies).required().label("Job Search Urgency"),
|
|
1109
2312
|
/**
|
|
1110
2313
|
* Locations the user wants to work in. Stores the full `LocationSchema`
|
|
1111
2314
|
* shape (country, city, state, geo, etc.) as returned by the locations
|
|
1112
2315
|
* autocomplete API.
|
|
1113
2316
|
*/
|
|
1114
|
-
jobLocations: (0,
|
|
2317
|
+
jobLocations: (0, import_yup31.array)().of(LocationSchema.required().label("Job Location")).min(1, "Pick at least one preferred location.").required().label("Job Locations"),
|
|
1115
2318
|
/**
|
|
1116
2319
|
* Seniority levels the user wants jobs to be matched against. Multi-select
|
|
1117
2320
|
* (up to 2) for borderline candidates.
|
|
@@ -1122,7 +2325,7 @@ var UserJobPreferencesSchema = (0, import_yup30.object)({
|
|
|
1122
2325
|
* Both reuse the same `ExperienceLevel` taxonomy from `common.constant.ts`
|
|
1123
2326
|
* so search/match logic doesn't have to translate between two vocabularies.
|
|
1124
2327
|
*/
|
|
1125
|
-
targetExperienceLevels: (0,
|
|
2328
|
+
targetExperienceLevels: (0, import_yup31.array)().of((0, import_yup31.string)().oneOf(SupportedExperienceLevels).required()).min(1, "Pick at least one experience level.").max(2, "You can select at most 2 experience levels.").required().label("Target Experience Levels"),
|
|
1126
2329
|
/**
|
|
1127
2330
|
* Specializations the user is searching for - free-form titles.
|
|
1128
2331
|
*
|
|
@@ -1131,19 +2334,19 @@ var UserJobPreferencesSchema = (0, import_yup30.object)({
|
|
|
1131
2334
|
* surfaces a curated "Popular Roles" picker for discovery, but the user
|
|
1132
2335
|
* can ultimately add any title; matching/normalization happens downstream.
|
|
1133
2336
|
*/
|
|
1134
|
-
jobRoles: (0,
|
|
2337
|
+
jobRoles: (0, import_yup31.array)().of((0, import_yup31.string)().trim().max(120).required()).min(1, "Pick at least one role.").required().label("Job Roles"),
|
|
1135
2338
|
/**
|
|
1136
2339
|
* Minimum acceptable annual base salary, in `minSalaryCurrency`.
|
|
1137
2340
|
* Stored as an integer in the currency's major unit (e.g. dollars, not cents).
|
|
1138
2341
|
* Defaults to 0 ("any salary") rather than being optional - every job-seeker
|
|
1139
2342
|
* has a floor, even if it's zero.
|
|
1140
2343
|
*/
|
|
1141
|
-
minSalary: (0,
|
|
1142
|
-
minSalaryCurrency: (0,
|
|
2344
|
+
minSalary: (0, import_yup31.number)().integer().min(MIN_SALARY_LOWER_BOUND).max(MIN_SALARY_UPPER_BOUND).default(0).required().label("Minimum Salary"),
|
|
2345
|
+
minSalaryCurrency: (0, import_yup31.string)().oneOf(SupportedSalaryCurrencies).default("USD").required().label("Minimum Salary Currency"),
|
|
1143
2346
|
/**
|
|
1144
2347
|
* Marketing-attribution capture from the final onboarding step.
|
|
1145
2348
|
*/
|
|
1146
|
-
referralSource: (0,
|
|
2349
|
+
referralSource: (0, import_yup31.string)().oneOf(SupportedReferralSources).required().label("Referral Source"),
|
|
1147
2350
|
/**
|
|
1148
2351
|
* Resumes the user has uploaded. Embedded directly on the user document
|
|
1149
2352
|
* (capped at 5) - they're cheap to denormalize, every wizard step that
|
|
@@ -1157,25 +2360,25 @@ var UserJobPreferencesSchema = (0, import_yup30.object)({
|
|
|
1157
2360
|
* AI resume-builder flow - onboarding uploads land here, AI-built resumes
|
|
1158
2361
|
* live in their own collection.
|
|
1159
2362
|
*/
|
|
1160
|
-
resumes: (0,
|
|
1161
|
-
(0,
|
|
2363
|
+
resumes: (0, import_yup31.array)().of(
|
|
2364
|
+
(0, import_yup31.object)({
|
|
1162
2365
|
// Stable id assigned on upload - used to address a specific entry
|
|
1163
2366
|
// for delete / set-primary operations without exposing the GCS URL
|
|
1164
2367
|
// as a route key.
|
|
1165
|
-
id: (0,
|
|
1166
|
-
url: (0,
|
|
1167
|
-
filename: (0,
|
|
1168
|
-
sizeBytes: (0,
|
|
1169
|
-
mimeType: (0,
|
|
1170
|
-
uploadedAt: (0,
|
|
1171
|
-
isPrimary: (0,
|
|
2368
|
+
id: (0, import_yup31.string)().required().label("ID"),
|
|
2369
|
+
url: (0, import_yup31.string)().required().label("Resume URL"),
|
|
2370
|
+
filename: (0, import_yup31.string)().trim().max(255).optional().label("Filename"),
|
|
2371
|
+
sizeBytes: (0, import_yup31.number)().integer().min(0).optional().label("Size (bytes)"),
|
|
2372
|
+
mimeType: (0, import_yup31.string)().trim().max(120).optional().label("MIME Type"),
|
|
2373
|
+
uploadedAt: (0, import_yup31.date)().required().label("Uploaded At"),
|
|
2374
|
+
isPrimary: (0, import_yup31.boolean)().default(false).label("Is Primary")
|
|
1172
2375
|
}).noUnknown().strict().label("Resume")
|
|
1173
2376
|
).max(5, "You can keep at most 5 resumes on file.").default([]).label("Resumes"),
|
|
1174
2377
|
/**
|
|
1175
2378
|
* Set when the user finishes the wizard's last step. Acts as the gate the
|
|
1176
2379
|
* onboarding hook checks to redirect users who haven't completed setup.
|
|
1177
2380
|
*/
|
|
1178
|
-
onboardingCompletedAt: (0,
|
|
2381
|
+
onboardingCompletedAt: (0, import_yup31.date)().nullable().optional().label("Onboarding Completed At"),
|
|
1179
2382
|
/**
|
|
1180
2383
|
* Parser-suggested values for wizard fields, written by the resume-upload
|
|
1181
2384
|
* flow. Every parser-derived field lands here - including profile-shaped
|
|
@@ -1195,106 +2398,106 @@ var UserJobPreferencesSchema = (0, import_yup30.object)({
|
|
|
1195
2398
|
* APIs. If `user.<field>` is empty there, the correct behavior is empty,
|
|
1196
2399
|
* because the user has not confirmed it yet.
|
|
1197
2400
|
*/
|
|
1198
|
-
pendingPrefill: (0,
|
|
1199
|
-
headline: (0,
|
|
1200
|
-
aboutMe: (0,
|
|
1201
|
-
mobile: (0,
|
|
2401
|
+
pendingPrefill: (0, import_yup31.object)({
|
|
2402
|
+
headline: (0, import_yup31.string)().trim().optional().label("Pending Headline"),
|
|
2403
|
+
aboutMe: (0, import_yup31.string)().trim().optional().label("Pending About Me"),
|
|
2404
|
+
mobile: (0, import_yup31.string)().trim().optional().label("Pending Mobile"),
|
|
1202
2405
|
location: LocationSchema.optional().default(void 0).label("Pending Location"),
|
|
1203
|
-
experienceLevel: (0,
|
|
1204
|
-
socialAccounts: (0,
|
|
1205
|
-
workExperiences: (0,
|
|
1206
|
-
educations: (0,
|
|
2406
|
+
experienceLevel: (0, import_yup31.string)().oneOf(SupportedExperienceLevels).optional().label("Pending Experience Level"),
|
|
2407
|
+
socialAccounts: (0, import_yup31.array)().of(SocialAccountSchema.required()).optional().label("Pending Social Accounts"),
|
|
2408
|
+
workExperiences: (0, import_yup31.array)().of(WorkExperienceSchema.required()).optional().label("Pending Work Experiences"),
|
|
2409
|
+
educations: (0, import_yup31.array)().of(EducationSchema.required()).optional().label("Pending Educations")
|
|
1207
2410
|
}).nullable().optional().default(void 0).label("Pending Prefill")
|
|
1208
2411
|
}).noUnknown().strict().label("User Job Preferences Schema");
|
|
1209
2412
|
|
|
1210
2413
|
// src/user/user-recruiter-profile.schema.ts
|
|
1211
|
-
var
|
|
1212
|
-
var RecruiterPageLinkSchema = (0,
|
|
2414
|
+
var import_yup32 = require("yup");
|
|
2415
|
+
var RecruiterPageLinkSchema = (0, import_yup32.object)({
|
|
1213
2416
|
page: PageSchema.pick(["name", "slug", "type", "logo"]).deepPartial().concat(PageSchema.pick(["name", "type"])).required().label("Company Page"),
|
|
1214
|
-
jobTitle: (0,
|
|
2417
|
+
jobTitle: (0, import_yup32.string)().trim().max(100).optional().label("Job Title")
|
|
1215
2418
|
}).noUnknown().strict().label("Recruiter Page Link");
|
|
1216
|
-
var UserRecruiterProfileSchema = (0,
|
|
1217
|
-
recruiterProfile: (0,
|
|
1218
|
-
hiringFor: (0,
|
|
2419
|
+
var UserRecruiterProfileSchema = (0, import_yup32.object)({
|
|
2420
|
+
recruiterProfile: (0, import_yup32.object)({
|
|
2421
|
+
hiringFor: (0, import_yup32.array)().of(RecruiterPageLinkSchema).default([]).label("Hiring For")
|
|
1219
2422
|
}).optional().default(void 0).label("Recruiter Profile")
|
|
1220
2423
|
}).noUnknown().strict().label("User Recruiter Profile");
|
|
1221
2424
|
|
|
1222
2425
|
// src/user/user-coordinator-profile.schema.ts
|
|
1223
|
-
var
|
|
1224
|
-
var CoordinatorPageLinkSchema = (0,
|
|
2426
|
+
var import_yup33 = require("yup");
|
|
2427
|
+
var CoordinatorPageLinkSchema = (0, import_yup33.object)({
|
|
1225
2428
|
page: PageSchema.pick(["name", "slug", "type", "logo"]).deepPartial().concat(PageSchema.pick(["name", "type"])).required().label("Institute Page"),
|
|
1226
|
-
jobTitle: (0,
|
|
2429
|
+
jobTitle: (0, import_yup33.string)().trim().max(100).optional().label("Job Title")
|
|
1227
2430
|
}).noUnknown().strict().label("Coordinator Page Link");
|
|
1228
|
-
var UserCoordinatorProfileSchema = (0,
|
|
1229
|
-
coordinatorProfile: (0,
|
|
1230
|
-
coordinatesAt: (0,
|
|
2431
|
+
var UserCoordinatorProfileSchema = (0, import_yup33.object)({
|
|
2432
|
+
coordinatorProfile: (0, import_yup33.object)({
|
|
2433
|
+
coordinatesAt: (0, import_yup33.array)().of(CoordinatorPageLinkSchema).default([]).label("Coordinates At")
|
|
1231
2434
|
}).optional().default(void 0).label("Coordinator Profile")
|
|
1232
2435
|
}).noUnknown().strict().label("User Coordinator Profile");
|
|
1233
2436
|
|
|
1234
2437
|
// src/user/user.schema.ts
|
|
1235
|
-
var UserSchema = (0,
|
|
2438
|
+
var UserSchema = (0, import_yup34.object)({
|
|
1236
2439
|
/**
|
|
1237
2440
|
* Related auth account id from auth Server (e.g. Better auth https://auth.thejob.dev)
|
|
1238
2441
|
*/
|
|
1239
|
-
authAccountId: (0,
|
|
2442
|
+
authAccountId: (0, import_yup34.string)().required().label("Auth Account ID"),
|
|
1240
2443
|
/**
|
|
1241
2444
|
* Social media information about the user (e.g. LinkedIn, GitHub, etc.)
|
|
1242
2445
|
*/
|
|
1243
|
-
socialAccounts: (0,
|
|
2446
|
+
socialAccounts: (0, import_yup34.array)().of(SocialAccountSchema).default([]).label("Social Accounts"),
|
|
1244
2447
|
/**
|
|
1245
2448
|
* Work experience information about the user
|
|
1246
2449
|
*/
|
|
1247
|
-
workExperiences: (0,
|
|
2450
|
+
workExperiences: (0, import_yup34.array)().of(WorkExperienceSchema).required().default([]).label("Work Experiences"),
|
|
1248
2451
|
/**
|
|
1249
2452
|
* Education information about the user
|
|
1250
2453
|
*/
|
|
1251
|
-
educations: (0,
|
|
2454
|
+
educations: (0, import_yup34.array)().of(EducationSchema).required().default([]).label("Educations"),
|
|
1252
2455
|
/**
|
|
1253
2456
|
* Skills information about the user
|
|
1254
2457
|
*/
|
|
1255
|
-
skills: (0,
|
|
2458
|
+
skills: (0, import_yup34.array)().of(UserSkillSchema).required().default([]).label("Skills"),
|
|
1256
2459
|
/**
|
|
1257
2460
|
* Projects information about the user
|
|
1258
2461
|
*/
|
|
1259
|
-
projects: (0,
|
|
2462
|
+
projects: (0, import_yup34.array)().of(UserProjectSchema).default([]).label("Projects"),
|
|
1260
2463
|
/**
|
|
1261
2464
|
* Certifications information about the user
|
|
1262
2465
|
*/
|
|
1263
|
-
certifications: (0,
|
|
2466
|
+
certifications: (0, import_yup34.array)().of(UserCertificationSchema).default([]).label("Certifications"),
|
|
1264
2467
|
/**
|
|
1265
2468
|
* Interests information about the user.
|
|
1266
2469
|
*/
|
|
1267
|
-
interests: (0,
|
|
2470
|
+
interests: (0, import_yup34.array)().of(UserInterestSchema).optional().default([]).label("Interests"),
|
|
1268
2471
|
/**
|
|
1269
2472
|
* Languages information about the user
|
|
1270
2473
|
*/
|
|
1271
|
-
languages: (0,
|
|
2474
|
+
languages: (0, import_yup34.array)().of(UserLanguageSchema).required().default([]).label("Languages"),
|
|
1272
2475
|
/**
|
|
1273
2476
|
* Additional information about the user
|
|
1274
2477
|
*/
|
|
1275
|
-
additionalInfo: (0,
|
|
2478
|
+
additionalInfo: (0, import_yup34.array)().of(UserAdditionalInfoSchema).default([]).label("Additional Information"),
|
|
1276
2479
|
/**
|
|
1277
2480
|
* Status of the user account
|
|
1278
2481
|
*/
|
|
1279
|
-
status: (0,
|
|
2482
|
+
status: (0, import_yup34.string)().oneOf(SupportedUserStatuses).required().label("Status"),
|
|
1280
2483
|
/**
|
|
1281
2484
|
* Roles assigned to the user
|
|
1282
2485
|
*/
|
|
1283
|
-
roles: (0,
|
|
2486
|
+
roles: (0, import_yup34.array)().of((0, import_yup34.string)().oneOf(SupportedUserRoles)).required().default(DefaultUserRoles).label("Roles"),
|
|
1284
2487
|
/**
|
|
1285
2488
|
* Vector embedding of the user's profile for semantic/hybrid search.
|
|
1286
2489
|
* Generated from a structured summary of skills, experience, education, etc.
|
|
1287
2490
|
* Only generated for public profiles with sufficient completeness (≥60%).
|
|
1288
2491
|
*/
|
|
1289
|
-
embedding: (0,
|
|
1290
|
-
vector: (0,
|
|
1291
|
-
model: (0,
|
|
2492
|
+
embedding: (0, import_yup34.object)({
|
|
2493
|
+
vector: (0, import_yup34.array)((0, import_yup34.number)().required()).optional().label("Embedding vector"),
|
|
2494
|
+
model: (0, import_yup34.string)().optional().label("Embedding model")
|
|
1292
2495
|
}).nullable().optional().label("Embedding")
|
|
1293
2496
|
}).concat(UserGeneralDetailSchema).concat(UserJobPreferencesSchema).concat(UserRecruiterProfileSchema).concat(UserCoordinatorProfileSchema).noUnknown().strict().label("User Schema");
|
|
1294
2497
|
|
|
1295
2498
|
// src/user/user-completeness.schema.ts
|
|
1296
|
-
var
|
|
1297
|
-
var UserCompletenessSchema = (0,
|
|
2499
|
+
var import_yup35 = require("yup");
|
|
2500
|
+
var UserCompletenessSchema = (0, import_yup35.object)({
|
|
1298
2501
|
additionalInfo: CompletenessScoreSchema(0).label("Additional Info"),
|
|
1299
2502
|
// Optional
|
|
1300
2503
|
certifications: CompletenessScoreSchema(0).label("Certifications"),
|
|
@@ -1348,9 +2551,13 @@ var StudentCompletenessSchema = UserCompletenessSchema.omit([
|
|
|
1348
2551
|
GroupTranslationSchema,
|
|
1349
2552
|
GroupVisibility,
|
|
1350
2553
|
InputQuestionSchema,
|
|
2554
|
+
JOB_TAXONOMY,
|
|
2555
|
+
JobCategory,
|
|
2556
|
+
JobIndustry,
|
|
1351
2557
|
JobSchema,
|
|
1352
2558
|
JobSearchUrgency,
|
|
1353
2559
|
JobStatus,
|
|
2560
|
+
JobSubCategory,
|
|
1354
2561
|
LocationSchema,
|
|
1355
2562
|
MIN_SALARY_LOWER_BOUND,
|
|
1356
2563
|
MIN_SALARY_UPPER_BOUND,
|
|
@@ -1358,6 +2565,8 @@ var StudentCompletenessSchema = UserCompletenessSchema.omit([
|
|
|
1358
2565
|
PageStatus,
|
|
1359
2566
|
PageType,
|
|
1360
2567
|
PaginationSchema,
|
|
2568
|
+
PostSchema,
|
|
2569
|
+
PostStatus,
|
|
1361
2570
|
ProficiencyLevel,
|
|
1362
2571
|
QuestionSchema,
|
|
1363
2572
|
QuestionType,
|
|
@@ -1382,10 +2591,14 @@ var StudentCompletenessSchema = UserCompletenessSchema.omit([
|
|
|
1382
2591
|
SupportedEmployeeCounts,
|
|
1383
2592
|
SupportedEmploymentTypes,
|
|
1384
2593
|
SupportedExperienceLevels,
|
|
2594
|
+
SupportedJobCategories,
|
|
2595
|
+
SupportedJobIndustries,
|
|
1385
2596
|
SupportedJobSearchUrgencies,
|
|
1386
2597
|
SupportedJobStatuses,
|
|
2598
|
+
SupportedJobSubCategories,
|
|
1387
2599
|
SupportedPageStatuses,
|
|
1388
2600
|
SupportedPageTypes,
|
|
2601
|
+
SupportedPostStatuses,
|
|
1389
2602
|
SupportedProficiencyLevels,
|
|
1390
2603
|
SupportedQuestionTypes,
|
|
1391
2604
|
SupportedReferralSources,
|
|
@@ -1398,6 +2611,7 @@ var StudentCompletenessSchema = UserCompletenessSchema.omit([
|
|
|
1398
2611
|
SupportedUserRoles,
|
|
1399
2612
|
SupportedUserStatuses,
|
|
1400
2613
|
SupportedWorkModes,
|
|
2614
|
+
TAXONOMY_LABELS,
|
|
1401
2615
|
TermsAcceptedSchema,
|
|
1402
2616
|
UserAdditionalInfoSchema,
|
|
1403
2617
|
UserCertificationSchema,
|
|
@@ -1418,6 +2632,12 @@ var StudentCompletenessSchema = UserCompletenessSchema.omit([
|
|
|
1418
2632
|
UserStatus,
|
|
1419
2633
|
WorkExperienceSchema,
|
|
1420
2634
|
WorkMode,
|
|
2635
|
+
categoryOfIndustry,
|
|
2636
|
+
categoryOfSubCategory,
|
|
1421
2637
|
dateString,
|
|
1422
|
-
|
|
2638
|
+
deriveIndustry,
|
|
2639
|
+
getSchemaByQuestion,
|
|
2640
|
+
industriesOfCategory,
|
|
2641
|
+
industryOfSubCategory,
|
|
2642
|
+
subCategoriesOfIndustry
|
|
1423
2643
|
});
|