@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.d.cts
CHANGED
|
@@ -556,6 +556,12 @@ declare const JobSchema: ObjectSchema<{
|
|
|
556
556
|
keywords?: (string | undefined)[] | undefined;
|
|
557
557
|
} | null | undefined;
|
|
558
558
|
jdSummary: string | undefined;
|
|
559
|
+
jobHighlights: {
|
|
560
|
+
responsibilities?: (string | undefined)[] | undefined;
|
|
561
|
+
requirements?: (string | undefined)[] | undefined;
|
|
562
|
+
benefits?: (string | undefined)[] | undefined;
|
|
563
|
+
qualifications?: (string | undefined)[] | undefined;
|
|
564
|
+
} | null | undefined;
|
|
559
565
|
canCreateAlert: boolean | undefined;
|
|
560
566
|
canDirectApply: boolean | undefined;
|
|
561
567
|
hasApplied: boolean | undefined;
|
|
@@ -656,6 +662,12 @@ declare const JobSchema: ObjectSchema<{
|
|
|
656
662
|
keywords: "";
|
|
657
663
|
};
|
|
658
664
|
jdSummary: undefined;
|
|
665
|
+
jobHighlights: {
|
|
666
|
+
responsibilities: "";
|
|
667
|
+
requirements: "";
|
|
668
|
+
benefits: "";
|
|
669
|
+
qualifications: "";
|
|
670
|
+
};
|
|
659
671
|
canCreateAlert: undefined;
|
|
660
672
|
canDirectApply: undefined;
|
|
661
673
|
hasApplied: undefined;
|
|
@@ -686,6 +698,423 @@ declare const JobSchema: ObjectSchema<{
|
|
|
686
698
|
}, "">;
|
|
687
699
|
type TJobSchema = InferType<typeof JobSchema>;
|
|
688
700
|
|
|
701
|
+
/**
|
|
702
|
+
* Job classification taxonomy: category -> industry -> subCategory.
|
|
703
|
+
*
|
|
704
|
+
* Edit this file directly to change the taxonomy. The three views below cannot drift
|
|
705
|
+
* apart silently: JOB_TAXONOMY is typed against the enums, and TAXONOMY_LABELS is keyed
|
|
706
|
+
* by them, so adding a value without wiring it into both is a compile error.
|
|
707
|
+
*
|
|
708
|
+
* Values are lowercase snake_case constants, like every other enum in this package
|
|
709
|
+
* (EmploymentType, WorkMode, ExperienceLevel). They are what gets STORED and what the
|
|
710
|
+
* LLM must emit; the human-readable English label lives in TAXONOMY_LABELS, and each
|
|
711
|
+
* UI translates the constant for display rather than showing the stored string.
|
|
712
|
+
*
|
|
713
|
+
* Why constants and not the free text they replace: these are enforced as an `enum`
|
|
714
|
+
* in the Gemini response schema, which is structural. The previous free-text taxonomy
|
|
715
|
+
* relied on a prompt rule ("COPIED VERBATIM ... do NOT invent") and drifted anyway —
|
|
716
|
+
* production accumulated 115 distinct categories against 8 defined, and 848
|
|
717
|
+
* subCategories against 147.
|
|
718
|
+
*/
|
|
719
|
+
declare enum JobCategory {
|
|
720
|
+
TechnologyDataAndDigital = "technology_data_and_digital",
|
|
721
|
+
HealthcareAndLifeSciences = "healthcare_and_life_sciences",
|
|
722
|
+
AgricultureEnergyAndEnvironment = "agriculture_energy_and_environment",
|
|
723
|
+
FinanceBankingAndLegal = "finance_banking_and_legal",
|
|
724
|
+
ConstructionEngineeringAndTrades = "construction_engineering_and_trades",
|
|
725
|
+
MarketingMediaAndCreative = "marketing_media_and_creative",
|
|
726
|
+
LogisticsSalesAndOperations = "logistics_sales_and_operations",
|
|
727
|
+
EducationAndPublicService = "education_and_public_service",
|
|
728
|
+
HospitalityFoodAndTourism = "hospitality_food_and_tourism",
|
|
729
|
+
ManufacturingAndProduction = "manufacturing_and_production",
|
|
730
|
+
RetailAndConsumerServices = "retail_and_consumer_services",
|
|
731
|
+
AutomotiveAndTransportServices = "automotive_and_transport_services"
|
|
732
|
+
}
|
|
733
|
+
declare const SupportedJobCategories: JobCategory[];
|
|
734
|
+
declare enum JobIndustry {
|
|
735
|
+
SoftwareAndWebDevelopment = "software_and_web_development",
|
|
736
|
+
DataAIAndAnalytics = "data_ai_and_analytics",
|
|
737
|
+
ITInfrastructureAndSecurity = "it_infrastructure_and_security",
|
|
738
|
+
ProductAndDesign = "product_and_design",
|
|
739
|
+
MedicalPractice = "medical_practice",
|
|
740
|
+
TherapyAndRehabilitation = "therapy_and_rehabilitation",
|
|
741
|
+
BioTechAndPharmaceuticals = "biotech_and_pharmaceuticals",
|
|
742
|
+
MentalHealth = "mental_health",
|
|
743
|
+
RenewableEnergy = "renewable_energy",
|
|
744
|
+
NaturalResourcesAndUtilities = "natural_resources_and_utilities",
|
|
745
|
+
AgricultureAndForestry = "agriculture_and_forestry",
|
|
746
|
+
EnvironmentalServices = "environmental_services",
|
|
747
|
+
BankingAndInvestments = "banking_and_investments",
|
|
748
|
+
FinTechAndInsurance = "fintech_and_insurance",
|
|
749
|
+
AccountingAndAudit = "accounting_and_audit",
|
|
750
|
+
LegalServices = "legal_services",
|
|
751
|
+
ArchitectureAndPlanning = "architecture_and_planning",
|
|
752
|
+
CivilAndIndustrialEngineering = "civil_and_industrial_engineering",
|
|
753
|
+
SkilledTrades = "skilled_trades",
|
|
754
|
+
MarketingAndAdvertising = "marketing_and_advertising",
|
|
755
|
+
MediaAndEntertainment = "media_and_entertainment",
|
|
756
|
+
CreativeArtsAndFashion = "creative_arts_and_fashion",
|
|
757
|
+
SupplyChainAndTransport = "supply_chain_and_transport",
|
|
758
|
+
SalesAndBusinessDevelopment = "sales_and_business_development",
|
|
759
|
+
HRAndAdmin = "hr_and_admin",
|
|
760
|
+
EducationAndTraining = "education_and_training",
|
|
761
|
+
GovernmentAndNonProfit = "government_and_non_profit",
|
|
762
|
+
FoodAndBeverageService = "food_and_beverage_service",
|
|
763
|
+
AccommodationAndTravel = "accommodation_and_travel",
|
|
764
|
+
ProductionAndAssembly = "production_and_assembly",
|
|
765
|
+
QualityAndProcess = "quality_and_process",
|
|
766
|
+
RetailOperations = "retail_operations",
|
|
767
|
+
CustomerService = "customer_service",
|
|
768
|
+
VehicleServiceAndRepair = "vehicle_service_and_repair",
|
|
769
|
+
DrivingAndTransport = "driving_and_transport"
|
|
770
|
+
}
|
|
771
|
+
declare const SupportedJobIndustries: JobIndustry[];
|
|
772
|
+
declare enum JobSubCategory {
|
|
773
|
+
Frontend = "frontend",
|
|
774
|
+
Backend = "backend",
|
|
775
|
+
FullStack = "full_stack",
|
|
776
|
+
MobileAppDev = "mobile_app_dev",
|
|
777
|
+
GameDevelopment = "game_development",
|
|
778
|
+
EmbeddedSystems = "embedded_systems",
|
|
779
|
+
QAAndTesting = "qa_and_testing",
|
|
780
|
+
SoftwareEngineering = "software_engineering",
|
|
781
|
+
WebDevelopment = "web_development",
|
|
782
|
+
SoftwareArchitecture = "software_architecture",
|
|
783
|
+
DataScience = "data_science",
|
|
784
|
+
MachineLearning = "machine_learning",
|
|
785
|
+
ArtificialIntelligence = "artificial_intelligence",
|
|
786
|
+
BusinessIntelligence = "business_intelligence",
|
|
787
|
+
DataEngineering = "data_engineering",
|
|
788
|
+
DataVisualization = "data_visualization",
|
|
789
|
+
DataAnalysis = "data_analysis",
|
|
790
|
+
DeepLearning = "deep_learning",
|
|
791
|
+
Cybersecurity = "cybersecurity",
|
|
792
|
+
CloudEngineering = "cloud_engineering",
|
|
793
|
+
DevOps = "devops",
|
|
794
|
+
NetworkAdministration = "network_administration",
|
|
795
|
+
SystemsEngineering = "systems_engineering",
|
|
796
|
+
DatabaseAdministration = "database_administration",
|
|
797
|
+
ITSupport = "it_support",
|
|
798
|
+
TechnicalSupport = "technical_support",
|
|
799
|
+
SiteReliabilityEngineering = "site_reliability_engineering",
|
|
800
|
+
ProductManagement = "product_management",
|
|
801
|
+
UIUXDesign = "ui_ux_design",
|
|
802
|
+
UserResearch = "user_research",
|
|
803
|
+
InteractionDesign = "interaction_design",
|
|
804
|
+
TechnicalWriting = "technical_writing",
|
|
805
|
+
ProductMarketing = "product_marketing",
|
|
806
|
+
BusinessAnalysis = "business_analysis",
|
|
807
|
+
ProjectManagement = "project_management",
|
|
808
|
+
ProgramManagement = "program_management",
|
|
809
|
+
Nursing = "nursing",
|
|
810
|
+
GeneralPractice = "general_practice",
|
|
811
|
+
Surgery = "surgery",
|
|
812
|
+
Pediatrics = "pediatrics",
|
|
813
|
+
EmergencyMedicine = "emergency_medicine",
|
|
814
|
+
Radiology = "radiology",
|
|
815
|
+
Anesthesiology = "anesthesiology",
|
|
816
|
+
Geriatrics = "geriatrics",
|
|
817
|
+
Oncology = "oncology",
|
|
818
|
+
Dentistry = "dentistry",
|
|
819
|
+
DentalHygiene = "dental_hygiene",
|
|
820
|
+
MedicalSecretary = "medical_secretary",
|
|
821
|
+
Veterinary = "veterinary",
|
|
822
|
+
PhysicalTherapy = "physical_therapy",
|
|
823
|
+
OccupationalTherapy = "occupational_therapy",
|
|
824
|
+
SpeechPathology = "speech_pathology",
|
|
825
|
+
RespiratoryTherapy = "respiratory_therapy",
|
|
826
|
+
ElderlyCare = "elderly_care",
|
|
827
|
+
DisabilitySupport = "disability_support",
|
|
828
|
+
ClinicalResearch = "clinical_research",
|
|
829
|
+
DrugDevelopment = "drug_development",
|
|
830
|
+
Bioinformatics = "bioinformatics",
|
|
831
|
+
Microbiology = "microbiology",
|
|
832
|
+
Pharmacology = "pharmacology",
|
|
833
|
+
LaboratoryTech = "laboratory_tech",
|
|
834
|
+
Psychology = "psychology",
|
|
835
|
+
Counseling = "counseling",
|
|
836
|
+
Psychiatry = "psychiatry",
|
|
837
|
+
SocialWork = "social_work",
|
|
838
|
+
AddictionRecovery = "addiction_recovery",
|
|
839
|
+
ChildWelfare = "child_welfare",
|
|
840
|
+
SolarEnergy = "solar_energy",
|
|
841
|
+
WindPower = "wind_power",
|
|
842
|
+
Hydroelectric = "hydroelectric",
|
|
843
|
+
BatteryAndStorageTech = "battery_and_storage_tech",
|
|
844
|
+
Geothermal = "geothermal",
|
|
845
|
+
Biofuels = "biofuels",
|
|
846
|
+
OilAndGas = "oil_and_gas",
|
|
847
|
+
MiningAndGeology = "mining_and_geology",
|
|
848
|
+
NuclearEnergy = "nuclear_energy",
|
|
849
|
+
WaterManagement = "water_management",
|
|
850
|
+
ElectricalGridOperations = "electrical_grid_operations",
|
|
851
|
+
AgriTech = "agri_tech",
|
|
852
|
+
Horticulture = "horticulture",
|
|
853
|
+
LivestockManagement = "livestock_management",
|
|
854
|
+
Forestry = "forestry",
|
|
855
|
+
FisheriesAndAquaculture = "fisheries_and_aquaculture",
|
|
856
|
+
SoilScience = "soil_science",
|
|
857
|
+
SustainabilityConsulting = "sustainability_consulting",
|
|
858
|
+
WasteManagement = "waste_management",
|
|
859
|
+
WildlifeConservation = "wildlife_conservation",
|
|
860
|
+
CarbonAccounting = "carbon_accounting",
|
|
861
|
+
Ecology = "ecology",
|
|
862
|
+
OccupationalHealthAndSafety = "occupational_health_and_safety",
|
|
863
|
+
Sustainability = "sustainability",
|
|
864
|
+
InvestmentBanking = "investment_banking",
|
|
865
|
+
CorporateFinance = "corporate_finance",
|
|
866
|
+
WealthManagement = "wealth_management",
|
|
867
|
+
VentureCapital = "venture_capital",
|
|
868
|
+
AssetManagement = "asset_management",
|
|
869
|
+
FinancialAnalysis = "financial_analysis",
|
|
870
|
+
FinancialPlanning = "financial_planning",
|
|
871
|
+
RiskManagement = "risk_management",
|
|
872
|
+
CreditAnalysis = "credit_analysis",
|
|
873
|
+
CryptocurrencyAndWeb3 = "cryptocurrency_and_web3",
|
|
874
|
+
DigitalPayments = "digital_payments",
|
|
875
|
+
ActuarialScience = "actuarial_science",
|
|
876
|
+
InsuranceUnderwriting = "insurance_underwriting",
|
|
877
|
+
ClaimsAdjustment = "claims_adjustment",
|
|
878
|
+
PublicAccounting = "public_accounting",
|
|
879
|
+
Taxation = "taxation",
|
|
880
|
+
ForensicAccounting = "forensic_accounting",
|
|
881
|
+
AuditAndAssurance = "audit_and_assurance",
|
|
882
|
+
Bookkeeping = "bookkeeping",
|
|
883
|
+
AccountsPayable = "accounts_payable",
|
|
884
|
+
AccountsReceivable = "accounts_receivable",
|
|
885
|
+
Payroll = "payroll",
|
|
886
|
+
Collections = "collections",
|
|
887
|
+
CorporateLaw = "corporate_law",
|
|
888
|
+
Litigation = "litigation",
|
|
889
|
+
IntellectualProperty = "intellectual_property",
|
|
890
|
+
ComplianceAndRegulatory = "compliance_and_regulatory",
|
|
891
|
+
ParalegalServices = "paralegal_services",
|
|
892
|
+
Paralegal = "paralegal",
|
|
893
|
+
UrbanPlanning = "urban_planning",
|
|
894
|
+
InteriorDesign = "interior_design",
|
|
895
|
+
LandscapeArchitecture = "landscape_architecture",
|
|
896
|
+
CADBIMManagement = "cad_bim_management",
|
|
897
|
+
ConstructionManagement = "construction_management",
|
|
898
|
+
SiteSupervision = "site_supervision",
|
|
899
|
+
StructuralEngineering = "structural_engineering",
|
|
900
|
+
MechanicalEngineering = "mechanical_engineering",
|
|
901
|
+
ElectricalEngineering = "electrical_engineering",
|
|
902
|
+
RoboticsAndAutomation = "robotics_and_automation",
|
|
903
|
+
ChemicalEngineering = "chemical_engineering",
|
|
904
|
+
IndustrialEngineering = "industrial_engineering",
|
|
905
|
+
ProcessEngineering = "process_engineering",
|
|
906
|
+
Mechatronics = "mechatronics",
|
|
907
|
+
Electrician = "electrician",
|
|
908
|
+
PlumbingAndHVAC = "plumbing_and_hvac",
|
|
909
|
+
Carpentry = "carpentry",
|
|
910
|
+
Welding = "welding",
|
|
911
|
+
HeavyEquipmentOperation = "heavy_equipment_operation",
|
|
912
|
+
Masonry = "masonry",
|
|
913
|
+
Machining = "machining",
|
|
914
|
+
FacilitiesMaintenance = "facilities_maintenance",
|
|
915
|
+
DigitalMarketing = "digital_marketing",
|
|
916
|
+
SEOSEM = "seo_sem",
|
|
917
|
+
ContentStrategy = "content_strategy",
|
|
918
|
+
SocialMediaManagement = "social_media_management",
|
|
919
|
+
BrandManagement = "brand_management",
|
|
920
|
+
MarketResearch = "market_research",
|
|
921
|
+
MarketingStrategy = "marketing_strategy",
|
|
922
|
+
Journalism = "journalism",
|
|
923
|
+
VideoProduction = "video_production",
|
|
924
|
+
AnimationAndVFX = "animation_and_vfx",
|
|
925
|
+
AudioEngineering = "audio_engineering",
|
|
926
|
+
Photography = "photography",
|
|
927
|
+
Broadcasting = "broadcasting",
|
|
928
|
+
GraphicDesign = "graphic_design",
|
|
929
|
+
FineArts = "fine_arts",
|
|
930
|
+
FashionDesign = "fashion_design",
|
|
931
|
+
ApparelManufacturing = "apparel_manufacturing",
|
|
932
|
+
TextileDesign = "textile_design",
|
|
933
|
+
LogisticsManagement = "logistics_management",
|
|
934
|
+
Warehousing = "warehousing",
|
|
935
|
+
FleetOperations = "fleet_operations",
|
|
936
|
+
FreightForwarding = "freight_forwarding",
|
|
937
|
+
Procurement = "procurement",
|
|
938
|
+
Purchasing = "purchasing",
|
|
939
|
+
WarehouseOperations = "warehouse_operations",
|
|
940
|
+
FreightAndShipping = "freight_and_shipping",
|
|
941
|
+
EnterpriseSales = "enterprise_sales",
|
|
942
|
+
AccountManagement = "account_management",
|
|
943
|
+
RetailManagement = "retail_management",
|
|
944
|
+
RealEstateSales = "real_estate_sales",
|
|
945
|
+
CustomerSuccess = "customer_success",
|
|
946
|
+
SalesManagement = "sales_management",
|
|
947
|
+
SalesOperations = "sales_operations",
|
|
948
|
+
SalesSupport = "sales_support",
|
|
949
|
+
TechnicalSales = "technical_sales",
|
|
950
|
+
Recruiting = "recruiting",
|
|
951
|
+
CompensationAndBenefits = "compensation_and_benefits",
|
|
952
|
+
OfficeAdministration = "office_administration",
|
|
953
|
+
ExecutiveAssistance = "executive_assistance",
|
|
954
|
+
OrganizationalDevelopment = "organizational_development",
|
|
955
|
+
HROperations = "hr_operations",
|
|
956
|
+
TalentAcquisition = "talent_acquisition",
|
|
957
|
+
LearningAndDevelopment = "learning_and_development",
|
|
958
|
+
AdministrativeSupport = "administrative_support",
|
|
959
|
+
OfficeManagement = "office_management",
|
|
960
|
+
K12Teaching = "k_12_teaching",
|
|
961
|
+
HigherEducation = "higher_education",
|
|
962
|
+
SpecialEducation = "special_education",
|
|
963
|
+
ESLInstruction = "esl_instruction",
|
|
964
|
+
EdTech = "edtech",
|
|
965
|
+
CorporateTraining = "corporate_training",
|
|
966
|
+
PublicPolicy = "public_policy",
|
|
967
|
+
SocialServices = "social_services",
|
|
968
|
+
FundraisingAndGrants = "fundraising_and_grants",
|
|
969
|
+
LawEnforcement = "law_enforcement",
|
|
970
|
+
Military = "military",
|
|
971
|
+
Diplomacy = "diplomacy",
|
|
972
|
+
PublicAdministration = "public_administration",
|
|
973
|
+
RestaurantOperations = "restaurant_operations",
|
|
974
|
+
FoodPreparation = "food_preparation",
|
|
975
|
+
CulinaryArts = "culinary_arts",
|
|
976
|
+
BaristaAndBar = "barista_and_bar",
|
|
977
|
+
Catering = "catering",
|
|
978
|
+
FoodService = "food_service",
|
|
979
|
+
HotelOperations = "hotel_operations",
|
|
980
|
+
FrontDeskAndReception = "front_desk_and_reception",
|
|
981
|
+
Housekeeping = "housekeeping",
|
|
982
|
+
TravelAndTourism = "travel_and_tourism",
|
|
983
|
+
EventsAndConferences = "events_and_conferences",
|
|
984
|
+
Assembly = "assembly",
|
|
985
|
+
MachineOperation = "machine_operation",
|
|
986
|
+
ProductionManagement = "production_management",
|
|
987
|
+
ManufacturingEngineering = "manufacturing_engineering",
|
|
988
|
+
FoodProduction = "food_production",
|
|
989
|
+
Packaging = "packaging",
|
|
990
|
+
QualityAssurance = "quality_assurance",
|
|
991
|
+
QualityControl = "quality_control",
|
|
992
|
+
ProcessImprovement = "process_improvement",
|
|
993
|
+
MaintenanceAndReliability = "maintenance_and_reliability",
|
|
994
|
+
IndustrialSafety = "industrial_safety",
|
|
995
|
+
StoreManagement = "store_management",
|
|
996
|
+
SalesAssociate = "sales_associate",
|
|
997
|
+
VisualMerchandising = "visual_merchandising",
|
|
998
|
+
CashierAndCheckout = "cashier_and_checkout",
|
|
999
|
+
InventoryAndStock = "inventory_and_stock",
|
|
1000
|
+
CustomerSupport = "customer_support",
|
|
1001
|
+
CallCentre = "call_centre",
|
|
1002
|
+
ClientAdvisory = "client_advisory",
|
|
1003
|
+
ComplaintsAndEscalations = "complaints_and_escalations",
|
|
1004
|
+
AutomotiveTechnician = "automotive_technician",
|
|
1005
|
+
AutomotiveRepair = "automotive_repair",
|
|
1006
|
+
HeavyVehicleMechanic = "heavy_vehicle_mechanic",
|
|
1007
|
+
VehicleInspection = "vehicle_inspection",
|
|
1008
|
+
AutoBodyAndPaint = "auto_body_and_paint",
|
|
1009
|
+
TruckDriving = "truck_driving",
|
|
1010
|
+
DeliveryAndCourier = "delivery_and_courier",
|
|
1011
|
+
PublicTransport = "public_transport",
|
|
1012
|
+
FleetManagement = "fleet_management"
|
|
1013
|
+
}
|
|
1014
|
+
declare const SupportedJobSubCategories: JobSubCategory[];
|
|
1015
|
+
/**
|
|
1016
|
+
* The hierarchy: which industries belong to a category, and which subCategories to an
|
|
1017
|
+
* industry. Consumers use it to render dependent pickers and to validate that a job's
|
|
1018
|
+
* industry actually sits under its category.
|
|
1019
|
+
*/
|
|
1020
|
+
declare const JOB_TAXONOMY: ReadonlyArray<{
|
|
1021
|
+
category: JobCategory;
|
|
1022
|
+
industries: ReadonlyArray<{
|
|
1023
|
+
industry: JobIndustry;
|
|
1024
|
+
subCategories: readonly JobSubCategory[];
|
|
1025
|
+
}>;
|
|
1026
|
+
}>;
|
|
1027
|
+
/**
|
|
1028
|
+
* English display labels for every taxonomy constant. This is the source text the
|
|
1029
|
+
* taxonomy was defined in; it is ALSO what the enrichment prompt renders, so the model
|
|
1030
|
+
* still classifies against readable names while emitting the constant. UIs should
|
|
1031
|
+
* translate the constant (tEnum-style) rather than use these directly.
|
|
1032
|
+
*/
|
|
1033
|
+
declare const TAXONOMY_LABELS: Readonly<Record<JobCategory | JobIndustry | JobSubCategory, string>>;
|
|
1034
|
+
|
|
1035
|
+
/** The industry a subCategory belongs to, or undefined if it is not a known subCategory. */
|
|
1036
|
+
declare function industryOfSubCategory(sub: string): JobIndustry | undefined;
|
|
1037
|
+
/** The category a subCategory belongs to, or undefined if unknown. */
|
|
1038
|
+
declare function categoryOfSubCategory(sub: string): JobCategory | undefined;
|
|
1039
|
+
/** The category an industry belongs to, or undefined if unknown. */
|
|
1040
|
+
declare function categoryOfIndustry(industry: string): JobCategory | undefined;
|
|
1041
|
+
/** The industries under a category (empty if the category is unknown). */
|
|
1042
|
+
declare function industriesOfCategory(category: string): readonly JobIndustry[];
|
|
1043
|
+
/** The subCategories under an industry (empty if the industry is unknown). */
|
|
1044
|
+
declare function subCategoriesOfIndustry(industry: string): readonly JobSubCategory[];
|
|
1045
|
+
/**
|
|
1046
|
+
* Derive a job's industry from its category + subCategories. This is the function that
|
|
1047
|
+
* replaces asking the model for `industry`.
|
|
1048
|
+
*
|
|
1049
|
+
* Rule: the first subCategory that sits INSIDE the given category wins. Preferring the
|
|
1050
|
+
* category keeps the model's judgement about what the job is (see the file header) while
|
|
1051
|
+
* still deriving a structurally coherent industry; measured on ~57k jobs, 98.7% of those
|
|
1052
|
+
* with a real category and real subCategories have at least one subCategory inside it.
|
|
1053
|
+
*
|
|
1054
|
+
* Falls back, in order:
|
|
1055
|
+
* 1. no category given -> the first known subCategory's own industry;
|
|
1056
|
+
* 2. no subCategory sits in the category -> undefined (caller keeps whatever it had,
|
|
1057
|
+
* or stores null; we never drop a posting over this).
|
|
1058
|
+
*
|
|
1059
|
+
* Order matters: `subCategories` is the model's own ranking, most relevant first.
|
|
1060
|
+
*/
|
|
1061
|
+
declare function deriveIndustry(category: string | null | undefined, subCategories: readonly string[] | null | undefined): JobIndustry | undefined;
|
|
1062
|
+
|
|
1063
|
+
declare enum PostStatus {
|
|
1064
|
+
Draft = "draft",
|
|
1065
|
+
Published = "published",
|
|
1066
|
+
Archived = "archived"
|
|
1067
|
+
}
|
|
1068
|
+
declare const SupportedPostStatuses: PostStatus[];
|
|
1069
|
+
|
|
1070
|
+
declare const PostSchema: yup.ObjectSchema<{
|
|
1071
|
+
title: string;
|
|
1072
|
+
slug: string;
|
|
1073
|
+
excerpt: string | undefined;
|
|
1074
|
+
bodyHTML: string;
|
|
1075
|
+
bodyMarkdown: string | undefined;
|
|
1076
|
+
coverImage: string | null | undefined;
|
|
1077
|
+
authorId: string;
|
|
1078
|
+
tags: string[];
|
|
1079
|
+
readingTimeMinutes: number | undefined;
|
|
1080
|
+
seoTags: {
|
|
1081
|
+
description?: string | undefined;
|
|
1082
|
+
keywords?: string[] | undefined;
|
|
1083
|
+
} | null | undefined;
|
|
1084
|
+
publishedAt: number | null | undefined;
|
|
1085
|
+
isFeatured: boolean;
|
|
1086
|
+
status: NonNullable<PostStatus | undefined>;
|
|
1087
|
+
} & {
|
|
1088
|
+
shortId: string;
|
|
1089
|
+
createdBy: string;
|
|
1090
|
+
createdAt: number;
|
|
1091
|
+
updatedBy: string | undefined;
|
|
1092
|
+
updatedAt: number | undefined;
|
|
1093
|
+
}, yup.AnyObject, {
|
|
1094
|
+
title: undefined;
|
|
1095
|
+
slug: undefined;
|
|
1096
|
+
excerpt: undefined;
|
|
1097
|
+
bodyHTML: undefined;
|
|
1098
|
+
bodyMarkdown: undefined;
|
|
1099
|
+
coverImage: undefined;
|
|
1100
|
+
authorId: undefined;
|
|
1101
|
+
tags: never[];
|
|
1102
|
+
readingTimeMinutes: undefined;
|
|
1103
|
+
seoTags: {
|
|
1104
|
+
description: undefined;
|
|
1105
|
+
keywords: "";
|
|
1106
|
+
};
|
|
1107
|
+
publishedAt: undefined;
|
|
1108
|
+
isFeatured: false;
|
|
1109
|
+
status: PostStatus.Draft;
|
|
1110
|
+
shortId: undefined;
|
|
1111
|
+
createdBy: undefined;
|
|
1112
|
+
createdAt: undefined;
|
|
1113
|
+
updatedBy: undefined;
|
|
1114
|
+
updatedAt: undefined;
|
|
1115
|
+
}, "">;
|
|
1116
|
+
type TPostSchema = InferType<typeof PostSchema>;
|
|
1117
|
+
|
|
689
1118
|
declare const LocationSchema: yup.ObjectSchema<{
|
|
690
1119
|
placeId: string | null | undefined;
|
|
691
1120
|
country: string;
|
|
@@ -2211,4 +2640,4 @@ declare const StudentCompletenessSchema: yup.ObjectSchema<{
|
|
|
2211
2640
|
};
|
|
2212
2641
|
}, "">;
|
|
2213
2642
|
|
|
2214
|
-
export { AnswerChoiceType, ApplicationReceivePreference, ChoiceQuestionSchema, Common, CompensationType, CompletenessScoreSchema, ContactTypes, CoordinatorPageLinkSchema, DISPLAY_DATE_FORMAT, DISPLAY_DATE_FORMAT_SHORT, DateStringSchema, DbDefaultSchema, DefaultPaginatedResponse, DefaultPaginationOptions, DefaultUserRoles, DurationSchema, EMPTY_STRING, EducationLevel, EducationSchema, EmployeeCount, EmploymentType, ExperienceLevel, GeneraDetailFields, GroupManagedBy, GroupMembershipSchema, GroupMembershipStatus, GroupSchema, GroupStatus, GroupTranslationSchema, GroupVisibility, InputQuestionSchema, JobSchema, JobSearchUrgency, JobStatus, LocationSchema, MIN_SALARY_LOWER_BOUND, MIN_SALARY_UPPER_BOUND, PageSchema, PageStatus, PageType, type PaginatedResponse, PaginationSchema, ProficiencyLevel, QuestionSchema, QuestionType, ReadAndAcknowledgeQuestionSchema, RecruiterPageLinkSchema, ReferralSource, ReportReason, ReportSchema, ResourceType, SITEMAP_FORMAT, SYSTEM_DATE_FORMAT, SkillSchema, SocialAccount, SocialAccountSchema, StudentCompletenessSchema, StudyType, SupportedAnswerChoiceTypes, SupportedApplicationReceivePreferences, SupportedCompensationTypes, SupportedContactTypes, SupportedEducationLevels, SupportedEmployeeCounts, SupportedEmploymentTypes, SupportedExperienceLevels, SupportedJobSearchUrgencies, SupportedJobStatuses, SupportedPageStatuses, SupportedPageTypes, SupportedProficiencyLevels, SupportedQuestionTypes, SupportedReferralSources, SupportedReportReasons, SupportedResourceTypes, SupportedSalaryCurrencies, type SupportedSalaryCurrency, SupportedSocialAccounts, SupportedStudyTypes, SupportedUserProfileVisibilities, SupportedUserRoles, SupportedUserStatuses, SupportedWorkModes, type TChoiceQuestionSchema, type TDurationSchema, type TInputQuestionSchema, type TJobSchema, type TQuestionSchema, type TReadAndAcknowledgeQuestionSchema, type TUserIdAndCreatedAtSchema, TermsAcceptedSchema, UserAdditionalInfoSchema, UserCertificationSchema, UserCompletenessSchema, UserCoordinatorProfileSchema, UserDetailType, UserGeneralDetailSchema, UserIdAndCreatedAtSchema, UserInterestSchema, UserJobPreferencesSchema, UserLanguageSchema, type UserProfileOverview, UserProfileVisibility, UserProjectSchema, UserRecruiterProfileSchema, UserRole, UserSchema, UserSkillSchema, UserStatus, WorkExperienceSchema, WorkMode, dateString, getSchemaByQuestion };
|
|
2643
|
+
export { AnswerChoiceType, ApplicationReceivePreference, ChoiceQuestionSchema, Common, CompensationType, CompletenessScoreSchema, ContactTypes, CoordinatorPageLinkSchema, DISPLAY_DATE_FORMAT, DISPLAY_DATE_FORMAT_SHORT, DateStringSchema, DbDefaultSchema, DefaultPaginatedResponse, DefaultPaginationOptions, DefaultUserRoles, DurationSchema, EMPTY_STRING, EducationLevel, EducationSchema, EmployeeCount, EmploymentType, ExperienceLevel, GeneraDetailFields, GroupManagedBy, GroupMembershipSchema, GroupMembershipStatus, GroupSchema, GroupStatus, GroupTranslationSchema, GroupVisibility, InputQuestionSchema, JOB_TAXONOMY, JobCategory, JobIndustry, JobSchema, JobSearchUrgency, JobStatus, JobSubCategory, LocationSchema, MIN_SALARY_LOWER_BOUND, MIN_SALARY_UPPER_BOUND, PageSchema, PageStatus, PageType, type PaginatedResponse, PaginationSchema, PostSchema, PostStatus, ProficiencyLevel, QuestionSchema, QuestionType, ReadAndAcknowledgeQuestionSchema, RecruiterPageLinkSchema, ReferralSource, ReportReason, ReportSchema, ResourceType, SITEMAP_FORMAT, SYSTEM_DATE_FORMAT, SkillSchema, SocialAccount, SocialAccountSchema, StudentCompletenessSchema, StudyType, SupportedAnswerChoiceTypes, SupportedApplicationReceivePreferences, SupportedCompensationTypes, SupportedContactTypes, SupportedEducationLevels, SupportedEmployeeCounts, SupportedEmploymentTypes, SupportedExperienceLevels, SupportedJobCategories, SupportedJobIndustries, SupportedJobSearchUrgencies, SupportedJobStatuses, SupportedJobSubCategories, SupportedPageStatuses, SupportedPageTypes, SupportedPostStatuses, SupportedProficiencyLevels, SupportedQuestionTypes, SupportedReferralSources, SupportedReportReasons, SupportedResourceTypes, SupportedSalaryCurrencies, type SupportedSalaryCurrency, SupportedSocialAccounts, SupportedStudyTypes, SupportedUserProfileVisibilities, SupportedUserRoles, SupportedUserStatuses, SupportedWorkModes, TAXONOMY_LABELS, type TChoiceQuestionSchema, type TDurationSchema, type TInputQuestionSchema, type TJobSchema, type TPostSchema, type TQuestionSchema, type TReadAndAcknowledgeQuestionSchema, type TUserIdAndCreatedAtSchema, TermsAcceptedSchema, UserAdditionalInfoSchema, UserCertificationSchema, UserCompletenessSchema, UserCoordinatorProfileSchema, UserDetailType, UserGeneralDetailSchema, UserIdAndCreatedAtSchema, UserInterestSchema, UserJobPreferencesSchema, UserLanguageSchema, type UserProfileOverview, UserProfileVisibility, UserProjectSchema, UserRecruiterProfileSchema, UserRole, UserSchema, UserSkillSchema, UserStatus, WorkExperienceSchema, WorkMode, categoryOfIndustry, categoryOfSubCategory, dateString, deriveIndustry, getSchemaByQuestion, industriesOfCategory, industryOfSubCategory, subCategoriesOfIndustry };
|