PageSourceSearch

https://www.tokenworks.ai/assets/Careers-B07hRIcf.js

js tokenworks.ai collected 2026-10-05 15:54:59 UTC 2,348 bytes, 1 lines download raw bytes

1import{r as e,j as a}from"./react-vendor-3j0hp6R8.js";import{u as o,P as s,S as r,C as t}from"./components-Cn-udBT4.js";import"./router-vendor-Dg-IODGf.js";import"./icons-vendor-Ct9oFFFD.js";import"./vendor-CQdPkgkm.js";import"./charts-vendor-DRVidz11.js";import"./guides-general-CJN1k0im.js";function i(){const[i,l]=e.useState([]),[n,c]=e.useState(!0),[d,h]=e.useState(null),p=o();return e.useEffect(()=>{let e=!0;return(async()=>{try{c(!0);const a=await fetch("/api/careers/positions"),o=await a.json();if(!a.ok)throw new Error(o.error?.message||"Failed to load roles");e&&(l(o.data||[]),h(null))}catch(a){e&&(h("Unable to load roles right now. Please try again soon."),p({type:"error",message:"Unable to load roles right now."}))}finally{e&&c(!1)}})(),()=>{e=!1}},[p]),a.jsxs("div",{className:"careers-page",children:[a.jsx(s,{title:"Careers",description:"Explore open roles at TokenWorks and help build research infrastructure for language, cultural heritage, and knowledge systems.",canonicalPath:"/careers"}),a.jsx(r,{kicker:"We're Hiring",title:"Build Research Infrastructure for Language & Culture",subtitle:"Join TokenWorks to support research-grade NLP, knowledge-graph, and digital scholarship tools."}),a.jsx("section",{className:"jobs-section",children:a.jsxs("div",{className:"container",children:[a.jsxs("div",{className:"jobs-header",children:[a.jsx("h2",{children:"Open Positions"}),a.jsx("p",{children:"We're looking for people who want to advance language and cultural-heritage research through durable tools and workflows."})]}),a.jsxs("div",{className:"jobs-grid",children:[n&&a.jsx(t,{title:"Loading roles",meta:"Fetching open positions",body:"Please hang tight while we load the latest openings."}),!n&&d&&a.jsx(t,{title:"Roles temporarily unavailable",meta:"Please check back",body:d,primary:{label:"Email us",href:"mailto:[email protected]"}}),!n&&!d&&0===i.length&&a.jsx(t,{title:"No open roles at the moment",meta:"Check back soon",body:"We're growing quickly. New openings will be posted here as they go live."}),!n&&!d&&i.map(e=>a.jsx(t,{title:e.title,meta:`${e.location||"Remote"} • ${e.commitment||"Flexible"} • ${e.compensation||"Compensation varies"}`,body:e.summary||e.description||"View role details and apply.",primary:{label:"View Role",href:`/careers/${e.slug}`}},e.id))]})]})})]})}export{i as default};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.