import { motion } from "framer-motion"; import { Link } from "wouter"; import { ArrowLeft, Briefcase, DollarSign, Clock, MapPin, Loader2, Building2 } from "lucide-react"; import { useQuery } from "@tanstack/react-query"; import gridBg from '@assets/generated_images/dark_subtle_digital_grid_texture.png'; export default function Opportunities() { const { data: opportunities, isLoading } = useQuery({ queryKey: ["/api/opportunities"], }); const formatSalary = (min?: number, max?: number) => { if (!min && !max) return "Competitive"; if (min && max) return `$${(min / 1000).toFixed(0)}k - $${(max / 1000).toFixed(0)}k`; if (min) return `$${(min / 1000).toFixed(0)}k+`; return `Up to $${(max! / 1000).toFixed(0)}k`; }; const getArmColor = (arm: string) => { switch (arm) { case 'axiom': return 'text-blue-400 border-blue-400/30 bg-blue-500/10'; case 'codex': return 'text-yellow-400 border-yellow-400/30 bg-yellow-500/10'; case 'aegis': return 'text-red-400 border-red-400/30 bg-red-500/10'; default: return 'text-cyan-400 border-cyan-400/30 bg-cyan-500/10'; } }; return (
{/* Background */}
{/* Header */}

Opportunities

Join the AeThex Ecosystem ยท {opportunities?.length || 0} Open Positions

{isLoading ? (
Loading opportunities...
) : !opportunities || opportunities.length === 0 ? (

No opportunities available yet.

Check back soon for new positions!

) : (
{opportunities.map((opp: any, index: number) => (

{opp.title}

{opp.job_type || 'Full-time'} {opp.experience_level && ( {opp.experience_level} )}

{opp.description}

{opp.arm_affiliation} {opp.status === 'open' && ( Open )}
{formatSalary(opp.salary_min, opp.salary_max)}
Per Year
))}
)}
); }