{"id":36,"date":"2026-10-10T12:45:00","date_gmt":"2026-10-10T12:45:00","guid":{"rendered":"https:\/\/jtjee.com\/?page_id=36"},"modified":"2026-10-10T17:05:47","modified_gmt":"2026-10-10T17:05:47","slug":"career","status":"publish","type":"page","link":"https:\/\/jtjee.com\/or\/career\/","title":{"rendered":"\u0b1c\u0b40\u0b2c\u0b3f\u0b15\u0b3e \u0b38\u0b41\u0b2f\u0b4b\u0b17"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"36\" class=\"elementor elementor-36\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7e729239 e-con-full e-flex e-con e-parent\" data-id=\"7e729239\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2d4497fc elementor-widget elementor-widget-shortcode\" data-id=\"2d4497fc\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\"><link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\"><link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin><link rel=\"stylesheet\" href=\"https:\/\/fonts.googleapis.com\/css2?family=Noto+Sans:wght@400;600;700;800&family=Noto+Sans+Oriya:wght@700&display=swap\"><link rel=\"stylesheet\" href=\"https:\/\/jtjee.com\/wp-content\/plugins\/jtjee-recruitment\/assets\/site.css?ver=1.4.0\"><script src=\"https:\/\/jtjee.com\/wp-content\/plugins\/jtjee-recruitment\/assets\/site.js?ver=1.4.0\" defer><\/script><div class=\"jtp-site jtp-site-header\"><header class=\"hdr\"><div class=\"wrap\"><a class=\"logo\" href=\"https:\/\/jtjee.com\/or\/\" aria-label=\"JTJEE Education home\"><img decoding=\"async\" src=\"https:\/\/jtjee.com\/wp-content\/uploads\/2026\/10\/JTJEE_Eng.png\" alt=\"JTJEE Education \u2014 Boards, IIT &amp; Medical \u2014 XI, XII &amp; Foundations for Juniors\"><\/a><div class=\"hdr-r\"><p class=\"tagline tagline-or\" lang=\"or\" data-no-translation>\u0b06\u0b1c\u0b3f\u0b30 \u0b36\u0b3f\u0b15\u0b4d\u0b37\u0b3e, \u0b06\u0b38\u0b28\u0b4d\u0b24\u0b3e\u0b15\u0b3e\u0b32\u0b3f\u0b30 \u0b28\u0b47\u0b24\u0b43\u0b24\u0b4d\u0b71<\/p><div class=\"lang\" role=\"group\" aria-label=\"Language \/ \u0b2d\u0b3e\u0b37\u0b3e\" data-no-translation><a href=\"https:\/\/jtjee.com\/or\/wp-json\/wp\/v2\/pages\/36\" hreflang=\"en\" lang=\"en\" data-no-translation>English<\/a><a href=\"https:\/\/jtjee.com\/or\/wp-json\/wp\/v2\/pages\/36\" hreflang=\"or\" lang=\"or\" class=\"is-on\" aria-current=\"true\" data-no-translation>\u0b13\u0b21\u0b3c\u0b3f\u0b06<\/a><\/div><div class=\"logins\"><div class=\"has-sub login-dd\"><button type=\"button\" class=\"login\" data-sub-toggle aria-expanded=\"false\" aria-controls=\"jtp-login-menu\">Login <svg width=\"12\" height=\"12\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M6 9l6 6 6-6\"\/><\/svg><\/button><ul class=\"sub login-menu\" id=\"jtp-login-menu\"><li><a href=\"#student-login\">Student Login<\/a><\/li><li><a href=\"#staff-login\">Staff Login<\/a><\/li><\/ul><\/div><\/div><\/div><\/div><\/header><nav class=\"nav\" aria-label=\"Main\"><input type=\"checkbox\" id=\"jtp-nav\" class=\"nav-toggle\" hidden><label for=\"jtp-nav\" class=\"nav-btn\">Menu <span class=\"bars\" aria-hidden=\"true\"><\/span><\/label><ul class=\"menu\"><li><a href=\"https:\/\/jtjee.com\/\">HOME<\/a><\/li><li><a href=\"https:\/\/jtjee.com\/about-us\/\">About Us<\/a><\/li><li><a href=\"#online\">ONLINE CLASSES<\/a><\/li><li><a href=\"#live\">LIVE<\/a><\/li><li><a href=\"#scholarships\">SCHOLARSHIPS<\/a><\/li><li><a href=\"#test-series\">TEST SERIES<\/a><\/li><li class=\"has-sub\"><button type=\"button\" class=\"sub-parent\" data-sub-toggle aria-expanded=\"false\" aria-controls=\"jtp-sub-7\">MORE <svg width=\"12\" height=\"12\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M6 9l6 6 6-6\"\/><\/svg><\/button><ul class=\"sub\" id=\"jtp-sub-7\"><li><a href=\"https:\/\/jtjee.com\/career\/\">Career<\/a><\/li><li><a href=\"#bikasit\">BIKASIT<\/a><\/li><li><a href=\"https:\/\/jtjee.com\/or\/blog\/\">Blog<\/a><\/li><li><a href=\"https:\/\/jtjee.com\/or\/news\/\">News<\/a><\/li><\/ul><\/li><\/ul><\/nav><div class=\"upd\"><div class=\"box\"><span class=\"lbl\">UPDATES<\/span><span class=\"bar\" aria-hidden=\"true\"><\/span><svg width=\"28\" height=\"22\" viewBox=\"0 0 28 22\" fill=\"none\" stroke=\"#e5150a\" stroke-width=\"2.4\" stroke-linecap=\"round\" aria-hidden=\"true\"><circle cx=\"14\" cy=\"11\" r=\"3.2\" fill=\"#e5150a\" stroke=\"none\"\/><path d=\"M8.5 5.5a8 8 0 0 0 0 11M19.5 5.5a8 8 0 0 1 0 11M4.5 2a13 13 0 0 0 0 18M23.5 2a13 13 0 0 1 0 18\"\/><\/svg><ul class=\"upd-list upd-rotate\" data-speed=\"2\" aria-label=\"Latest updates\"><li class=\"is-active\">Registration for the JTJEE Screening and Admission Test (JSAT) 2027 is now open\u2014secure your batch slot today!<\/li><li class=\"\" aria-hidden=\"true\">Registration for the JTJEE Screening<\/li><li class=\"\" aria-hidden=\"true\">Registration for the JTJEE Screening<\/li><\/ul><span class=\"upd-count\" aria-hidden=\"true\"><span class=\"upd-now\">1<\/span>\/3<\/span><\/div><\/div><\/div><\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-575cc4cc elementor-widget elementor-widget-shortcode\" data-id=\"575cc4cc\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\"><link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\"><link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin><link rel=\"stylesheet\" href=\"https:\/\/fonts.googleapis.com\/css2?family=Baloo+2:wght@600;700;800&family=Noto+Sans:wght@400;500;600;700&display=swap\"><link rel=\"stylesheet\" href=\"https:\/\/jtjee.com\/wp-content\/plugins\/jtjee-recruitment\/assets\/careers.css?ver=1.4.0\"><script>window.JTJEE_CAREERS = {\"endpoint\":\"https:\\\/\\\/jtjee.com\\\/or\\\/wp-json\\\/jtjee\\\/v1\\\/apply\",\"maxFileMb\":5,\"turnstileSiteKey\":\"\"};<\/script><!--\n  JTJEE \u2014 Careers Page \u00b7 Main Content Section (served by the JTJEE Recruitment plugin)\n  Output by the [jtjee_careers] shortcode. Styles come from assets\/careers.css\n  (Tailwind, compiled and scoped to #jtjee-careers \u2014 no CDN).\n  Submissions go to the plugin's REST endpoint (window.JTJEE_CAREERS.endpoint).\n\n  BRAND TOKENS\n    P1 White #ffffff \u00b7 P1 Yellow #fbe509 \u00b7 P2 Navy #132c72 \u00b7 P2 Red #e5150a\n    P3 Ink #1b1947 \u00b7 P3 Brown #6f3c0b \u00b7 light border #e2e8f0\n  Fonts: Baloo 2 (headings, same as homepage) \u00b7 Noto Sans (body)\n\n  NOTE: CTC, duties and qualifications in ROLES below are PLACEHOLDERS \u2014\n  confirm with the academic director before going live.\n  If you add\/rename a role here, add it to jtjee_roles() in includes\/helpers.php too.\n-->\n<main id=\"jtjee-careers\">\n\n  <!-- 1. YELLOW BAND \u2014 hero + role selector -->\n  <div class=\"bg-brand-yellow\">\n    <div class=\"mx-auto max-w-7xl px-4 pb-14 pt-10 sm:px-6 sm:pt-12 lg:px-8\">\n\n      <section aria-labelledby=\"careers-title\" class=\"grid gap-8 lg:grid-cols-[1.15fr_1fr] lg:items-center\">\n        <div>\n          <ul class=\"flex flex-wrap gap-2\" aria-label=\"Departments hiring\">\n            <li class=\"jt-tag bg-brand-navy text-brand-white\">Academics<\/li>\n            <li class=\"jt-tag bg-brand-navy text-brand-white\">Marketing<\/li>\n            <li class=\"jt-tag bg-brand-navy text-brand-white\">Operations<\/li>\n            <li class=\"jt-tag bg-brand-navy text-brand-white\">Admissions<\/li>\n          <\/ul>\n\n          <h1 id=\"careers-title\"\n              class=\"mt-4 font-display text-[clamp(2.25rem,5.2vw,3.75rem)] font-extrabold leading-[1.05] text-brand-ink\">\n            Join Our Team \u2014 Shape the <span class=\"text-brand-red\">Next Generation<\/span>\n          <\/h1>\n          <p class=\"mt-4 max-w-xl text-base leading-relaxed text-brand-brown sm:text-lg\">\n            Explore academic and operational opportunities at our Chandrasekharpur centre.\n          <\/p>\n\n          <ul class=\"mt-5 flex flex-wrap gap-x-6 gap-y-2 text-sm font-semibold text-brand-ink\">\n            <li class=\"flex items-center gap-2\"><span class=\"text-brand-red\" data-icon=\"check\"><\/span>Chandrasekharpur, Bhubaneswar<\/li>\n            <li class=\"flex items-center gap-2\"><span class=\"text-brand-red\" data-icon=\"check\"><\/span>Teaching &amp; Non-Teaching Roles<\/li>\n            <li class=\"flex items-center gap-2\"><span class=\"text-brand-red\" data-icon=\"check\"><\/span>In-Person Screening<\/li>\n          <\/ul>\n\n          <div role=\"tablist\" aria-label=\"Staff category\" class=\"mt-7 flex flex-wrap gap-3\">\n            <button type=\"button\" role=\"tab\" id=\"tab-teaching\" data-category=\"teaching\" aria-controls=\"careers-panel\" class=\"jt-seg\">\n              Teaching Staff\n            <\/button>\n            <button type=\"button\" role=\"tab\" id=\"tab-nonteaching\" data-category=\"nonTeaching\" aria-controls=\"careers-panel\" class=\"jt-seg\">\n              Non-Teaching Staff\n            <\/button>\n          <\/div>\n        <\/div>\n\n        <aside aria-labelledby=\"steps-title\" class=\"rounded-3xl bg-brand-navy p-6 text-brand-white sm:p-8\">\n          <h2 id=\"steps-title\" class=\"font-display text-2xl font-extrabold\">How hiring works<\/h2>\n          <ol class=\"mt-6 space-y-0\">\n            <li class=\"relative flex gap-4 pb-6\">\n              <span aria-hidden=\"true\" class=\"absolute left-[1.375rem] top-12 h-[calc(100%-3rem)] border-l-2 border-dashed border-brand-yellow\"><\/span>\n              <span class=\"flex h-11 w-11 flex-none items-center justify-center rounded-full bg-brand-yellow font-display text-lg font-extrabold text-brand-ink\">1<\/span>\n              <div><p class=\"font-bold\">Apply online<\/p><p class=\"mt-0.5 text-sm\">Pick a role and upload your documents.<\/p><\/div>\n            <\/li>\n            <li class=\"relative flex gap-4 pb-6\">\n              <span aria-hidden=\"true\" class=\"absolute left-[1.375rem] top-12 h-[calc(100%-3rem)] border-l-2 border-dashed border-brand-yellow\"><\/span>\n              <span class=\"flex h-11 w-11 flex-none items-center justify-center rounded-full bg-brand-yellow font-display text-lg font-extrabold text-brand-ink\">2<\/span>\n              <div><p class=\"font-bold\">Get shortlisted<\/p><p class=\"mt-0.5 text-sm\">We review your credentials.<\/p><\/div>\n            <\/li>\n            <li class=\"flex gap-4\">\n              <span class=\"flex h-11 w-11 flex-none items-center justify-center rounded-full bg-brand-red font-display text-lg font-extrabold text-brand-white\">3<\/span>\n              <div><p class=\"font-bold\">In-person screening<\/p><p class=\"mt-0.5 text-sm\">Offline interaction and subject evaluation at our Chandrasekharpur Centre.<\/p><\/div>\n            <\/li>\n          <\/ol>\n        <\/aside>\n      <\/section>\n\n      <section id=\"careers-panel\" role=\"tabpanel\" aria-labelledby=\"tab-teaching\"\n               class=\"mt-10 rounded-3xl bg-brand-white p-5 sm:p-7\">\n        <div class=\"flex flex-col gap-1 sm:flex-row sm:items-end sm:justify-between\">\n          <div>\n            <p class=\"jt-eyebrow\">Open Positions<\/p>\n            <h2 id=\"filter-label\" class=\"mt-1 font-display text-2xl font-extrabold leading-tight text-brand-ink sm:text-[1.75rem]\">\n              Pick a subject to see the role\n            <\/h2>\n          <\/div>\n          <p class=\"jt-eyebrow\" aria-hidden=\"true\">Tap a role to see what it is<\/p>\n        <\/div>\n\n        <div id=\"subfilter-bar\" role=\"group\" aria-labelledby=\"filter-label\"\n             class=\"mt-5 grid grid-cols-1 gap-3 sm:grid-cols-2 lg:grid-cols-4\"><\/div>\n\n        <div id=\"job-card-region\" aria-live=\"polite\" class=\"mt-4\"><\/div>\n      <\/section>\n    <\/div>\n  <\/div>\n\n  <!-- 2. APPLICATION -->\n  <section id=\"apply\" aria-labelledby=\"apply-title\" class=\"mx-auto max-w-7xl scroll-mt-6 px-4 py-14 sm:px-6 lg:px-8\">\n\n    <div id=\"apply-notice\" hidden class=\"rounded-2xl border border-line p-6 text-center\">\n      <p class=\"font-display text-xl font-extrabold text-brand-ink\">Select a specific role above to open the application form.<\/p>\n      <p class=\"jt-hint\">Each role has its own document requirements.<\/p>\n    <\/div>\n\n    <form id=\"apply-form\" novalidate>\n      <input type=\"hidden\" name=\"category\"  id=\"f-category\">\n      <input type=\"hidden\" name=\"roleId\"    id=\"f-role-id\">\n      <input type=\"hidden\" name=\"roleTitle\" id=\"f-role-title\">\n      <!-- Spam trap: real people never see or fill this -->\n      <div class=\"jt-hp\" aria-hidden=\"true\">\n        <label for=\"f-website\">Website<\/label>\n        <input id=\"f-website\" name=\"website\" type=\"text\" tabindex=\"-1\" autocomplete=\"off\">\n      <\/div>\n\n      <div class=\"flex flex-col gap-2 sm:flex-row sm:items-end sm:justify-between\">\n        <div>\n          <p class=\"jt-eyebrow\">Stage 1 \u00b7 Online Application<\/p>\n          <h2 id=\"apply-title\" class=\"jt-h2 mt-1\">Apply for this role<\/h2>\n        <\/div>\n        <p class=\"text-sm text-brand-brown\">Applying for: <strong id=\"applying-for\" class=\"text-brand-ink\"><\/strong><\/p>\n      <\/div>\n\n      <div id=\"error-summary\" hidden tabindex=\"-1\" role=\"alert\" class=\"mt-6 rounded-2xl border-2 border-brand-red p-5\">\n        <p id=\"error-heading\" class=\"font-bold text-brand-red\">Please fix the following before submitting:<\/p>\n        <ul id=\"error-list\" class=\"mt-2 space-y-1 text-sm\"><\/ul>\n      <\/div>\n\n      <div class=\"mt-6 grid gap-5 lg:grid-cols-2\">\n\n        <!-- 1 \u00b7 BASIC INFORMATION -->\n        <fieldset class=\"jt-card\" aria-labelledby=\"sec1-title\">\n          <div class=\"jt-card-head\">\n            <span class=\"jt-icon\" data-icon=\"user\"><\/span>\n            <div>\n              <h3 id=\"sec1-title\" class=\"font-display text-xl font-extrabold text-brand-white\">Candidate Basic Information<\/h3>\n              <p class=\"text-xs font-bold text-brand-yellow\">Step 1 of 4<\/p>\n            <\/div>\n          <\/div>\n          <div class=\"grid gap-4 p-5 sm:grid-cols-2 sm:p-6\">\n            <div>\n              <label for=\"f-name\" class=\"jt-label\">Full Name <span class=\"jt-req\">Required<\/span><\/label>\n              <input id=\"f-name\" name=\"fullName\" type=\"text\" class=\"jt-input\" autocomplete=\"name\" required maxlength=\"100\"\n                     data-err=\"f-name-err\" data-label=\"full name\" aria-describedby=\"f-name-err\">\n              <p id=\"f-name-err\" class=\"jt-error\" hidden><\/p>\n            <\/div>\n            <div>\n              <label for=\"f-email\" class=\"jt-label\">Email Address <span class=\"jt-req\">Required<\/span><\/label>\n              <input id=\"f-email\" name=\"email\" type=\"email\" class=\"jt-input\" autocomplete=\"email\" required maxlength=\"150\"\n                     data-err=\"f-email-err\" data-label=\"email address\" aria-describedby=\"f-email-err\">\n              <p id=\"f-email-err\" class=\"jt-error\" hidden><\/p>\n            <\/div>\n            <div>\n              <label for=\"f-phone\" class=\"jt-label\">Phone Number \/ WhatsApp <span class=\"jt-req\">Required<\/span><\/label>\n              <input id=\"f-phone\" name=\"phone\" type=\"tel\" inputmode=\"tel\" class=\"jt-input\" autocomplete=\"tel\" required maxlength=\"16\"\n                     data-err=\"f-phone-err\" data-label=\"phone number\" aria-describedby=\"f-phone-hint f-phone-err\">\n              <p id=\"f-phone-hint\" class=\"jt-hint\">10-digit mobile number. Screening updates are sent here by SMS.<\/p>\n              <p id=\"f-phone-err\" class=\"jt-error\" hidden><\/p>\n            <\/div>\n            <div>\n              <label for=\"f-city\" class=\"jt-label\">Current City \/ Location <span class=\"jt-req\">Required<\/span><\/label>\n              <input id=\"f-city\" name=\"city\" type=\"text\" class=\"jt-input\" autocomplete=\"address-level2\" required maxlength=\"80\"\n                     placeholder=\"e.g. Bhubaneswar\" data-err=\"f-city-err\" data-label=\"current city\" aria-describedby=\"f-city-err\">\n              <p id=\"f-city-err\" class=\"jt-error\" hidden><\/p>\n            <\/div>\n          <\/div>\n        <\/fieldset>\n\n        <!-- 2 \u00b7 MANDATORY DOCUMENTS -->\n        <fieldset class=\"jt-card\" aria-labelledby=\"sec2-title\">\n          <div class=\"jt-card-head\">\n            <span class=\"jt-icon\" data-icon=\"doc\"><\/span>\n            <div>\n              <h3 id=\"sec2-title\" class=\"font-display text-xl font-extrabold text-brand-white\">Mandatory Documents<\/h3>\n              <p class=\"text-xs font-bold text-brand-yellow\">Step 2 of 4<\/p>\n            <\/div>\n          <\/div>\n          <div class=\"grid gap-4 p-5 sm:p-6\">\n            <div>\n              <label for=\"f-resume\" class=\"jt-label\">Resume \/ CV <span class=\"jt-req\">Required<\/span><\/label>\n              <input id=\"f-resume\" name=\"resume\" type=\"file\" accept=\".pdf\" class=\"jt-input jt-file\" required\n                     data-err=\"f-resume-err\" data-label=\"Resume \/ CV\" aria-describedby=\"f-resume-hint f-resume-err\">\n              <p id=\"f-resume-hint\" class=\"jt-hint\">PDF only \u00b7 max 5 MB<\/p>\n              <p id=\"f-resume-err\" class=\"jt-error\" hidden><\/p>\n            <\/div>\n            <div>\n              <label for=\"f-class10\" class=\"jt-label\">Class 10th Certificate \/ Marksheet <span class=\"jt-req\">Required<\/span><\/label>\n              <input id=\"f-class10\" name=\"class10Certificate\" type=\"file\" accept=\".pdf,.jpg,.jpeg,.png\" class=\"jt-input jt-file\" required\n                     data-err=\"f-class10-err\" data-label=\"Class 10th certificate\" aria-describedby=\"f-class10-hint f-class10-err\">\n              <p id=\"f-class10-hint\" class=\"jt-hint\">PDF, JPG or PNG \u00b7 max 5 MB<\/p>\n              <p id=\"f-class10-err\" class=\"jt-error\" hidden><\/p>\n            <\/div>\n            <div>\n              <label for=\"f-class12\" class=\"jt-label\">Class 12th Certificate \/ Marksheet <span class=\"jt-req\">Required<\/span><\/label>\n              <input id=\"f-class12\" name=\"class12Certificate\" type=\"file\" accept=\".pdf,.jpg,.jpeg,.png\" class=\"jt-input jt-file\" required\n                     data-err=\"f-class12-err\" data-label=\"Class 12th certificate\" aria-describedby=\"f-class12-hint f-class12-err\">\n              <p id=\"f-class12-hint\" class=\"jt-hint\">PDF, JPG or PNG \u00b7 max 5 MB<\/p>\n              <p id=\"f-class12-err\" class=\"jt-error\" hidden><\/p>\n            <\/div>\n          <\/div>\n        <\/fieldset>\n\n        <!-- 3 \u00b7 WORK EXPERIENCE -->\n        <fieldset class=\"jt-card\" aria-labelledby=\"sec3-title\">\n          <div class=\"jt-card-head\">\n            <span class=\"jt-icon\" data-icon=\"case\"><\/span>\n            <div>\n              <h3 id=\"sec3-title\" class=\"font-display text-xl font-extrabold text-brand-white\">Work Experience<\/h3>\n              <p class=\"text-xs font-bold text-brand-yellow\">Step 3 of 4<\/p>\n            <\/div>\n          <\/div>\n          <div class=\"p-5 sm:p-6\">\n            <fieldset aria-describedby=\"err-exp\">\n              <legend class=\"jt-label\">Do you have prior work experience? <span class=\"jt-req\">Required<\/span><\/legend>\n              <div class=\"flex flex-wrap gap-3\">\n                <label class=\"jt-choice\" for=\"f-exp-yes\">\n                  <input id=\"f-exp-yes\" class=\"jt-choice-input\" type=\"radio\" name=\"hasExperience\" value=\"yes\" required\n                         data-err=\"err-exp\" data-msg=\"Please tell us whether you have prior work experience.\">\n                  <span>Yes<\/span>\n                <\/label>\n                <label class=\"jt-choice\" for=\"f-exp-no\">\n                  <input id=\"f-exp-no\" class=\"jt-choice-input\" type=\"radio\" name=\"hasExperience\" value=\"no\" required\n                         data-err=\"err-exp\" data-msg=\"Please tell us whether you have prior work experience.\">\n                  <span>No<\/span>\n                <\/label>\n              <\/div>\n              <p id=\"err-exp\" class=\"jt-error\" hidden><\/p>\n            <\/fieldset>\n\n            <fieldset id=\"exp-details\" hidden disabled aria-label=\"Experience details\"\n                      class=\"card-enter mt-5 grid gap-4 rounded-xl bg-brand-yellow p-5 sm:grid-cols-2\">\n              <div>\n                <label for=\"f-exp-years\" class=\"jt-label\">Total Years of Experience <span class=\"jt-req\">Required<\/span><\/label>\n                <select id=\"f-exp-years\" name=\"experienceYears\" class=\"jt-input\" required\n                        data-err=\"f-exp-years-err\" data-msg=\"Please select your total years of experience.\" aria-describedby=\"f-exp-years-err\">\n                  <option value=\"\">Select<\/option>\n                  <option value=\"1-2 yrs\">1\u20132 yrs<\/option>\n                  <option value=\"3-5 yrs\">3\u20135 yrs<\/option>\n                  <option value=\"5+ yrs\">5+ yrs<\/option>\n                <\/select>\n                <p id=\"f-exp-years-err\" class=\"jt-error\" hidden><\/p>\n              <\/div>\n              <div>\n                <label for=\"f-exp-org\" class=\"jt-label\">Current \/ Last Organization <span class=\"jt-req\">Required<\/span><\/label>\n                <input id=\"f-exp-org\" name=\"lastOrganization\" type=\"text\" class=\"jt-input\" autocomplete=\"organization\" required maxlength=\"120\"\n                       data-err=\"f-exp-org-err\" data-label=\"current or last organization\" aria-describedby=\"f-exp-org-err\">\n                <p id=\"f-exp-org-err\" class=\"jt-error\" hidden><\/p>\n              <\/div>\n              <div class=\"sm:col-span-2\">\n                <label for=\"f-exp-proof\" class=\"jt-label\">Experience Certificate \/ Relieving Letter \/ Service Proof <span class=\"jt-req\">Required<\/span><\/label>\n                <input id=\"f-exp-proof\" name=\"experienceProof\" type=\"file\" accept=\".pdf,.jpg,.jpeg,.png\" class=\"jt-input jt-file\" required\n                       data-err=\"f-exp-proof-err\" data-label=\"experience proof\" aria-describedby=\"f-exp-proof-hint f-exp-proof-err\">\n                <p id=\"f-exp-proof-hint\" class=\"jt-hint\">PDF, JPG or PNG \u00b7 max 5 MB<\/p>\n                <p id=\"f-exp-proof-err\" class=\"jt-error\" hidden><\/p>\n              <\/div>\n            <\/fieldset>\n          <\/div>\n        <\/fieldset>\n\n        <!-- 4 \u00b7 ROLE-SPECIFIC DOCUMENTS -->\n        <fieldset class=\"jt-card\" aria-labelledby=\"sec4-title\">\n          <div class=\"jt-card-head\">\n            <span class=\"jt-icon\" data-icon=\"spark\"><\/span>\n            <div>\n              <h3 id=\"sec4-title\" class=\"font-display text-xl font-extrabold text-brand-white\">Role-Specific Documents<\/h3>\n              <p class=\"text-xs font-bold text-brand-yellow\">Step 4 of 4 \u00b7 Changes with the role you pick<\/p>\n            <\/div>\n          <\/div>\n          <div class=\"p-5 sm:p-6\">\n            <fieldset data-role-group=\"teaching\" hidden disabled aria-label=\"Teaching documents\">\n              <label for=\"f-degree\" class=\"jt-label\">Highest Degree \/ Post-Graduation \/ B.Ed Certificate <span class=\"jt-req\">Required<\/span><\/label>\n              <input id=\"f-degree\" name=\"highestDegree\" type=\"file\" accept=\".pdf,.jpg,.jpeg,.png\" class=\"jt-input jt-file\" required\n                     data-err=\"f-degree-err\" data-label=\"highest degree certificate\" aria-describedby=\"f-degree-hint f-degree-err\">\n              <p id=\"f-degree-hint\" class=\"jt-hint\">PDF, JPG or PNG \u00b7 max 5 MB<\/p>\n              <p id=\"f-degree-err\" class=\"jt-error\" hidden><\/p>\n            <\/fieldset>\n\n            <fieldset data-role-group=\"marketing\" hidden disabled aria-label=\"Digital marketing documents\" class=\"grid gap-4\">\n              <div>\n                <label for=\"f-portfolio\" class=\"jt-label\">Portfolio \/ Work Samples Link <span class=\"jt-req\">Required<\/span><\/label>\n                <input id=\"f-portfolio\" name=\"portfolioUrl\" type=\"url\" class=\"jt-input\" required placeholder=\"https:\/\/\" maxlength=\"300\"\n                       data-err=\"f-portfolio-err\" data-label=\"portfolio link\" aria-describedby=\"f-portfolio-hint f-portfolio-err\">\n                <p id=\"f-portfolio-hint\" class=\"jt-hint\">Drive folder, Behance, website or social handle.<\/p>\n                <p id=\"f-portfolio-err\" class=\"jt-error\" hidden><\/p>\n              <\/div>\n              <div>\n                <label for=\"f-casestudy\" class=\"jt-label\">Campaign Case Study <span class=\"jt-opt\">Optional<\/span><\/label>\n                <input id=\"f-casestudy\" name=\"campaignCaseStudy\" type=\"file\" accept=\".pdf\" class=\"jt-input jt-file\"\n                       data-err=\"f-casestudy-err\" data-label=\"campaign case study\" aria-describedby=\"f-casestudy-hint f-casestudy-err\">\n                <p id=\"f-casestudy-hint\" class=\"jt-hint\">PDF only \u00b7 max 5 MB<\/p>\n                <p id=\"f-casestudy-err\" class=\"jt-error\" hidden><\/p>\n              <\/div>\n            <\/fieldset>\n\n            <fieldset data-role-group=\"operations\" hidden disabled aria-label=\"Operations documents\">\n              <label for=\"f-ops-cert\" class=\"jt-label\">Relevant Certifications \/ Recommendation Letter <span class=\"jt-opt\">Optional<\/span><\/label>\n              <input id=\"f-ops-cert\" name=\"supportingDocument\" type=\"file\" accept=\".pdf,.jpg,.jpeg,.png\" class=\"jt-input jt-file\"\n                     data-err=\"f-ops-cert-err\" data-label=\"supporting document\" aria-describedby=\"f-ops-cert-hint f-ops-cert-err\">\n              <p id=\"f-ops-cert-hint\" class=\"jt-hint\">PDF, JPG or PNG \u00b7 max 5 MB<\/p>\n              <p id=\"f-ops-cert-err\" class=\"jt-error\" hidden><\/p>\n            <\/fieldset>\n          <\/div>\n        <\/fieldset>\n      <\/div>\n\n      <!-- STAGE 2 -->\n      <div role=\"group\" aria-labelledby=\"stage2-title\" class=\"mt-8 rounded-3xl bg-brand-navy p-6 sm:p-8 lg:p-10\">\n        <div class=\"grid gap-8 lg:grid-cols-2 lg:items-center\">\n          <div>\n            <div class=\"flex flex-wrap gap-2\">\n              <span class=\"jt-tag bg-brand-yellow text-brand-ink\">Stage 2<\/span>\n              <span class=\"jt-tag bg-brand-red text-brand-white\">Offline \u00b7 Bhubaneswar<\/span>\n            <\/div>\n            <h2 id=\"stage2-title\" class=\"mt-4 font-display text-[clamp(1.75rem,3.2vw,2.5rem)] font-extrabold leading-[1.1] text-brand-white\">\n              Stage 2: In-Person Screening Registration\n            <\/h2>\n            <p class=\"mt-3 max-w-lg text-base leading-relaxed text-brand-white sm:text-lg\">\n              Shortlisted candidates will be invited for an offline interaction and subject evaluation at our Chandrasekharpur Centre.\n            <\/p>\n          <\/div>\n\n          <div class=\"rounded-2xl bg-brand-yellow p-5 sm:p-6\">\n            <label for=\"f-slot\" class=\"jt-label\">Preferred Screening Slot <span class=\"jt-req\">Required<\/span><\/label>\n            <select id=\"f-slot\" name=\"screeningSlot\" class=\"jt-input\" required\n                    data-err=\"f-slot-err\" data-msg=\"Please choose a preferred screening slot.\" aria-describedby=\"f-slot-err\">\n              <option value=\"\">Select a slot<\/option>\n              <option value=\"Weekday Morning\">Weekday Morning<\/option>\n              <option value=\"Weekday Afternoon\">Weekday Afternoon<\/option>\n              <option value=\"Weekend Slot\">Weekend Slot<\/option>\n            <\/select>\n            <p id=\"f-slot-err\" class=\"jt-error\" hidden><\/p>\n\n            <label for=\"f-confirm\" class=\"mt-4 flex cursor-pointer items-start gap-3 rounded-xl bg-brand-white p-4 text-sm font-semibold text-brand-ink\">\n              <input id=\"f-confirm\" name=\"offlineAvailabilityConfirmed\" type=\"checkbox\" value=\"yes\" required class=\"mt-0.5 flex-none\"\n                     data-err=\"f-confirm-err\" data-msg=\"Please confirm your availability for the offline screening.\"\n                     aria-describedby=\"f-confirm-err\">\n              <span>I confirm that I am available for an offline screening session in Bhubaneswar.\n                <span class=\"jt-req ml-1\">Required<\/span><\/span>\n            <\/label>\n            <p id=\"f-confirm-err\" class=\"jt-error\" hidden><\/p>\n\n            <label for=\"f-consent\" class=\"mt-3 flex cursor-pointer items-start gap-3 rounded-xl bg-brand-white p-4 text-sm font-semibold text-brand-ink\">\n              <input id=\"f-consent\" name=\"consent\" type=\"checkbox\" value=\"yes\" required class=\"mt-0.5 flex-none\"\n                     data-err=\"f-consent-err\" data-msg=\"Please agree to let us use your details for this application.\"\n                     aria-describedby=\"f-consent-err\">\n              <span>I agree that JTJEE Education may store and use my details and documents to process this job application.\n                <span class=\"jt-req ml-1\">Required<\/span><\/span>\n            <\/label>\n            <p id=\"f-consent-err\" class=\"jt-error\" hidden><\/p>\n\n            <!-- Cloudflare Turnstile appears here when a site key is set in the plugin settings -->\n            <div id=\"jt-turnstile\" class=\"mt-4\"><\/div>\n\n            <button type=\"submit\" id=\"submit-btn\" class=\"jt-btn-primary mt-5 w-full\">\n              <span id=\"submit-label\">Submit Application &amp; Register for Screening<\/span>\n            <\/button>\n          <\/div>\n        <\/div>\n      <\/div>\n    <\/form>\n\n    <div id=\"apply-success\" hidden class=\"rounded-3xl border border-line p-6 text-center sm:p-10\">\n      <div class=\"mx-auto flex h-14 w-14 items-center justify-center rounded-full bg-brand-navy text-brand-white\" aria-hidden=\"true\">\n        <svg class=\"h-7 w-7\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M5 12.5l4.5 4.5L19 7.5\"\/><\/svg>\n      <\/div>\n      <h2 id=\"success-title\" tabindex=\"-1\" class=\"mt-5 font-display text-[clamp(1.75rem,3.2vw,2.5rem)] font-extrabold leading-tight text-brand-navy\">\n        Application Received!\n      <\/h2>\n      <p class=\"mx-auto mt-3 max-w-xl text-base text-brand-ink\">\n        We will review your credentials and communicate your offline screening slot via Email and SMS.\n      <\/p>\n      <div class=\"mt-5 flex flex-wrap justify-center gap-2 text-sm\">\n        <span class=\"rounded-lg border-2 border-brand-navy px-3 py-1.5 font-semibold text-brand-ink\">Application ID: <span id=\"success-id\"><\/span><\/span>\n        <span class=\"rounded-lg border-2 border-brand-navy px-3 py-1.5 font-semibold text-brand-ink\">Role: <span id=\"success-role\"><\/span><\/span>\n        <span class=\"rounded-lg border-2 border-brand-navy px-3 py-1.5 font-semibold text-brand-ink\">Slot: <span id=\"success-slot\"><\/span><\/span>\n      <\/div>\n      <button type=\"button\" id=\"apply-again\" class=\"jt-btn-outline mt-6\">Apply for another role<\/button>\n    <\/div>\n  <\/section>\n<\/main>\n\n<script>\n(() => {\n  'use strict';\n  const CFG = window.JTJEE_CAREERS || {};\n\n  \/* ICONS *\/\n  const svg = (d, cls = 'h-5 w-5') =>\n    `<svg aria-hidden=\"true\" class=\"${cls}\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">${d}<\/svg>`;\n  const ICON = {\n    check: svg('<path d=\"M5 12.5l4.5 4.5L19 7.5\"\/>', 'h-4 w-4 flex-none'),\n    user:  svg('<circle cx=\"12\" cy=\"8\" r=\"4\"\/><path d=\"M4 21c1.5-4 4.5-6 8-6s6.5 2 8 6\"\/>'),\n    doc:   svg('<path d=\"M7 3h7l5 5v13H7z\"\/><path d=\"M14 3v5h5M10 13h6M10 17h6\"\/>'),\n    case:  svg('<rect x=\"3\" y=\"7\" width=\"18\" height=\"13\" rx=\"2\"\/><path d=\"M9 7V5h6v2M3 13h18\"\/>'),\n    spark: svg('<path d=\"M12 3l2.2 5.8L20 11l-5.8 2.2L12 19l-2.2-5.8L4 11l5.8-2.2z\"\/>'),\n    pin:   svg('<path d=\"M12 21s-7-6.2-7-11a7 7 0 1 1 14 0c0 4.8-7 11-7 11z\"\/><circle cx=\"12\" cy=\"10\" r=\"2.5\"\/>', 'h-4 w-4 flex-none'),\n    cash:  svg('<rect x=\"2\" y=\"6\" width=\"20\" height=\"12\" rx=\"2\"\/><circle cx=\"12\" cy=\"12\" r=\"2.5\"\/>', 'h-4 w-4 flex-none'),\n    time:  svg('<circle cx=\"12\" cy=\"12\" r=\"9\"\/><path d=\"M12 7v5l3 2\"\/>', 'h-4 w-4 flex-none'),\n    arrow: svg('<path d=\"M5 12h14M13 6l6 6-6 6\"\/>', 'h-4 w-4 flex-none'),\n  };\n  document.querySelectorAll('#jtjee-careers [data-icon]').forEach((el) => { el.innerHTML = ICON[el.dataset.icon] || ''; });\n\n  \/* ROLE DATA \u2014 CTC, duties and qualifications are PLACEHOLDERS (confirm before going live) *\/\n  const LOCATION = 'Chandrasekharpur, Bhubaneswar';\n\n  const ROLES = {\n    teaching: {\n      heading: 'Pick a subject to see the role',\n      items: [\n        {\n          id: 'physics', pill: 'Physics', title: 'Physics Faculty \u2014 JEE \/ NEET',\n          brief: 'Mechanics to Modern Physics for JEE & NEET batches.',\n          department: 'Academics', type: 'Full-time', ctc: '\u20b96.0L \u2013 \u20b914.0L P.A.',\n          responsibilities: [\n            'Teach Mechanics, Electrodynamics, Optics and Modern Physics for JEE Main\/Advanced and NEET batches.',\n            'Build chapter-wise DPPs, mock tests and doubt-clearing modules aligned to the latest NTA pattern.',\n            'Track batch performance through test analytics and run targeted remedial sessions.',\n            'Mentor Foundation (Classes 8\u201310) students in conceptual problem-solving.',\n          ],\n          eligibility: [\n            'M.Sc. \/ M.Tech in Physics or B.Tech from a reputed institute (IIT\/NIT preferred).',\n            'B.Ed desirable for Foundation batches.',\n            'Minimum 2 years of competitive-exam teaching experience.',\n            'Strong command over JEE Advanced-level problem solving.',\n          ],\n        },\n        {\n          id: 'chemistry', pill: 'Chemistry', title: 'Chemistry Faculty \u2014 JEE \/ NEET',\n          brief: 'Physical, Organic & Inorganic for JEE & NEET.',\n          department: 'Academics', type: 'Full-time', ctc: '\u20b95.5L \u2013 \u20b913.0L P.A.',\n          responsibilities: [\n            'Deliver Physical, Organic and Inorganic Chemistry for JEE and NEET batches.',\n            'Design reaction-mechanism drills, NCERT-line revision notes and periodic assessments.',\n            'Conduct weekly doubt sessions and one-on-one mentoring for low-scoring students.',\n            'Contribute to the in-house question bank and test-series review.',\n          ],\n          eligibility: [\n            'M.Sc. in Chemistry (Ph.D. \/ NET-qualified is a plus).',\n            'B.Ed desirable for Foundation batches.',\n            'Minimum 2 years of NEET\/JEE teaching experience.',\n            'Deep familiarity with NCERT for NEET-focused instruction.',\n          ],\n        },\n        {\n          id: 'mathematics', pill: 'Mathematics', title: 'Mathematics Faculty \u2014 JEE',\n          brief: 'Calculus, Algebra & Geometry for JEE aspirants.',\n          department: 'Academics', type: 'Full-time', ctc: '\u20b96.0L \u2013 \u20b914.5L P.A.',\n          responsibilities: [\n            'Teach Calculus, Algebra, Coordinate Geometry and Vectors for JEE Main\/Advanced.',\n            'Create graded problem sets moving from board level to Advanced level.',\n            'Run speed-and-accuracy workshops ahead of mock tests.',\n            'Support Foundation (Classes 6\u201310) Olympiad-style preparation.',\n          ],\n          eligibility: [\n            'M.Sc. in Mathematics or B.Tech\/M.Tech with strong mathematical aptitude.',\n            'B.Ed desirable for Foundation batches.',\n            'Minimum 2 years of JEE teaching experience.',\n            'Proven record of student results in JEE Advanced preferred.',\n          ],\n        },\n        {\n          id: 'biology', pill: 'Biology', title: 'Biology Faculty \u2014 NEET',\n          brief: 'NCERT-first Botany & Zoology for NEET\u2011UG.',\n          department: 'Academics', type: 'Full-time', ctc: '\u20b95.0L \u2013 \u20b912.0L P.A.',\n          responsibilities: [\n            'Teach Botany and Zoology for NEET-UG with a strict NCERT-first approach.',\n            'Prepare diagram-based revision material and assertion-reason practice sets.',\n            'Conduct full-syllabus NEET mock analysis and student counselling on weak areas.',\n            'Teach Classes 9\u201312 board-level Biology for Foundation students.',\n          ],\n          eligibility: [\n            'M.Sc. in Botany \/ Zoology \/ Life Sciences.',\n            'B.Ed desirable for Foundation batches.',\n            'Minimum 2 years of NEET teaching experience.',\n            'Excellent command over NCERT Biology (Classes 11\u201312).',\n          ],\n        },\n      ],\n    },\n\n    nonTeaching: {\n      heading: 'Pick a role to see what it involves',\n      items: [\n        {\n          id: 'digital-marketing', pill: 'Digital Marketing', title: 'Digital Marketing Executive',\n          brief: 'Run admission campaigns, social media and SEO.',\n          department: 'Marketing', type: 'Full-time', ctc: '\u20b93.0L \u2013 \u20b96.0L P.A.',\n          responsibilities: [\n            'Plan and run admission campaigns on Meta, Google Ads and YouTube.',\n            'Manage social media calendars, result-season creatives and reels.',\n            'Handle SEO for the website and local listings for the Chandrasekharpur centre.',\n            'Report weekly on leads, cost-per-enquiry and conversion to admission.',\n          ],\n          eligibility: [\n            \"Bachelor's degree in any discipline (Marketing\/Mass Comm preferred).\",\n            '1\u20133 years of hands-on performance marketing experience.',\n            'Working knowledge of Meta Ads Manager, Google Ads and GA4.',\n            'Education-sector experience is a strong plus.',\n          ],\n        },\n        {\n          id: 'academic-operations', pill: 'Academic Operations', title: 'Academic Operations Coordinator',\n          brief: 'Timetables, test logistics and student records.',\n          department: 'Operations', type: 'Full-time', ctc: '\u20b93.0L \u2013 \u20b95.5L P.A.',\n          responsibilities: [\n            'Build and maintain batch timetables, faculty schedules and classroom allocation.',\n            'Coordinate test-series logistics, result publishing and study-material distribution.',\n            'Maintain attendance and performance records; share reports with parents.',\n            'Act as the bridge between faculty, students and management.',\n          ],\n          eligibility: [\n            \"Bachelor's degree in any discipline.\",\n            '1\u20132 years in academic administration or coaching operations.',\n            'Proficient in Google Sheets \/ Excel and basic ERP\/LMS tools.',\n            'Strong organisational and communication skills (Odia, Hindi, English).',\n          ],\n        },\n        {\n          id: 'counselor-front-desk', pill: 'Student Counselor \/ Front Desk', title: 'Student Counselor \/ Front Desk Executive',\n          brief: 'Guide students and parents through admissions.',\n          department: 'Admissions', type: 'Full-time', ctc: '\u20b92.4L \u2013 \u20b94.5L P.A.',\n          responsibilities: [\n            'Guide walk-in students and parents on NEET, JEE and Foundation programmes.',\n            'Handle enquiry calls, follow-ups and admission documentation.',\n            'Maintain the enquiry CRM and daily walk-in register.',\n            'Coordinate demo classes and scholarship test registrations.',\n          ],\n          eligibility: [\n            \"Bachelor's degree in any discipline.\",\n            '0\u20132 years in counselling, admissions or customer-facing roles.',\n            'Fluent spoken Odia, Hindi and English.',\n            'Warm, patient and parent-friendly communication style.',\n          ],\n        },\n        { id: 'all-roles', pill: 'All Roles', title: 'See every non-teaching opening',\n          brief: 'Browse every non-teaching opening at once.', isOverview: true },\n      ],\n    },\n  };\n\n  \/* STATE + DOM *\/\n  const state = { category: 'teaching', roleId: ROLES.teaching.items[0].id };\n\n  const tabs        = document.querySelectorAll('#jtjee-careers [role=\"tab\"]');\n  const panel       = document.getElementById('careers-panel');\n  const filterBar   = document.getElementById('subfilter-bar');\n  const filterLabel = document.getElementById('filter-label');\n  const cardRegion  = document.getElementById('job-card-region');\n\n  const escapeHTML = (s) => String(s).replace(\/[&<>\"']\/g, (c) =>\n    ({ '&': '&amp;', '<': '&lt;', '>': '&gt;', '\"': '&quot;', \"'\": '&#39;' }[c]));\n  const findRole = (category, id) => ROLES[category].items.find((r) => r.id === id);\n\n  function renderTabs() {\n    tabs.forEach((tab) => {\n      const active = tab.dataset.category === state.category;\n      tab.setAttribute('aria-selected', String(active));\n      tab.tabIndex = active ? 0 : -1;\n      if (active) panel.setAttribute('aria-labelledby', tab.id);\n    });\n  }\n\n  function renderTiles() {\n    const group = ROLES[state.category];\n    filterLabel.textContent = group.heading;\n    filterBar.innerHTML = group.items.map((r) => {\n      const active = r.id === state.roleId;\n      return `\n        <button type=\"button\" class=\"jt-tile\" data-role=\"${r.id}\" aria-pressed=\"${active}\" aria-controls=\"job-card-region\">\n          <span class=\"flex items-start justify-between gap-2\">\n            <span class=\"font-display text-lg font-extrabold leading-tight sm:text-2xl\">${escapeHTML(r.pill)}<\/span>\n            <span aria-hidden=\"true\" class=\"text-xl font-bold leading-none\">${active ? '\u2212' : '+'}<\/span>\n          <\/span>\n          <span class=\"mt-3 line-clamp-2 text-[0.8125rem] font-medium leading-snug\">${escapeHTML(r.brief)}<\/span>\n        <\/button>`;\n    }).join('');\n  }\n\n  const checkList = (items) => `\n    <ul class=\"mt-3 space-y-2.5\">\n      ${items.map((t) => `\n        <li class=\"flex gap-2.5 text-[0.9375rem] leading-relaxed text-brand-ink\">\n          <span class=\"mt-1 text-brand-red\">${ICON.check}<\/span><span>${escapeHTML(t)}<\/span>\n        <\/li>`).join('')}\n    <\/ul>`;\n\n  const metaChip = (icon, label, value) => `\n    <li class=\"flex items-center gap-2 rounded-lg bg-brand-white px-3 py-2 text-sm\">\n      <span class=\"text-brand-navy\">${icon}<\/span>\n      <span class=\"text-brand-brown\">${label}:<\/span>\n      <strong class=\"text-brand-ink\">${escapeHTML(value)}<\/strong>\n    <\/li>`;\n\n  function specPanelHTML(role) {\n    return `\n      <article class=\"card-enter rounded-2xl bg-brand-yellow p-5 sm:p-7\" aria-labelledby=\"role-title\">\n        <div class=\"flex flex-col gap-4 md:flex-row md:items-start md:justify-between\">\n          <div>\n            <p class=\"jt-eyebrow\">About This Role<\/p>\n            <h3 id=\"role-title\" class=\"mt-1 font-display text-2xl font-extrabold leading-tight text-brand-ink sm:text-[1.75rem]\">\n              ${escapeHTML(role.title)}\n            <\/h3>\n            <div class=\"mt-3 flex flex-wrap gap-2\">\n              <span class=\"jt-tag bg-brand-navy text-brand-white\">${escapeHTML(role.department)}<\/span>\n              <span class=\"jt-tag bg-brand-red text-brand-white\">Now Hiring<\/span>\n            <\/div>\n          <\/div>\n          <button type=\"button\" data-apply class=\"jt-btn-primary flex-none\">Apply for this Role ${ICON.arrow}<\/button>\n        <\/div>\n\n        <ul class=\"mt-5 flex flex-wrap gap-2\">\n          ${metaChip(ICON.pin, 'Location', LOCATION)}\n          ${metaChip(ICON.cash, 'CTC', role.ctc)}\n          ${metaChip(ICON.time, 'Type', role.type)}\n        <\/ul>\n        <p class=\"mt-2 text-xs font-semibold text-brand-brown\">CTC is commensurate with experience.<\/p>\n\n        <div class=\"mt-5 grid gap-4 lg:grid-cols-2\">\n          <section class=\"rounded-xl bg-brand-white p-5\" aria-labelledby=\"resp-h\">\n            <h4 id=\"resp-h\" class=\"font-display text-lg font-extrabold text-brand-brown\">Key Responsibilities<\/h4>\n            ${checkList(role.responsibilities)}\n          <\/section>\n          <section class=\"rounded-xl bg-brand-white p-5\" aria-labelledby=\"elig-h\">\n            <h4 id=\"elig-h\" class=\"font-display text-lg font-extrabold text-brand-brown\">Eligibility &amp; Minimum Qualifications<\/h4>\n            ${checkList(role.eligibility)}\n          <\/section>\n        <\/div>\n      <\/article>`;\n  }\n\n  function overviewHTML() {\n    const roles = ROLES.nonTeaching.items.filter((r) => !r.isOverview);\n    return `\n      <div class=\"card-enter rounded-2xl bg-brand-yellow p-5 sm:p-7\">\n        <p class=\"jt-eyebrow\">${roles.length} open roles \u00b7 ${LOCATION}<\/p>\n        <h3 class=\"mt-1 font-display text-2xl font-extrabold text-brand-ink sm:text-[1.75rem]\">All Non-Teaching Openings<\/h3>\n        <ul class=\"mt-5 grid gap-3 md:grid-cols-3\">\n          ${roles.map((r) => `\n            <li>\n              <button type=\"button\" data-jump=\"${r.id}\"\n                class=\"flex h-full w-full flex-col items-start rounded-xl border-0 bg-brand-white p-5 text-left\">\n                <span class=\"jt-tag bg-brand-navy text-brand-white\">${escapeHTML(r.department)}<\/span>\n                <span class=\"mt-3 font-display text-lg font-extrabold leading-tight text-brand-ink\">${escapeHTML(r.title)}<\/span>\n                <span class=\"mt-1 text-sm font-semibold text-brand-brown\">${escapeHTML(r.ctc)}<\/span>\n                <span class=\"mt-3 inline-flex items-center gap-1 text-sm font-bold text-brand-red\">View details ${ICON.arrow}<\/span>\n              <\/button>\n            <\/li>`).join('')}\n        <\/ul>\n      <\/div>`;\n  }\n\n  function renderCard() {\n    const role = findRole(state.category, state.roleId);\n    cardRegion.innerHTML = role.isOverview ? overviewHTML() : specPanelHTML(role);\n  }\n\n  function renderSelection() { renderTiles(); renderCard(); syncForm(); }\n  function render() { renderTabs(); renderSelection(); }\n\n  function setCategory(cat) {\n    if (cat === state.category) return;\n    state.category = cat;\n    state.roleId = ROLES[cat].items[0].id;\n    render();\n  }\n\n  tabs.forEach((tab) => tab.addEventListener('click', () => setCategory(tab.dataset.category)));\n\n  document.querySelector('#jtjee-careers [role=\"tablist\"]').addEventListener('keydown', (e) => {\n    if (!['ArrowLeft', 'ArrowRight', 'Home', 'End'].includes(e.key)) return;\n    e.preventDefault();\n    const list = [...tabs];\n    const i = list.findIndex((t) => t.dataset.category === state.category);\n    const next = e.key === 'Home' ? 0 : e.key === 'End' ? list.length - 1\n               : (i + (e.key === 'ArrowRight' ? 1 : -1) + list.length) % list.length;\n    setCategory(list[next].dataset.category);\n    list[next].focus();\n  });\n\n  function selectRole(id) {\n    state.roleId = id;\n    renderSelection();\n    filterBar.querySelector(`[data-role=\"${id}\"]`).focus();\n  }\n\n  filterBar.addEventListener('click', (e) => {\n    const tile = e.target.closest('[data-role]');\n    if (tile && tile.dataset.role !== state.roleId) selectRole(tile.dataset.role);\n  });\n\n  cardRegion.addEventListener('click', (e) => {\n    const jump = e.target.closest('[data-jump]');\n    if (jump) return selectRole(jump.dataset.jump);\n    if (e.target.closest('[data-apply]')) {\n      document.getElementById('apply').scrollIntoView({ behavior: 'smooth', block: 'start' });\n      document.getElementById('f-name').focus({ preventScroll: true });\n    }\n  });\n\n  \/* ==================================================================\n   * APPLICATION FORM\n   * ================================================================== *\/\n  const MAX_FILE_MB = Number(CFG.maxFileMb) || 5;     \/\/ the server checks this too\n  const PHONE_RE    = \/^(?:\\+?91)?[6-9]\\d{9}$\/;\n  const EMAIL_RE    = \/^[^\\s@]+@[^\\s@]+\\.[^\\s@]{2,}$\/;\n\n  const form         = document.getElementById('apply-form');\n  const notice       = document.getElementById('apply-notice');\n  const successCard  = document.getElementById('apply-success');\n  const errorSummary = document.getElementById('error-summary');\n  const errorHeading = document.getElementById('error-heading');\n  const errorList    = document.getElementById('error-list');\n  const submitBtn    = document.getElementById('submit-btn');\n  const submitLabel  = document.getElementById('submit-label');\n  const expDetails   = document.getElementById('exp-details');\n  const roleGroups   = form.querySelectorAll('[data-role-group]');\n  const SUBMIT_TEXT  = submitLabel.textContent;\n  let submitted = false;\n\n  const cap = (s) => s.charAt(0).toUpperCase() + s.slice(1);\n\n  function toggleBlock(block, show) {\n    block.hidden = !show;\n    block.disabled = !show;\n    if (!show) block.querySelectorAll('[data-err]').forEach(clearError);\n  }\n\n  function roleGroupFor(category, roleId) {\n    if (category === 'teaching') return 'teaching';\n    if (roleId === 'digital-marketing') return 'marketing';\n    if (roleId === 'all-roles') return null;\n    return 'operations';\n  }\n\n  function syncForm() {\n    if (submitted) return;\n    const role = findRole(state.category, state.roleId);\n    const canApply = !role.isOverview;\n    notice.hidden = canApply;\n    form.hidden = !canApply;\n    if (!canApply) return;\n\n    document.getElementById('f-category').value   = state.category;\n    document.getElementById('f-role-id').value    = role.id;\n    document.getElementById('f-role-title').value = role.title;\n    document.getElementById('applying-for').textContent = role.title;\n\n    const group = roleGroupFor(state.category, state.roleId);\n    roleGroups.forEach((g) => toggleBlock(g, g.dataset.roleGroup === group));\n  }\n\n  form.querySelectorAll('input[name=\"hasExperience\"]').forEach((radio) =>\n    radio.addEventListener('change', () => toggleBlock(expDetails, radio.value === 'yes' && radio.checked)));\n\n  \/* Validation *\/\n  const isActive = (el) => !el.matches(':disabled') && !el.closest('[hidden]');\n  const allowedExts = (el) => (el.getAttribute('accept') || '')\n    .split(',').map((s) => s.trim().toLowerCase()).filter((s) => s.startsWith('.'));\n\n  function getMessage(el) {\n    const label = el.dataset.label || 'this field';\n    const requiredMsg = el.dataset.msg || (el.type === 'file' ? `Please upload your ${label}.` : `Please enter your ${label}.`);\n\n    if (el.type === 'radio')    return el.required && !form.querySelector(`input[name=\"${el.name}\"]:checked`) ? requiredMsg : '';\n    if (el.type === 'checkbox') return el.required && !el.checked ? requiredMsg : '';\n\n    if (el.type === 'file') {\n      const file = el.files[0];\n      if (!file) return el.required ? requiredMsg : '';\n      const exts = allowedExts(el);\n      if (exts.length && !exts.some((x) => file.name.toLowerCase().endsWith(x))) {\n        const kinds = [...new Set(exts.map((x) => x === '.jpeg' ? 'JPG' : x.slice(1).toUpperCase()))];\n        return `${cap(label)} must be a ${kinds.join(', ')} file.`;\n      }\n      if (file.size > MAX_FILE_MB * 1024 * 1024) return `${cap(label)} must be ${MAX_FILE_MB} MB or smaller.`;\n      return '';\n    }\n\n    const v = el.value.trim();\n    if (!v) return el.required ? requiredMsg : '';\n    if (el.type === 'email' && !EMAIL_RE.test(v)) return 'Please enter a valid email address (e.g. name@example.com).';\n    if (el.type === 'tel' && !PHONE_RE.test(v.replace(\/[\\s-]\/g, ''))) return 'Please enter a valid 10-digit mobile number.';\n    if (el.type === 'url') {\n      try { if (!\/^https?:$\/.test(new URL(v).protocol)) throw new Error(); }\n      catch (_) { return 'Please enter a full link starting with https:\/\/'; }\n    }\n    if (el.name === 'fullName' && v.length < 2) return 'Please enter your full name.';\n    return '';\n  }\n\n  const groupOf = (el) => el.type === 'radio' ? [...form.querySelectorAll(`input[name=\"${el.name}\"]`)] : [el];\n\n  function setError(el, msg) {\n    groupOf(el).forEach((c) => msg ? c.setAttribute('aria-invalid', 'true') : c.removeAttribute('aria-invalid'));\n    const err = document.getElementById(el.dataset.err);\n    if (err) { err.textContent = msg; err.hidden = !msg; }\n  }\n  function clearError(el) { setError(el, ''); }\n\n  function validateField(el) {\n    const msg = isActive(el) ? getMessage(el) : '';\n    setError(el, msg);\n    return msg;\n  }\n\n  function validateAll() {\n    const seenRadio = new Set();\n    const errors = [];\n    form.querySelectorAll('[data-err]').forEach((el) => {\n      if (el.type === 'radio') { if (seenRadio.has(el.name)) return; seenRadio.add(el.name); }\n      if (!isActive(el)) { clearError(el); return; }\n      const msg = validateField(el);\n      if (msg) errors.push({ el, msg });\n    });\n    return errors;\n  }\n\n  function showSummary(heading, itemsHTML) {\n    errorHeading.textContent = heading;\n    errorList.innerHTML = itemsHTML;\n    errorSummary.hidden = false;\n    errorSummary.focus();\n    errorSummary.scrollIntoView({ block: 'center' });\n  }\n\n  const errorItems = (errors) => errors.map(({ el, msg }) =>\n    `<li><a href=\"#${el.id}\" data-focus=\"${el.id}\" class=\"font-semibold text-brand-red underline\">${escapeHTML(msg)}<\/a><\/li>`).join('');\n\n  form.addEventListener('blur', (e) => {\n    const el = e.target;\n    if (el.dataset && el.dataset.err && !['radio', 'checkbox', 'file'].includes(el.type) &&\n        (el.value || el.getAttribute('aria-invalid') === 'true')) validateField(el);\n  }, true);\n  form.addEventListener('change', (e) => { if (e.target.dataset && e.target.dataset.err) validateField(e.target); });\n  form.addEventListener('input',  (e) => { if (e.target.getAttribute('aria-invalid') === 'true') validateField(e.target); });\n\n  errorList.addEventListener('click', (e) => {\n    const link = e.target.closest('[data-focus]');\n    if (!link) return;\n    e.preventDefault();\n    const target = document.getElementById(link.dataset.focus);\n    target.focus();\n    target.scrollIntoView({ block: 'center' });\n  });\n\n  \/* Cloudflare Turnstile (only when a site key is configured) *\/\n  let turnstileId = null;\n  function initTurnstile() {\n    if (!CFG.turnstileSiteKey) return;\n    const mount = () => {\n      if (!window.turnstile) return setTimeout(mount, 300);\n      turnstileId = window.turnstile.render('#jt-turnstile', { sitekey: CFG.turnstileSiteKey, theme: 'light' });\n    };\n    mount();\n  }\n\n  \/* Submission \u2014 sends everything (incl. files) to the plugin's REST endpoint *\/\n  async function submitApplication(data) {\n    if (!CFG.endpoint) throw Object.assign(new Error('The application service is not set up yet.'), { kind: 'config' });\n    const res = await fetch(CFG.endpoint, { method: 'POST', body: data, credentials: 'same-origin' });\n    let body = null;\n    try { body = await res.json(); } catch (_) { \/* non-JSON error page *\/ }\n    if (!res.ok || !body || !body.ok) {\n      const err = new Error((body && body.message) || 'Submission failed');\n      err.fields = body && body.data && body.data.fields;\n      err.status = res.status;\n      throw err;\n    }\n    return body;\n  }\n\n  const FIELD_INPUT = {\n    fullName: 'f-name', email: 'f-email', phone: 'f-phone', city: 'f-city', resume: 'f-resume',\n    class10Certificate: 'f-class10', class12Certificate: 'f-class12', hasExperience: 'f-exp-yes',\n    experienceYears: 'f-exp-years', lastOrganization: 'f-exp-org', experienceProof: 'f-exp-proof',\n    highestDegree: 'f-degree', portfolioUrl: 'f-portfolio', campaignCaseStudy: 'f-casestudy',\n    supportingDocument: 'f-ops-cert', screeningSlot: 'f-slot', offlineAvailabilityConfirmed: 'f-confirm', consent: 'f-consent',\n  };\n\n  form.addEventListener('submit', async (e) => {\n    e.preventDefault();\n    const errors = validateAll();\n    if (errors.length) { showSummary('Please fix the following before submitting:', errorItems(errors)); return; }\n\n    errorSummary.hidden = true;\n    submitBtn.disabled = true;\n    submitLabel.textContent = 'Uploading\u2026 please keep this page open';\n    try {\n      const data = new FormData(form);\n      if (CFG.turnstileSiteKey && window.turnstile && turnstileId !== null) {\n        data.set('cf-turnstile-response', window.turnstile.getResponse(turnstileId) || '');\n      }\n      const result = await submitApplication(data);\n      showSuccess(data, result);\n    } catch (err) {\n      const serverErrors = err.fields ? Object.entries(err.fields).map(([k, msg]) => {\n        const el = document.getElementById(FIELD_INPUT[k] || '');\n        if (el) setError(el, msg);\n        return el ? { el, msg } : null;\n      }).filter(Boolean) : [];\n      if (serverErrors.length) showSummary('Please fix the following before submitting:', errorItems(serverErrors));\n      else showSummary('We couldn\u2019t send your application.',\n        `<li class=\"text-brand-ink\">${escapeHTML(err.message && err.message !== 'Failed to fetch' ? err.message : 'Please check your internet connection and try again.')}<\/li>`);\n      if (window.turnstile && turnstileId !== null) window.turnstile.reset(turnstileId);\n    } finally {\n      submitBtn.disabled = false;\n      submitLabel.textContent = SUBMIT_TEXT;\n    }\n  });\n\n  function showSuccess(data, result) {\n    submitted = true;\n    document.getElementById('success-id').textContent = result.id || '';\n    document.getElementById('success-role').textContent = data.get('roleTitle');\n    document.getElementById('success-slot').textContent = data.get('screeningSlot');\n    form.hidden = true;\n    notice.hidden = true;\n    successCard.hidden = false;\n    successCard.scrollIntoView({ block: 'center' });\n    document.getElementById('success-title').focus({ preventScroll: true });\n  }\n\n  document.getElementById('apply-again').addEventListener('click', () => {\n    submitted = false;\n    form.reset();\n    form.querySelectorAll('[data-err]').forEach(clearError);\n    toggleBlock(expDetails, false);\n    errorSummary.hidden = true;\n    successCard.hidden = true;\n    if (window.turnstile && turnstileId !== null) window.turnstile.reset(turnstileId);\n    syncForm();\n    (form.hidden ? filterBar.querySelector('[data-role]') : document.getElementById('f-name')).focus();\n  });\n\n  initTurnstile();\n  render();\n})();\n<\/script>\n<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1a01f9e5 elementor-widget elementor-widget-shortcode\" data-id=\"1a01f9e5\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\"><div class=\"jtp-site jtp-site-footer\"><footer class=\"ftr\"><div class=\"wrap\"><div class=\"ftr-row\"><div class=\"fcols\"><div class=\"fcol brand\"><img decoding=\"async\" class=\"flogo\" src=\"https:\/\/jtjee.com\/wp-content\/plugins\/jtjee-recruitment\/assets\/footer-logo.webp\" width=\"120\" height=\"59\" alt=\"JTJEE\"><p class=\"addr\">Chandrasekharpur Centre Bhubaneswar, Odisha 751016<\/p><a class=\"tel\" href=\"tel:+917855031517\">+91 7855031517<\/a><\/div><div class=\"fcol\"><p class=\"h\">Courses<\/p><ul><li><a href=\"#entrance\">Entrance \u2014 NEET, JEE, CUET, OUAT<\/a><\/li><li><a href=\"#general\">General \u2014 CBSE, ICSE, CHSE<\/a><\/li><li><a href=\"https:\/\/jtjee.com\/#scholarship-tests\">Scholarship Test<\/a><\/li><\/ul><\/div><div class=\"fcol\"><p class=\"h\">Test Series<\/p><ul><li><a href=\"#pyqs\">PYQs (Free)<\/a><\/li><li><a href=\"#practice-tests\">Practice Tests (Free)<\/a><\/li><li><a href=\"#live-exams\">Live Exams<\/a><\/li><\/ul><\/div><div class=\"fcol\"><p class=\"h\">More<\/p><ul><li><a href=\"https:\/\/jtjee.com\/about-us\/\">About Us<\/a><\/li><li><a href=\"https:\/\/jtjee.com\/blog\/\">Blogs<\/a><\/li><li><a href=\"#news\">News<\/a><\/li><li><a href=\"https:\/\/jtjee.com\/or\/testimonials\/\">Testimonials<\/a><\/li><li><a href=\"https:\/\/jtjee.com\/career\/\">Career<\/a><\/li><\/ul><\/div><\/div><div class=\"map map-live\"><div class=\"map-vis\"><iframe src=\"https:\/\/www.google.com\/maps\/embed?pb=!1m18!1m12!1m3!1d3741.327541541448!2d85.82047899999999!3d20.328083200000002!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x3a19096eed53396f%3A0xd2bad9ef288b10d!2sJanmendra%20Tripathy%20Chemistry%20Classes%20(Online%20%26%20Offline)!5e0!3m2!1sen!2sin!4v1791652974328!5m2!1sen!2sin\" title=\"JTJEE Education on Google Maps\" loading=\"lazy\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe><\/div><a class=\"map-go\" href=\"https:\/\/share.google\/pnM3EMkvaclKqDHIv\" target=\"_blank\" rel=\"noopener\">Get Directions <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#fbe509\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M5 12h14M13 6l6 6-6 6\"\/><\/svg><\/a><\/div><\/div><div class=\"copy\">\u00a9 2026 JTJEE Education. All rights reserved.<\/div><\/div><\/footer><\/div><\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"postBodyCss":"","postBodyMargin":[],"postBodyPadding":[],"postBodyBackground":{"backgroundType":"classic","gradient":""},"footnotes":""},"class_list":["post-36","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/jtjee.com\/or\/wp-json\/wp\/v2\/pages\/36","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jtjee.com\/or\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/jtjee.com\/or\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/jtjee.com\/or\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jtjee.com\/or\/wp-json\/wp\/v2\/comments?post=36"}],"version-history":[{"count":13,"href":"https:\/\/jtjee.com\/or\/wp-json\/wp\/v2\/pages\/36\/revisions"}],"predecessor-version":[{"id":82,"href":"https:\/\/jtjee.com\/or\/wp-json\/wp\/v2\/pages\/36\/revisions\/82"}],"wp:attachment":[{"href":"https:\/\/jtjee.com\/or\/wp-json\/wp\/v2\/media?parent=36"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}