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