{"id":21208,"date":"2024-01-06T12:48:54","date_gmt":"2024-01-06T07:18:54","guid":{"rendered":"https:\/\/internshala.com\/blog\/?p=21208"},"modified":"2026-10-13T15:29:26","modified_gmt":"2026-10-13T09:59:26","slug":"employer-data-entry-job-description","status":"publish","type":"post","link":"https:\/\/internshala.com\/blog\/employer-data-entry-job-description\/","title":{"rendered":"Data Entry Job Description with Template (Free Download)"},"content":{"rendered":"<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"2560\" height=\"1067\" src=\"https:\/\/internshala.com\/blog\/wp-content\/uploads\/2024\/01\/Job-Description-Templates-for-Data-Entry-Clerks1-scaled.jpg\" alt=\"Data Entry Job Description\" class=\"wp-image-21210\" srcset=\"https:\/\/internshala.com\/blog\/wp-content\/uploads\/2024\/01\/Job-Description-Templates-for-Data-Entry-Clerks1-scaled.jpg 2560w, https:\/\/internshala.com\/blog\/wp-content\/uploads\/2024\/01\/Job-Description-Templates-for-Data-Entry-Clerks1-672x280.jpg 672w, https:\/\/internshala.com\/blog\/wp-content\/uploads\/2024\/01\/Job-Description-Templates-for-Data-Entry-Clerks1-1024x427.jpg 1024w, https:\/\/internshala.com\/blog\/wp-content\/uploads\/2024\/01\/Job-Description-Templates-for-Data-Entry-Clerks1-1536x640.jpg 1536w, https:\/\/internshala.com\/blog\/wp-content\/uploads\/2024\/01\/Job-Description-Templates-for-Data-Entry-Clerks1-2048x853.jpg 2048w\" sizes=\"(max-width: 2560px) 100vw, 2560px\" \/><\/figure><\/div>\n\n\n<figure class=\"wp-block-table is-style-regular\"><table class=\"has-pale-cyan-blue-background-color has-background\"><tbody><tr><td><strong>Summary<\/strong>: A data entry job description should clearly define the role, responsibilities, required skills, qualifications, compensation, and work schedule to attract qualified candidates. The blog provides practical writing tips and ready-to-use templates for fresher, mid-level, and senior data entry professionals. It highlights the importance of accuracy, typing speed, computer proficiency, and attention to detail in maintaining reliable business records. Employers can customise these templates to streamline hiring and find the right data entry talent efficiently.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Companies depend on accurate data to run operations smoothly, and every piece of information must be stored correctly and updated regularly. Data entry professionals handle this responsibility by entering and managing information in digital systems. The job involves working with spreadsheets, databases, and internal software tools to ensure data stays clean and usable. Employers look for candidates who demonstrate attention to detail, strong typing ability, and basic computer knowledge.&nbsp;<\/p>\n\n\n\n<p>This blog explains how to write a strong data entry job description. It also includes sample templates for different experience levels to help employers draft job descriptions efficiently.<\/p>\n\n\n\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_86 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title ez-toc-toggle\" style=\"cursor:pointer\">Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 eztoc-toggle-hide-by-default' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/internshala.com\/blog\/employer-data-entry-job-description\/#What_is_Data_Entry\" >What is Data Entry?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/internshala.com\/blog\/employer-data-entry-job-description\/#Data_Entry_Job_Description_Template\" >Data Entry Job Description Template<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/internshala.com\/blog\/employer-data-entry-job-description\/#Data_Entry_Job_Description_Sample\" >Data Entry Job Description Sample<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/internshala.com\/blog\/employer-data-entry-job-description\/#Points_to_Consider_When_Writing_the_Data_Entry_Job_Description\" >Points to Consider When Writing the Data Entry Job Description<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/internshala.com\/blog\/employer-data-entry-job-description\/#Conclusion\" >Conclusion<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/internshala.com\/blog\/employer-data-entry-job-description\/#FAQs\" >FAQs<\/a><\/li><\/ul><\/nav><\/div>\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"What_is_Data_Entry\"><\/span>What is Data Entry?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Data entry is the process of entering, updating, and maintaining information in digital systems like databases, spreadsheets, and company software. It helps businesses maintain accurate, organized, and easily accessible records for daily operations and analysis.<\/p>\n\n\n\n<p>Here are the key aspects of data entry:<\/p>\n\n\n\n<ul>\n<li><strong>Digital Information Management:<\/strong> Data entry primarily involves managing and storing information digitally using tools such as Microsoft Excel, Google Sheets, CRM platforms, and database software.<\/li>\n\n\n\n<li><strong>Typing and Record Updating:<\/strong> Common tasks include typing information, updating records, verifying details, scanning documents, and transcribing audio or handwritten content into digital formats.<\/li>\n\n\n\n<li><strong>Accuracy and Attention to Detail:<\/strong> Maintaining accuracy is one of the most important parts of data entry, as even small errors can affect business records and reporting.<\/li>\n\n\n\n<li><strong>Industry Usage:<\/strong> Data entry is widely used across industries such as healthcare, finance, retail, transportation, education, and e-commerce to maintain customer, employee, and operational records.<\/li>\n\n\n\n<li><strong>Required Skills:<\/strong> Professionals in data entry roles need a fast typing speed, strong organizational skills, computer proficiency, time management, and close attention to detail.<\/li>\n\n\n\n<li><strong>Automation and Technology:<\/strong> Many companies now use technologies such as OCR (Optical Character Recognition) to automatically extract text from documents and images. It reduces manual labor and improves efficiency.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-table is-style-stripes\"><table><tbody><tr><td><strong>You know?<\/strong> According to typing benchmark data, a data entry clerk typically needs a 60\u201380 WPM typing speed, with accuracy being a critical hiring factor.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Data_Entry_Job_Description_Template\"><\/span>Data Entry Job Description Template<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>This sample data entry clerk <a href=\"https:\/\/blog.internshala.com\/what-is-job-description\/?utm_source=is_blog&amp;utm_medium=employer-data-entry-job-description&amp;utm_campaign=employer-blog-banner\" target=\"_blank\" rel=\"noreferrer noopener\">job description<\/a> is designed for freshers and entry-level candidates who are starting their careers in data entry and administrative support. It provides employers with a simple structure to outline key responsibilities, required skills, qualifications, and expectations for the role. You can also customize the following template based on your company\u2019s industry, tools, and hiring needs.<\/p>\n\n\n\n<!-- Job Description Template Builder: paste this whole file into a WordPress \"Custom HTML\" block.\n     data-role=\"auto\" picks the role from the post's URL or title (e.g. \/python-developer-job-description\/ loads Python Developer).\n     To force a role, replace \"auto\" with one of: software-developer, python-developer, front-end-developer, back-end-developer,\n     full-stack-developer, java-developer, android-developer, web-developer, data-analyst, data-scientist, ai-ml-engineer,\n     mis-executive, ui-ux-designer, graphic-designer, digital-marketing-executive, seo-executive, content-writer, hr-executive,\n     hr-intern, sales-executive, business-development-executive, customer-support-executive, telecaller, data-entry-operator,\n     back-office-executive, computer-operator, accountant, blank\n     data-design sets the template style a post opens with: classic, modern (Bold header), simple or sidebar.\n     data-cta-url is where the \"Post this job\" link goes. The builder adds tracking tags to it automatically:\n     utm_source=is_blog, utm_medium=jd_builder, utm_campaign=(the post's URL slug), utm_content=(the role). Tags you put in the URL yourself are kept.\n     data-gate=\"form\" asks for name, work email, mobile and company before a download and sends them to data-lead-url (a Google\n       Apps Script web app that adds a row to a Google Sheet). data-gate=\"signup\" asks visitors to create an Internshala\n       account instead. data-gate=\"off\" lets anyone download.\n       Employers already signed in to the site download straight away. To tell, the builder loads data-login-check\n       (default \/employer\/dashboard) in the background: signed-out visitors get a login form there. Others see the sign-up box;\n       sign-up opens in a small window, which closes and the download starts once the site confirms the sign-in.\n       Optional settings, added the same way as data-gate: data-google-url, data-login-url (sign-up and log-in addresses),\n       data-login-cookie (name of a cookie that only signed-in users have), data-gate-fallback=\"off\" (hides the \"I've signed in\"\n       button). Add ?jdgate=reset to a post's address to be asked again.\n     Analytics events sent to GA4 or Tag Manager when present: jd_builder_view, jd_builder_edit, jd_builder_role_change,\n     jd_builder_design_change, jd_builder_download, jd_builder_cta_click,\n     jd_builder_gate_open, jd_builder_signup_click, jd_builder_signup_complete, jd_builder_gate_close,\n     jd_builder_already_signed_in, jd_builder_lead_submit -->\n<div id=\"cwjd\" class=\"cwjd\" data-role=\"auto\" data-design=\"classic\" data-gate=\"form\" data-lead-url=\"https:\/\/script.google.com\/macros\/s\/AKfycbz-qprMw0zQmyDBBI7huZ9pGWNbDa8DAlea1nEmt7fvOmcPsY8vySLYyf1tyU4xWsIt3w\/exec\" data-cta-url=\"https:\/\/internshala.com\/hire-talent\">\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\n<link rel=\"stylesheet\" href=\"https:\/\/fonts.googleapis.com\/css2?family=DM+Sans:wght@400;500;700&#038;family=Fraunces:opsz,wght@9..144,500;9..144,700&#038;display=swap\">\n<style>\n#cwjd,#cwjd *{box-sizing:border-box}\n#cwjd{--ui-ink:#1d1d1b;--ui-muted:#5c5a54;--ui-line:#d9d5cb;--ui-bg:#ffffff;--ui-soft:#f6f4ef;--ui-accent:#0f5e5a;color:var(--ui-ink);font-size:16px;line-height:1.45;text-align:left;margin:32px 0;max-width:none}\n#cwjd .cwjd-app{display:grid;grid-template-columns:1fr;gap:28px;align-items:start}\n#cwjd.cwjd-wide .cwjd-app{grid-template-columns:minmax(290px,360px) minmax(0,1fr);gap:24px}\n#cwjd .cwjd-previewcol{min-width:0}\n#cwjd .cwjd-app{position:relative}\n#cwjd.cwjd-wide.cwjd-sticky:not(.cwjd-expanded) .cwjd-previewcol{position:sticky;top:var(--cwjd-top,16px)}\n#cwjd.cwjd-wide:not(.cwjd-expanded) .cwjd-actions{gap:8px;margin-bottom:10px}\n#cwjd.cwjd-wide:not(.cwjd-expanded) .cwjd-actions .cwjd-btn{min-height:40px;padding:8px 14px;font-size:14px;gap:6px}\n#cwjd.cwjd-wide:not(.cwjd-expanded) .cwjd-actions .cwjd-btn svg{width:16px;height:16px}\n#cwjd.cwjd-wide:not(.cwjd-expanded) .cwjd-status{min-height:0;margin-bottom:8px}\n#cwjd.cwjd-wide:not(.cwjd-expanded) .cwjd-status:empty{display:none}\n#cwjd .cwjd-stage{cursor:zoom-in}\n#cwjd.cwjd-expanded .cwjd-previewcol{position:fixed;top:0;left:0;right:0;bottom:0;z-index:2147483000;background:rgba(29,29,27,.88);overflow:auto;padding:20px 16px 40px 16px;transform:none !important}\n#cwjd.cwjd-expanded .cwjd-actions{justify-content:center}\n#cwjd.cwjd-expanded .cwjd-status{text-align:center;color:#ffffff}\n#cwjd.cwjd-expanded .cwjd-btn,#cwjd.cwjd-expanded .cwjd-btn-primary{background:#ffffff;color:#1d1d1b;border-color:#ffffff}\n#cwjd.cwjd-expanded .cwjd-btn:hover{background:#e9e6df}\n#cwjd.cwjd-expanded .cwjd-stage{cursor:default}\n#cwjd .cwjd-form{background:var(--ui-bg);border:1px solid var(--ui-line);border-radius:14px;padding:22px;display:flex;flex-direction:column;gap:22px}\n#cwjd .cwjd-formtitle{font-size:20px;font-weight:700;margin:0 0 4px 0;line-height:1.25}\n#cwjd .cwjd-hint{font-size:14px;color:var(--ui-muted);margin:0}\n#cwjd .cwjd-jump{display:inline-block;margin-top:10px;font-size:14px;font-weight:600;color:var(--ui-accent);text-decoration:underline}\n#cwjd.cwjd-wide .cwjd-jump{display:none}\n#cwjd .cwjd-group{display:flex;flex-direction:column;gap:12px;padding-top:18px;border-top:1px solid var(--ui-line)}\n#cwjd .cwjd-gtitle{font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ui-muted);margin:0}\n#cwjd .cwjd-field{display:flex;flex-direction:column;gap:5px;margin:0;font-size:14px;font-weight:600;font-style:normal;color:var(--ui-ink)}\n#cwjd label,#cwjd .cwjd-field span,#cwjd .cwjd-field small{font-style:normal}\n#cwjd .cwjd-field small{font-weight:400;color:var(--ui-muted);font-size:13px}\n#cwjd .cwjd-field input[type=text],#cwjd .cwjd-field textarea,#cwjd .cwjd-field select{width:100%;max-width:none;margin:0;padding:10px 12px;border:1px solid #bdb8ab;border-radius:8px;background:#fff;color:var(--ui-ink);font:inherit;font-weight:400;font-size:15px;line-height:1.45;box-shadow:none;height:auto;min-height:44px}\n#cwjd .cwjd-field textarea{resize:vertical;min-height:96px}\n#cwjd .cwjd-field textarea.cwjd-tall{min-height:190px}\n#cwjd .cwjd-field input:focus,#cwjd .cwjd-field textarea:focus,#cwjd .cwjd-field select:focus{outline:2px solid var(--ui-accent);outline-offset:1px;border-color:var(--ui-accent)}\n#cwjd .cwjd-swatches{display:flex;flex-wrap:wrap;gap:8px;align-items:center}\n#cwjd .cwjd-swatch{width:36px;height:36px;min-height:0;padding:0;margin:0;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1px var(--ui-line);cursor:pointer}\n#cwjd .cwjd-swatch[aria-pressed=true]{box-shadow:0 0 0 2px var(--ui-ink)}\n#cwjd .cwjd-colorwrap{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600}\n#cwjd .cwjd-colorwrap input[type=color]{width:44px;height:36px;padding:0;margin:0;border:1px solid #bdb8ab;border-radius:8px;background:#fff;cursor:pointer}\n#cwjd .cwjd-logorow{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-weight:400}\n#cwjd .cwjd-logorow input[type=file]{font:inherit;font-size:14px;font-weight:400;width:auto;max-width:100%;height:auto;margin:0;padding:6px 0;border:0;background:none;box-shadow:none}\n#cwjd .cwjd-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;margin:0;padding:10px 18px;border-radius:999px;border:1.5px solid var(--ui-ink);background:#fff;color:var(--ui-ink);font:inherit;font-size:15px;font-weight:700;line-height:1.2;text-transform:none;letter-spacing:0;cursor:pointer;box-shadow:none;text-decoration:none}\n#cwjd .cwjd-btn:hover{background:var(--ui-soft)}\n#cwjd .cwjd-btn-primary{background:var(--ui-ink);color:#fff}\n#cwjd .cwjd-btn-primary:hover{background:#3a3a36}\n#cwjd .cwjd-btn-small{min-height:36px;padding:6px 14px;font-size:14px}\n#cwjd .cwjd-btn:disabled{opacity:.55;cursor:wait}\n#cwjd .cwjd-btn svg{width:18px;height:18px;flex:none}\n#cwjd .cwjd-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;padding:0;margin:-1px}\n#cwjd .cwjd-fmt{display:inline-flex;margin:0;position:relative}\n#cwjd .cwjd-select{min-height:44px;height:auto;width:auto;max-width:100%;margin:0;padding:8px 34px 8px 16px;border:1.5px solid var(--ui-ink);border-radius:999px;background-color:#fff;color:var(--ui-ink);font:inherit;font-size:15px;font-weight:700;line-height:1.2;box-shadow:none;cursor:pointer}\n#cwjd .cwjd-select:focus{outline:2px solid var(--ui-accent);outline-offset:1px}\n#cwjd .cwjd-select:disabled{opacity:.55;cursor:wait}\n#cwjd.cwjd-wide:not(.cwjd-expanded) .cwjd-actions .cwjd-select{min-height:40px;padding:6px 30px 6px 14px;font-size:14px}\n#cwjd.cwjd-expanded .cwjd-select{border-color:#ffffff}\n#cwjd .cwjd-formfoot{display:flex;flex-wrap:wrap;gap:10px;padding-top:18px;border-top:1px solid var(--ui-line)}\n#cwjd .cwjd-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:0 0 14px 0}\n#cwjd .cwjd-status{font-size:14px;color:var(--ui-muted);min-height:20px;margin:0 0 10px 0}\n#cwjd .cwjd-status.cwjd-err{color:#a1260d;font-weight:600}\n#cwjd .cwjd-gate{position:fixed;top:0;left:0;right:0;bottom:0;z-index:2147483600;background:rgba(29,29,27,.62);display:flex;align-items:center;justify-content:center;padding:16px;overflow:auto;margin:0}\n#cwjd .cwjd-gate-box{position:relative;width:100%;max-width:420px;box-sizing:border-box;background:#ffffff;color:#1d1d1b;border-radius:16px;padding:32px 28px 24px 28px;box-shadow:0 20px 60px rgba(0,0,0,.3);display:flex;flex-direction:column;gap:12px;text-align:left;font-size:15px;line-height:1.45}\n#cwjd .cwjd-gate-x{position:absolute;top:8px;right:8px;width:44px;height:44px;min-height:0;margin:0;padding:0;border:0;border-radius:50%;background:none;color:#5c5a54;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:none}\n#cwjd .cwjd-gate-x:hover{background:#f1efe9}\n#cwjd .cwjd-gate-x svg{width:20px;height:20px}\n#cwjd .cwjd-gate-title{font-size:22px;font-weight:700;line-height:1.25;margin:0;padding-right:36px;color:#1d1d1b}\n#cwjd .cwjd-gate-sub{margin:0 0 6px 0;font-size:15px;line-height:1.45;color:#4a4944}\n#cwjd .cwjd-gate-btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:48px;margin:0;padding:10px 16px;border:1.5px solid #0077c2;border-radius:10px;background:#ffffff;color:#006bb0;font:inherit;font-size:16px;font-weight:700;line-height:1.2;text-transform:none;letter-spacing:0;cursor:pointer;box-shadow:none}\n#cwjd .cwjd-gate-btn:hover{background:#eaf5fc;color:#006bb0}\n#cwjd .cwjd-gate-btn.cwjd-gate-main{background:#0077c2;color:#ffffff}\n#cwjd .cwjd-gate-btn.cwjd-gate-main:hover{background:#006bb0;color:#ffffff}\n#cwjd .cwjd-gate-btn svg{width:20px;height:20px;flex:none}\n#cwjd .cwjd-gate-btn:focus-visible,#cwjd .cwjd-gate-x:focus-visible,#cwjd .cwjd-gate-link:focus-visible{outline:2px solid #1d1d1b;outline-offset:2px}\n#cwjd .cwjd-gate-login,#cwjd .cwjd-gate-terms{margin:0;font-size:14px;line-height:1.45;color:#4a4944}\n#cwjd .cwjd-gate-status{margin:0;font-size:14px;line-height:1.45;font-weight:600;color:#1d1d1b}\n#cwjd .cwjd-gate-status:empty{display:none}\n#cwjd .cwjd-gate-link{display:inline;width:auto;min-height:0;margin:0;padding:0;border:0;border-radius:0;background:none;color:#006bb0;font:inherit;font-weight:700;text-decoration:underline;text-transform:none;letter-spacing:0;cursor:pointer;box-shadow:none}\n#cwjd .cwjd-gate-terms a,#cwjd .cwjd-gate-open{color:#006bb0;text-decoration:underline;font-weight:700}\n#cwjd .cwjd-gate-form{display:flex;flex-direction:column;gap:12px;margin:0}\n#cwjd .cwjd-gate-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}\n#cwjd .cwjd-gate-field{display:flex;flex-direction:column;gap:5px;margin:0;font-size:14px;font-weight:600;font-style:normal;color:#1d1d1b;line-height:1.3}\n#cwjd .cwjd-gate-field input{width:100%;max-width:none;height:auto;min-height:44px;box-sizing:border-box;margin:0;padding:10px 12px;border:1px solid #bdb8ab;border-radius:8px;background:#ffffff;color:#1d1d1b;font:inherit;font-size:15px;font-weight:400;line-height:1.3;box-shadow:none}\n#cwjd .cwjd-gate-field input:focus{outline:2px solid #0077c2;outline-offset:1px;border-color:#0077c2}\n#cwjd .cwjd-gate-field input[aria-invalid=true]{border-color:#a1260d}\n#cwjd .cwjd-gate-tel{display:flex;gap:8px}\n#cwjd .cwjd-gate-cc{flex:none;display:flex;align-items:center;min-height:44px;padding:0 12px;border:1px solid #bdb8ab;border-radius:8px;background:#f6f4ef;font-weight:400;font-size:15px;color:#1d1d1b}\n#cwjd .cwjd-gate-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}\n#cwjd .cwjd-gate-ferr{margin:0;font-size:14px;line-height:1.4;font-weight:600;color:#a1260d}\n#cwjd .cwjd-gate-ferr:empty{display:none}\n#cwjd .cwjd-gate-form .cwjd-gate-btn:disabled{opacity:.6;cursor:wait}\n#cwjd .cwjd-gate-done{display:flex;flex-direction:column;gap:10px;padding-top:12px;border-top:1px solid #d9d5cb}\n#cwjd .cwjd-gate-done .cwjd-btn{width:100%}\n#cwjd .cwjd-cta{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:44px;margin:0 0 12px 0;padding:8px 14px;border:1px solid #b9dcf2;border-radius:10px;background:#eaf5fc;color:#1d1d1b;font-size:14px;line-height:1.35;font-weight:400;text-decoration:none;box-shadow:none}\n#cwjd .cwjd-cta strong{color:#006bb0;font-weight:700}\n#cwjd .cwjd-cta svg{width:18px;height:18px;flex:none;color:#006bb0}\n#cwjd .cwjd-cta:hover{background:#dcedf9;color:#1d1d1b;text-decoration:none}\n#cwjd .cwjd-cta:focus-visible{outline:2px solid #006bb0;outline-offset:2px}\n#cwjd .cwjd-cta.cwjd-cta-hot{background:#0077c2;border-color:#0077c2;color:#ffffff}\n#cwjd .cwjd-cta.cwjd-cta-hot strong,#cwjd .cwjd-cta.cwjd-cta-hot svg{color:#ffffff}\n#cwjd .cwjd-cta.cwjd-cta-hot:hover{background:#006bb0;color:#ffffff}\n#cwjd.cwjd-expanded .cwjd-cta{max-width:560px;margin-left:auto;margin-right:auto}\n#cwjd .cwjd-stage{position:relative;overflow:hidden;margin:0 auto;max-width:100%;border-radius:10px;box-shadow:0 1px 3px rgba(0,0,0,.12),0 8px 28px rgba(0,0,0,.08);background:#f6f4ef}\n#cwjd .cwjd-scale{position:absolute;top:0;left:0;width:1080px;transform-origin:0 0}\n#cwjd [hidden]{display:none !important}\n#cwjd:not([data-live]) .cwjd-app{display:none}\n#cwjd .cwjd-boot{margin:0;padding:16px 18px;border:1px dashed var(--ui-line);border-radius:12px;background:var(--ui-soft);color:var(--ui-muted);font-size:15px}\n#cwjd .cwjd-boot.cwjd-boot-err{border:1px solid #a1260d;color:#a1260d;background:#fff6f3;font-weight:600}\n\/* ---------- the job description sheet (what gets downloaded) ---------- *\/\n#cwjd .cwjd-scale{--cw-accent:#0f5e5a;--cw-on:#ffffff;--cw-head:#0f5e5a;--cw-display:'Fraunces',Georgia,'Times New Roman',serif;--cw-body:'DM Sans','Helvetica Neue',Helvetica,Arial,sans-serif}\n#cwjd .cwjd-scale[data-font=sans]{--cw-display:'DM Sans','Helvetica Neue',Helvetica,Arial,sans-serif}\n#cwjd .cwjd-sheet{width:1080px;min-height:1400px;box-sizing:border-box;background:#ffffff;color:#1d1d1b;font-family:var(--cw-body);font-size:17px;line-height:1.55;text-align:left;margin:0}\n#cwjd .cwjd-sheet *{margin:0;padding:0;border:0;background:none;text-transform:none;letter-spacing:normal;font-family:inherit;color:inherit;box-shadow:none}\n#cwjd .cwjd-sheet *::before,#cwjd .cwjd-sheet *::after{content:none}\n#cwjd .cwjd-sheet .cw-logo{display:block;max-height:56px;max-width:200px;width:auto;height:auto;object-fit:contain}\n#cwjd .cwjd-sheet .cw-p{white-space:pre-line;overflow-wrap:anywhere}\n#cwjd .cwjd-sheet .cw-list{display:flex;flex-direction:column;gap:10px;min-width:0}\n#cwjd .cwjd-sheet .cw-li{display:flex;gap:12px;align-items:flex-start;line-height:25px;overflow-wrap:anywhere}\n#cwjd .cwjd-sheet .cw-dotbox{flex:none;display:flex;align-items:center;height:25px}\n#cwjd .cwjd-sheet .cw-dot{display:block;width:7px;height:7px;border-radius:50%;background:var(--cw-accent)}\n#cwjd .cwjd-sheet .cw-ph{opacity:.45}\n\/* design 1: Classic *\/\n#cwjd .cw-classic{padding:72px 72px 0 72px;display:flex;flex-direction:column;gap:40px;background:#f6f4ef}\n#cwjd .cw-classic .cw-top{display:flex;flex-direction:column;gap:14px;padding-bottom:36px;border-bottom:2px solid #1d1d1b}\n#cwjd .cw-classic .cw-brandrow{display:flex;justify-content:space-between;align-items:center;gap:24px}\n#cwjd .cw-classic .cw-brand{display:flex;align-items:center;gap:16px;min-width:0}\n#cwjd .cw-classic .cw-company{font-size:18px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;line-height:1.3}\n#cwjd .cw-classic .cw-badge{flex:none;display:flex;align-items:center;height:42px;font-size:16px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;white-space:nowrap;color:var(--cw-on);background:var(--cw-accent);padding:0 18px;border-radius:999px;line-height:42px}\n#cwjd .cw-classic .cw-title{margin-top:12px;font-family:var(--cw-display);font-weight:700;font-size:92px;line-height:1.02;letter-spacing:-.02em;overflow-wrap:anywhere}\n#cwjd .cwjd-scale[data-font=sans] .cw-classic .cw-title{letter-spacing:-.03em}\n#cwjd .cw-classic .cw-details{font-size:20px;color:#4a4944}\n#cwjd .cw-classic .cw-h{font-family:var(--cw-display);font-weight:500;font-size:30px;line-height:1.2;color:var(--cw-head)}\n#cwjd .cwjd-scale[data-font=sans] .cw-classic .cw-h{font-weight:700;font-size:28px}\n#cwjd .cw-classic .cw-sec{display:flex;flex-direction:column;gap:14px;min-width:0}\n#cwjd .cw-classic .cw-row{display:grid;grid-template-columns:1fr 1fr;gap:48px}\n#cwjd .cw-classic .cw-row.cw-single{grid-template-columns:1fr}\n#cwjd .cw-classic .cw-row.cw-qb{grid-template-columns:1.4fr 1fr}\n#cwjd .cw-classic .cw-row.cw-qb.cw-single{grid-template-columns:1fr}\n#cwjd .cw-classic .cw-card{background:#ffffff;border:1px solid #d9d5cb;border-radius:16px;padding:32px;align-self:start}\n#cwjd .cw-classic .cw-foot{margin:auto -72px 0 -72px;background:var(--cw-accent);color:var(--cw-on);padding:44px 72px;display:flex;justify-content:space-between;align-items:center;gap:32px}\n#cwjd .cw-classic .cw-foot-l{display:flex;flex-direction:column;gap:6px;min-width:0}\n#cwjd .cw-classic .cw-foot-h{font-family:var(--cw-display);font-weight:700;font-size:34px;line-height:1.2}\n#cwjd .cw-classic .cw-foot-t{font-size:18px}\n#cwjd .cw-classic .cw-contact{flex:none;max-width:520px;font-size:24px;font-weight:700;border:2px solid var(--cw-on);border-radius:999px;padding:14px 28px;overflow-wrap:anywhere;text-align:center;line-height:1.3}\n\/* design 2: Bold header *\/\n#cwjd .cw-modern{display:flex;flex-direction:column}\n#cwjd .cw-modern .m-head{background:var(--cw-accent);color:var(--cw-on);padding:60px 72px 56px 72px;display:flex;flex-direction:column;gap:16px}\n#cwjd .cw-modern .m-brandrow{display:flex;justify-content:space-between;align-items:center;gap:24px}\n#cwjd .cw-modern .m-brand{display:flex;align-items:center;gap:16px;min-width:0}\n#cwjd .cw-modern .m-brand .cw-logo{background:#ffffff;padding:8px 12px;border-radius:10px;box-sizing:content-box}\n#cwjd .cw-modern .m-company{font-size:18px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;line-height:1.3}\n#cwjd .cw-modern .m-badge{flex:none;display:flex;align-items:center;height:40px;padding:0 18px;border:2px solid var(--cw-on);border-radius:999px;font-size:15px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;white-space:nowrap;line-height:36px}\n#cwjd .cw-modern .m-title{margin-top:22px;font-family:var(--cw-display);font-weight:700;font-size:84px;line-height:1.04;letter-spacing:-.02em;overflow-wrap:anywhere}\n#cwjd .cw-modern .m-details{font-size:20px;opacity:.9}\n#cwjd .cw-modern .m-body{flex:1;display:grid;grid-template-columns:1.55fr 1fr;gap:56px;padding:52px 72px 64px 72px;align-items:start}\n#cwjd .cw-modern .m-main,#cwjd .cw-modern .m-side{display:flex;flex-direction:column;gap:36px;min-width:0}\n#cwjd .cw-modern .m-sec{display:flex;flex-direction:column;gap:14px;min-width:0}\n#cwjd .cw-modern .m-h{font-size:15px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--cw-head);line-height:1.3;padding-bottom:10px;border-bottom:2px solid var(--cw-accent)}\n#cwjd .cw-modern .m-card{display:flex;flex-direction:column;gap:14px;background:#f3f2ee;border-radius:14px;padding:26px}\n#cwjd .cw-modern .m-card .m-h{border-bottom:0;padding-bottom:0}\n#cwjd .cw-modern .m-apply{display:flex;flex-direction:column;gap:8px;border:2px solid var(--cw-accent);border-radius:14px;padding:26px}\n#cwjd .cw-modern .m-apply-h{font-family:var(--cw-display);font-weight:700;font-size:26px;line-height:1.2}\n#cwjd .cw-modern .m-apply-t{font-size:16px}\n#cwjd .cw-modern .m-contact{font-size:19px;font-weight:700;color:var(--cw-head);overflow-wrap:anywhere}\n\/* design 3: Simple *\/\n#cwjd .cw-simple{padding:84px 88px 76px 88px;display:flex;flex-direction:column;gap:30px}\n#cwjd .cw-simple .n-top{display:flex;flex-direction:column;gap:14px;padding-bottom:10px}\n#cwjd .cw-simple .n-brand{display:flex;align-items:center;gap:14px}\n#cwjd .cw-simple .n-company{font-size:17px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--cw-head);line-height:1.3}\n#cwjd .cw-simple .n-badge{margin-left:auto;flex:none;font-size:14px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#5c5a54;white-space:nowrap}\n#cwjd .cw-simple .n-title{margin-top:20px;font-family:var(--cw-display);font-weight:700;font-size:72px;line-height:1.05;letter-spacing:-.02em;overflow-wrap:anywhere}\n#cwjd .cw-simple .n-details{font-size:20px;color:#4a4944}\n#cwjd .cw-simple .n-sec{display:grid;grid-template-columns:210px 1fr;gap:36px;padding-top:28px;border-top:1px solid #d3d1c9}\n#cwjd .cw-simple .n-h{font-size:15px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--cw-head);line-height:1.5;padding-top:2px}\n#cwjd .cw-simple .n-apply{margin-top:auto;padding-top:28px;border-top:2px solid var(--cw-accent);display:flex;flex-direction:column;gap:6px}\n#cwjd .cw-simple .n-apply-h{font-family:var(--cw-display);font-weight:700;font-size:26px;line-height:1.2}\n#cwjd .cw-simple .n-apply-row{display:flex;flex-wrap:wrap;gap:4px 10px;font-size:18px}\n#cwjd .cw-simple .n-contact{font-weight:700;color:var(--cw-head);overflow-wrap:anywhere}\n\/* design 4: Sidebar *\/\n#cwjd .cw-sidebar{display:flex;flex-direction:row;align-items:stretch}\n#cwjd .cw-sidebar .s-side{flex:none;width:350px;box-sizing:border-box;background:var(--cw-accent);color:var(--cw-on);padding:64px 40px 56px 40px;display:flex;flex-direction:column;gap:34px}\n#cwjd .cw-sidebar .s-side .cw-dot{background:var(--cw-on)}\n#cwjd .cw-sidebar .s-brand{display:flex;flex-direction:column;align-items:flex-start;gap:16px}\n#cwjd .cw-sidebar .s-brand .cw-logo{background:#ffffff;padding:8px 12px;border-radius:10px;box-sizing:content-box}\n#cwjd .cw-sidebar .s-company{font-size:19px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;line-height:1.3;overflow-wrap:anywhere}\n#cwjd .cw-sidebar .s-badge{align-self:flex-start;display:flex;align-items:center;height:38px;padding:0 16px;border:2px solid var(--cw-on);border-radius:999px;font-size:14px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;white-space:nowrap;line-height:34px}\n#cwjd .cw-sidebar .s-sec{display:flex;flex-direction:column;gap:12px;font-size:16px;line-height:1.55}\n#cwjd .cw-sidebar .s-h{font-size:14px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;opacity:.85}\n#cwjd .cw-sidebar .s-apply{margin-top:auto;display:flex;flex-direction:column;gap:8px;padding-top:28px;border-top:1px solid var(--cw-on)}\n#cwjd .cw-sidebar .s-apply-h{font-family:var(--cw-display);font-weight:700;font-size:24px;line-height:1.2}\n#cwjd .cw-sidebar .s-apply-t{font-size:15px}\n#cwjd .cw-sidebar .s-contact{font-size:17px;font-weight:700;overflow-wrap:anywhere}\n#cwjd .cw-sidebar .s-main{flex:1;min-width:0;padding:64px 64px 64px 56px;display:flex;flex-direction:column;gap:34px}\n#cwjd .cw-sidebar .s-headline{display:flex;flex-direction:column;gap:14px;padding-bottom:30px;border-bottom:2px solid #1d1d1b}\n#cwjd .cw-sidebar .s-title{font-family:var(--cw-display);font-weight:700;font-size:72px;line-height:1.05;letter-spacing:-.02em;overflow-wrap:anywhere}\n#cwjd .cw-sidebar .s-details{font-size:20px;color:#4a4944}\n#cwjd .cw-sidebar .s-msec{display:flex;flex-direction:column;gap:14px}\n#cwjd .cw-sidebar .s-mh{font-family:var(--cw-display);font-weight:500;font-size:28px;line-height:1.2;color:var(--cw-head)}\n#cwjd .cwjd-scale[data-font=sans] .cw-sidebar .s-mh{font-weight:700;font-size:26px}\n<\/style>\n<p class=\"cwjd-boot\">Loading the job description builder\u2026 If this message doesn&#8217;t go away, scripts are being blocked or removed on this page.<\/p>\n<script>\n(function () {\n  var s = document.currentScript, r = (s && s.closest) ? s.closest('.cwjd') : null;\n  if (!r) return;\n  var b = r.querySelector('.cwjd-boot'), err = '';\n  if (b) b.textContent = 'Loading the job description builder\u2026';\n  function onErr(e) {\n    var m = (e && e.message) || '';\n    if (!err && \/SyntaxError\/i.test(m) && (!e.filename || e.filename.split('#')[0] === location.href.split('#')[0])) err = m + (e.lineno ? ' (line ' + e.lineno + ')' : '');\n  }\n  window.addEventListener('error', onErr);\n  function check() {\n    window.removeEventListener('error', onErr);\n    if (!b || r.getAttribute('data-live') || \/cwjd-boot-err\/.test(b.className)) return;\n    b.className = 'cwjd-boot cwjd-boot-err';\n    b.textContent = err ? \"The job description builder's code was changed or cut off when it was saved, so it can't run. Browser error: \" + err\n      : \"The job description builder's main code didn't run on this page. It may have been removed, cut off while pasting, or delayed by a speed plugin.\";\n  }\n  if (document.readyState === 'complete') setTimeout(check, 2500);\n  else window.addEventListener('load', function () { setTimeout(check, 2500); });\n})();\n<\/script>\n<div class=\"cwjd-app\">\n<div class=\"cwjd-form\">\n<div class=\"cwjd-formhead\">\n<div class=\"cwjd-formtitle\">Customize your job description<\/div>\n<p class=\"cwjd-hint\">Edit any field and the preview updates as you type. Everything stays in your browser, nothing is uploaded.<\/p>\n<a class=\"cwjd-jump\" href=\"#cwjd-previewcol\">Jump to preview and download<\/a>\n<\/div>\n<div class=\"cwjd-group\">\n<div class=\"cwjd-gtitle\">Template<\/div>\n<label class=\"cwjd-field\">Template style <small>Changes the look only. Your text stays the same.<\/small><select id=\"cwjd-design\"><option value=\"classic\">Classic<\/option><option value=\"modern\">Bold header<\/option><option value=\"simple\">Simple<\/option><option value=\"sidebar\">Sidebar<\/option><\/select><\/label>\n<label class=\"cwjd-field\">Job role <small>Pre-fills the title, summary, responsibilities and qualifications. Your company details stay as they are.<\/small><select id=\"cwjd-role\"><\/select><\/label>\n<\/div>\n<div class=\"cwjd-group\">\n<div class=\"cwjd-gtitle\">Company &amp; branding<\/div>\n<label class=\"cwjd-field\">Company name<input type=\"text\" data-field=\"companyName\" autocomplete=\"organization\" placeholder=\"Your company name\"><\/label>\n<div class=\"cwjd-field\"><label for=\"cwjd-logo\">Logo <small>(optional, PNG, JPG, WebP or SVG)<\/small><\/label>\n<div class=\"cwjd-logorow\"><input type=\"file\" id=\"cwjd-logo\" accept=\"image\/png,image\/jpeg,image\/webp,image\/svg+xml\"><button type=\"button\" class=\"cwjd-btn cwjd-btn-small\" id=\"cwjd-logo-remove\" hidden>Remove logo<\/button><\/div><\/div>\n<label class=\"cwjd-field\">Tag text <small>Leave empty to hide it<\/small><input type=\"text\" data-field=\"badge\"><\/label>\n<div class=\"cwjd-field\"><span id=\"cwjd-color-label\">Brand color<\/span>\n<div class=\"cwjd-swatches\" role=\"group\" aria-labelledby=\"cwjd-color-label\">\n<button type=\"button\" class=\"cwjd-swatch\" data-color=\"#0f5e5a\" style=\"background:#0f5e5a\" aria-label=\"Teal\"><\/button>\n<button type=\"button\" class=\"cwjd-swatch\" data-color=\"#23408e\" style=\"background:#23408e\" aria-label=\"Blue\"><\/button>\n<button type=\"button\" class=\"cwjd-swatch\" data-color=\"#6d2b5e\" style=\"background:#6d2b5e\" aria-label=\"Plum\"><\/button>\n<button type=\"button\" class=\"cwjd-swatch\" data-color=\"#a23b12\" style=\"background:#a23b12\" aria-label=\"Rust\"><\/button>\n<button type=\"button\" class=\"cwjd-swatch\" data-color=\"#2f2f2f\" style=\"background:#2f2f2f\" aria-label=\"Charcoal\"><\/button>\n<label class=\"cwjd-colorwrap\">Custom <input type=\"color\" id=\"cwjd-color\" value=\"#0f5e5a\"><\/label>\n<\/div><\/div>\n<label class=\"cwjd-field\">Heading style<select data-field=\"font\"><option value=\"serif\">Classic serif<\/option><option value=\"sans\">Modern sans<\/option><\/select><\/label>\n<\/div>\n<div class=\"cwjd-group\">\n<div class=\"cwjd-gtitle\">Job basics<\/div>\n<label class=\"cwjd-field\">Job title<input type=\"text\" data-field=\"jobTitle\"><\/label>\n<label class=\"cwjd-field\">Details line <small>e.g. job type, location, experience<\/small><input type=\"text\" data-field=\"details\"><\/label>\n<\/div>\n<div class=\"cwjd-group\">\n<div class=\"cwjd-gtitle\">About the company<\/div>\n<label class=\"cwjd-field\">Section heading<input type=\"text\" data-field=\"aboutHeading\"><\/label>\n<label class=\"cwjd-field\">Text <small>Leave empty to hide this section<\/small><textarea data-field=\"aboutText\"><\/textarea><\/label>\n<\/div>\n<div class=\"cwjd-group\">\n<div class=\"cwjd-gtitle\">About the role<\/div>\n<label class=\"cwjd-field\">Section heading<input type=\"text\" data-field=\"roleHeading\"><\/label>\n<label class=\"cwjd-field\">Text <small>Leave empty to hide this section<\/small><textarea data-field=\"roleText\"><\/textarea><\/label>\n<\/div>\n<div class=\"cwjd-group\">\n<div class=\"cwjd-gtitle\">Responsibilities<\/div>\n<label class=\"cwjd-field\">Section heading<input type=\"text\" data-field=\"respHeading\"><\/label>\n<label class=\"cwjd-field\">One per line <small>Long lists split into two columns automatically<\/small><textarea class=\"cwjd-tall\" data-field=\"respList\"><\/textarea><\/label>\n<\/div>\n<div class=\"cwjd-group\">\n<div class=\"cwjd-gtitle\">Qualifications<\/div>\n<label class=\"cwjd-field\">Section heading<input type=\"text\" data-field=\"qualHeading\"><\/label>\n<label class=\"cwjd-field\">One per line<textarea class=\"cwjd-tall\" data-field=\"qualList\"><\/textarea><\/label>\n<\/div>\n<div class=\"cwjd-group\">\n<div class=\"cwjd-gtitle\">Benefits<\/div>\n<label class=\"cwjd-field\">Section heading<input type=\"text\" data-field=\"benHeading\"><\/label>\n<label class=\"cwjd-field\">One per line <small>Leave empty to hide this section<\/small><textarea data-field=\"benList\"><\/textarea><\/label>\n<\/div>\n<div class=\"cwjd-group\">\n<div class=\"cwjd-gtitle\">How to apply<\/div>\n<label class=\"cwjd-field\">Heading<input type=\"text\" data-field=\"applyHeading\"><\/label>\n<label class=\"cwjd-field\">Short line<input type=\"text\" data-field=\"applyText\"><\/label>\n<label class=\"cwjd-field\">Email or link<input type=\"text\" data-field=\"applyContact\" placeholder=\"e.g. careers@yourcompany.com\"><\/label>\n<\/div>\n<div class=\"cwjd-formfoot\">\n<button type=\"button\" class=\"cwjd-btn cwjd-btn-small\" id=\"cwjd-reset\">Reset template<\/button>\n<button type=\"button\" class=\"cwjd-btn cwjd-btn-small\" id=\"cwjd-clear\">Clear all fields<\/button>\n<\/div>\n<\/div>\n<div class=\"cwjd-previewcol\" id=\"cwjd-previewcol\">\n<div class=\"cwjd-actions\">\n<label class=\"cwjd-fmt\"><span class=\"cwjd-sr\">Download format<\/span><select id=\"cwjd-format\" class=\"cwjd-select\"><option value=\"pdf\">PDF<\/option><option value=\"docx\">Word (.docx)<\/option><option value=\"png\">PNG image<\/option><\/select><\/label>\n<button type=\"button\" class=\"cwjd-btn cwjd-btn-primary\" id=\"cwjd-download\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M12 3v12\"\/><path d=\"m7 10 5 5 5-5\"\/><path d=\"M5 21h14\"\/><\/svg>Download<\/button>\n<button type=\"button\" class=\"cwjd-btn\" id=\"cwjd-zoom\" aria-expanded=\"false\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M15 3h6v6\"\/><path d=\"M9 21H3v-6\"\/><path d=\"M21 3l-7 7\"\/><path d=\"M3 21l7-7\"\/><\/svg><span id=\"cwjd-zoom-label\">Enlarge<\/span><\/button>\n<\/div>\n<a class=\"cwjd-cta\" id=\"cwjd-cta\" href=\"https:\/\/internshala.com\/hire-talent?utm_source=is_blog&amp;utm_medium=jd_builder\" target=\"_blank\" rel=\"noopener\"><span><span id=\"cwjd-cta-lead\">Hiring for this role?<\/span> <strong id=\"cwjd-cta-strong\">Post this job for free<\/strong><\/span><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M5 12h14\"\/><path d=\"m13 6 6 6-6 6\"\/><\/svg><\/a>\n<p class=\"cwjd-status\" id=\"cwjd-status\" role=\"status\" aria-live=\"polite\"><\/p>\n<div class=\"cwjd-stage\" id=\"cwjd-stage\">\n<div class=\"cwjd-scale\" id=\"cwjd-scale\" data-font=\"serif\">\n<div class=\"cwjd-sheet cw-classic\" data-design=\"classic\">\n<div class=\"cw-top\">\n<div class=\"cw-brandrow\">\n<div class=\"cw-brand\"><img class=\"cw-logo\" alt=\"\" hidden><div class=\"cw-company\" data-out=\"companyName\" data-ph=\"[Company name]\"><\/div><\/div>\n<div class=\"cw-badge\" data-out=\"badge\" data-hide-empty=\"badge\"><\/div>\n<\/div>\n<div class=\"cw-title\" data-out=\"jobTitle\" data-ph=\"[Job title]\"><\/div>\n<div class=\"cw-details\" data-out=\"details\" data-hide-empty=\"details\"><\/div>\n<\/div>\n<div class=\"cw-row\" data-pair=\"aboutText roleText\">\n<div class=\"cw-sec\" data-hide-empty=\"aboutText\"><div class=\"cw-h\" data-out=\"aboutHeading\"><\/div><div class=\"cw-p\" data-out=\"aboutText\"><\/div><\/div>\n<div class=\"cw-sec\" data-hide-empty=\"roleText\"><div class=\"cw-h\" data-out=\"roleHeading\"><\/div><div class=\"cw-p\" data-out=\"roleText\"><\/div><\/div>\n<\/div>\n<div class=\"cw-sec\" data-hide-empty=\"respList\"><div class=\"cw-h\" data-out=\"respHeading\"><\/div>\n<div class=\"cw-row\" data-two=\"respList\"><div class=\"cw-list\" data-list=\"respList\" data-half=\"a\"><\/div><div class=\"cw-list\" data-list=\"respList\" data-half=\"b\"><\/div><\/div>\n<\/div>\n<div class=\"cw-row cw-qb\" data-pair=\"qualList benList\">\n<div class=\"cw-sec\" data-hide-empty=\"qualList\"><div class=\"cw-h\" data-out=\"qualHeading\"><\/div><div class=\"cw-list\" data-list=\"qualList\"><\/div><\/div>\n<div class=\"cw-sec cw-card\" data-hide-empty=\"benList\"><div class=\"cw-h\" data-out=\"benHeading\"><\/div><div class=\"cw-list\" data-list=\"benList\"><\/div><\/div>\n<\/div>\n<div class=\"cw-foot\">\n<div class=\"cw-foot-l\"><div class=\"cw-foot-h\" data-out=\"applyHeading\"><\/div><div class=\"cw-foot-t\" data-out=\"applyText\"><\/div><\/div>\n<div class=\"cw-contact\" data-out=\"applyContact\" data-ph=\"[Your email or job link]\"><\/div>\n<\/div>\n<\/div>\n<div class=\"cwjd-sheet cw-modern\" data-design=\"modern\" hidden>\n<div class=\"m-head\">\n<div class=\"m-brandrow\">\n<div class=\"m-brand\"><img class=\"cw-logo\" alt=\"\" hidden><div class=\"m-company\" data-out=\"companyName\" data-ph=\"[Company name]\"><\/div><\/div>\n<div class=\"m-badge\" data-out=\"badge\" data-hide-empty=\"badge\"><\/div>\n<\/div>\n<div class=\"m-title\" data-out=\"jobTitle\" data-ph=\"[Job title]\"><\/div>\n<div class=\"m-details\" data-out=\"details\" data-hide-empty=\"details\"><\/div>\n<\/div>\n<div class=\"m-body\">\n<div class=\"m-main\">\n<div class=\"m-sec\" data-hide-empty=\"roleText\"><div class=\"m-h\" data-out=\"roleHeading\"><\/div><div class=\"cw-p\" data-out=\"roleText\"><\/div><\/div>\n<div class=\"m-sec\" data-hide-empty=\"respList\"><div class=\"m-h\" data-out=\"respHeading\"><\/div><div class=\"cw-list\" data-list=\"respList\"><\/div><\/div>\n<div class=\"m-sec\" data-hide-empty=\"qualList\"><div class=\"m-h\" data-out=\"qualHeading\"><\/div><div class=\"cw-list\" data-list=\"qualList\"><\/div><\/div>\n<\/div>\n<div class=\"m-side\">\n<div class=\"m-sec\" data-hide-empty=\"aboutText\"><div class=\"m-h\" data-out=\"aboutHeading\"><\/div><div class=\"cw-p\" data-out=\"aboutText\"><\/div><\/div>\n<div class=\"m-card\" data-hide-empty=\"benList\"><div class=\"m-h\" data-out=\"benHeading\"><\/div><div class=\"cw-list\" data-list=\"benList\"><\/div><\/div>\n<div class=\"m-apply\"><div class=\"m-apply-h\" data-out=\"applyHeading\"><\/div><div class=\"m-apply-t\" data-out=\"applyText\"><\/div><div class=\"m-contact\" data-out=\"applyContact\" data-ph=\"[Your email or job link]\"><\/div><\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"cwjd-sheet cw-simple\" data-design=\"simple\" hidden>\n<div class=\"n-top\">\n<div class=\"n-brand\"><img class=\"cw-logo\" alt=\"\" hidden><div class=\"n-company\" data-out=\"companyName\" data-ph=\"[Company name]\"><\/div><div class=\"n-badge\" data-out=\"badge\" data-hide-empty=\"badge\"><\/div><\/div>\n<div class=\"n-title\" data-out=\"jobTitle\" data-ph=\"[Job title]\"><\/div>\n<div class=\"n-details\" data-out=\"details\" data-hide-empty=\"details\"><\/div>\n<\/div>\n<div class=\"n-sec\" data-hide-empty=\"aboutText\"><div class=\"n-h\" data-out=\"aboutHeading\"><\/div><div class=\"cw-p\" data-out=\"aboutText\"><\/div><\/div>\n<div class=\"n-sec\" data-hide-empty=\"roleText\"><div class=\"n-h\" data-out=\"roleHeading\"><\/div><div class=\"cw-p\" data-out=\"roleText\"><\/div><\/div>\n<div class=\"n-sec\" data-hide-empty=\"respList\"><div class=\"n-h\" data-out=\"respHeading\"><\/div><div class=\"cw-list\" data-list=\"respList\"><\/div><\/div>\n<div class=\"n-sec\" data-hide-empty=\"qualList\"><div class=\"n-h\" data-out=\"qualHeading\"><\/div><div class=\"cw-list\" data-list=\"qualList\"><\/div><\/div>\n<div class=\"n-sec\" data-hide-empty=\"benList\"><div class=\"n-h\" data-out=\"benHeading\"><\/div><div class=\"cw-list\" data-list=\"benList\"><\/div><\/div>\n<div class=\"n-apply\"><div class=\"n-apply-h\" data-out=\"applyHeading\"><\/div><div class=\"n-apply-row\"><div data-out=\"applyText\"><\/div><div class=\"n-contact\" data-out=\"applyContact\" data-ph=\"[Your email or job link]\"><\/div><\/div><\/div>\n<\/div>\n<div class=\"cwjd-sheet cw-sidebar\" data-design=\"sidebar\" hidden>\n<div class=\"s-side\">\n<div class=\"s-brand\"><img class=\"cw-logo\" alt=\"\" hidden><div class=\"s-company\" data-out=\"companyName\" data-ph=\"[Company name]\"><\/div><\/div>\n<div class=\"s-badge\" data-out=\"badge\" data-hide-empty=\"badge\"><\/div>\n<div class=\"s-sec\" data-hide-empty=\"aboutText\"><div class=\"s-h\" data-out=\"aboutHeading\"><\/div><div class=\"cw-p\" data-out=\"aboutText\"><\/div><\/div>\n<div class=\"s-sec\" data-hide-empty=\"benList\"><div class=\"s-h\" data-out=\"benHeading\"><\/div><div class=\"cw-list\" data-list=\"benList\"><\/div><\/div>\n<div class=\"s-apply\"><div class=\"s-apply-h\" data-out=\"applyHeading\"><\/div><div class=\"s-apply-t\" data-out=\"applyText\"><\/div><div class=\"s-contact\" data-out=\"applyContact\" data-ph=\"[Your email or job link]\"><\/div><\/div>\n<\/div>\n<div class=\"s-main\">\n<div class=\"s-headline\"><div class=\"s-title\" data-out=\"jobTitle\" data-ph=\"[Job title]\"><\/div><div class=\"s-details\" data-out=\"details\" data-hide-empty=\"details\"><\/div><\/div>\n<div class=\"s-msec\" data-hide-empty=\"roleText\"><div class=\"s-mh\" data-out=\"roleHeading\"><\/div><div class=\"cw-p\" data-out=\"roleText\"><\/div><\/div>\n<div class=\"s-msec\" data-hide-empty=\"respList\"><div class=\"s-mh\" data-out=\"respHeading\"><\/div><div class=\"cw-list\" data-list=\"respList\"><\/div><\/div>\n<div class=\"s-msec\" data-hide-empty=\"qualList\"><div class=\"s-mh\" data-out=\"qualHeading\"><\/div><div class=\"cw-list\" data-list=\"qualList\"><\/div><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"cwjd-gate\" id=\"cwjd-gate\" hidden>\n<div class=\"cwjd-gate-box\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"cwjd-gate-title\">\n<button type=\"button\" class=\"cwjd-gate-x\" id=\"cwjd-gate-close\" aria-label=\"Close\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M6 6l12 12\"\/><path d=\"M18 6L6 18\"\/><\/svg><\/button>\n<div class=\"cwjd-gate-title\" id=\"cwjd-gate-title\">Sign up free to download your job description<\/div>\n<p class=\"cwjd-gate-sub\" id=\"cwjd-gate-sub\">Create your free Internshala employer account to download this JD, then post the job to reach candidates.<\/p>\n<div class=\"cwjd-gate-signup\" id=\"cwjd-gate-signup\">\n<button type=\"button\" class=\"cwjd-gate-btn cwjd-gate-main\" id=\"cwjd-gate-google\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"8\" r=\"4\"\/><path d=\"M4 21a8 8 0 0 1 16 0\"\/><\/svg>Sign up with Google<\/button>\n<button type=\"button\" class=\"cwjd-gate-btn\" id=\"cwjd-gate-email\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><rect x=\"3\" y=\"5\" width=\"18\" height=\"14\" rx=\"2\"\/><path d=\"m3 7 9 6 9-6\"\/><\/svg>Sign up with Email<\/button>\n<\/div>\n<form class=\"cwjd-gate-form\" id=\"cwjd-gate-form\" novalidate hidden>\n<div class=\"cwjd-gate-row\">\n<label class=\"cwjd-gate-field\">First name<input type=\"text\" name=\"first_name\" autocomplete=\"given-name\" maxlength=\"60\" required><\/label>\n<label class=\"cwjd-gate-field\">Last name<input type=\"text\" name=\"last_name\" autocomplete=\"family-name\" maxlength=\"60\" required><\/label>\n<\/div>\n<label class=\"cwjd-gate-field\">Official email<input type=\"email\" name=\"email\" autocomplete=\"email\" placeholder=\"name@company.com\" maxlength=\"120\" required><\/label>\n<label class=\"cwjd-gate-field\">Mobile number<span class=\"cwjd-gate-tel\"><span class=\"cwjd-gate-cc\">+91<\/span><input type=\"tel\" name=\"mobile\" autocomplete=\"tel-national\" inputmode=\"numeric\" placeholder=\"10-digit mobile number\" maxlength=\"20\" required><\/span><\/label>\n<label class=\"cwjd-gate-field\">Company name<input type=\"text\" name=\"company\" autocomplete=\"organization\" maxlength=\"120\" required><\/label>\n<label class=\"cwjd-gate-hp\" aria-hidden=\"true\">Leave this empty<input type=\"text\" name=\"website\" tabindex=\"-1\" autocomplete=\"off\"><\/label>\n<p class=\"cwjd-gate-ferr\" id=\"cwjd-gate-ferr\" role=\"alert\"><\/p>\n<button type=\"submit\" class=\"cwjd-gate-btn cwjd-gate-main\" id=\"cwjd-gate-submit\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M12 3v12\"\/><path d=\"m7 10 5 5 5-5\"\/><path d=\"M5 21h14\"\/><\/svg>Download my JD<\/button>\n<\/form>\n<p class=\"cwjd-gate-login\"><span id=\"cwjd-gate-login-lead\">Already have an account?<\/span> <button type=\"button\" class=\"cwjd-gate-link\" id=\"cwjd-gate-login\">Log in<\/button><\/p>\n<p class=\"cwjd-gate-status\" id=\"cwjd-gate-status\" role=\"status\" aria-live=\"polite\"><\/p>\n<div class=\"cwjd-gate-done\" id=\"cwjd-gate-done\" hidden>\n<a class=\"cwjd-gate-open\" id=\"cwjd-gate-open\" href=\"https:\/\/internshala.com\/hire-talent\" target=\"_blank\" rel=\"noopener\" hidden>Open the sign-up page in a new tab<\/a>\n<button type=\"button\" class=\"cwjd-btn cwjd-btn-primary\" id=\"cwjd-gate-continue\">I&#8217;ve signed in, download my file<\/button>\n<\/div>\n<p class=\"cwjd-gate-terms\"><span id=\"cwjd-gate-terms-lead\">By signing up, you agree to our<\/span> <a href=\"https:\/\/internshala.com\/terms#employer\" target=\"_blank\" rel=\"noopener\">T&amp;C<\/a>.<\/p>\n<\/div>\n<\/div>\n<script>\n(function () {\n  \/* Find this script's own builder block, so the builder still works if a page has more than one copy. *\/\n  var me = document.currentScript, root = (me && me.closest) ? me.closest('.cwjd') : null;\n  if (!root || root.getAttribute('data-ready')) {\n    root = null;\n    var all = document.querySelectorAll('.cwjd');\n    for (var n = 0; all.length > n; n++) { if (!all[n].getAttribute('data-ready')) { root = all[n]; break; } }\n  }\n  if (!root) return;\n  root.setAttribute('data-ready', '1');\n  var boot = root.querySelector('.cwjd-boot');\n  try {\n    start(root);\n    root.setAttribute('data-live', '1');\n    if (boot) boot.parentNode.removeChild(boot);\n  } catch (err) {\n    if (boot) { boot.textContent = \"Sorry, the job description builder couldn't start. Please refresh the page. (\" + (err && err.message ? err.message : err) + \")\"; boot.className = 'cwjd-boot cwjd-boot-err'; }\n    if (window.console && console.error) console.error('Job description builder:', err);\n  }\n  function start(root) {\n  var H2C = 'https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/html2canvas\/1.4.1\/html2canvas.min.js';\n  var JSPDF = 'https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/jspdf\/2.5.1\/jspdf.umd.min.js';\n  var DOCX_SRC = ['https:\/\/cdn.jsdelivr.net\/npm\/docx@8.5.0\/build\/index.umd.min.js', 'https:\/\/unpkg.com\/docx@8.5.0\/build\/index.umd.js'];\n  var DESIGNS = ['classic', 'modern', 'simple', 'sidebar'];\n  var PAPER = { classic: '#f6f4ef', modern: '#ffffff', simple: '#ffffff', sidebar: '#ffffff' };\n  \/* Note: this code deliberately uses no backslash or less-than characters. WordPress's text formatter treats a less-than sign as\n     the start of an HTML tag and rewrites the ampersands after it, which breaks the script. Write comparisons as b > a instead. *\/\n  var NL = String.fromCharCode(10);\n  \/* Company-level fields: the same for every role, and kept when someone switches roles. *\/\n  var COMMON = {\n    companyName: \"\",\n    badge: \"We're hiring\",\n    aboutHeading: \"About us\",\n    aboutText: \"[Company name] is a [industry] company that [what you do and who you serve]. [Add a line about your team, culture or mission.]\",\n    roleHeading: \"The role\",\n    respHeading: \"Key responsibilities\",\n    qualHeading: \"Qualifications & skills\",\n    benHeading: \"Benefits\",\n    benList: [\"Competitive salary\", \"Health insurance\", \"Paid time off\", \"Learning and growth opportunities\"].join(NL),\n    applyHeading: \"Think you're a good fit?\",\n    applyText: \"Send your resume and a cover letter to\",\n    applyContact: \"\",\n    accent: \"#0f5e5a\",\n    font: \"serif\"\n  };\n  \/* Role templates. \"match\" lists the URL words that load each role (e.g. a post at \/python-developer-job-description\/).\n     To add a role, copy one block and change its text. *\/\n  var DEFAULT_ROLE = \"software-developer\";\n  var ROLES = [\n    { id: \"software-developer\", group: \"Tech\", title: \"Software Developer\", match: [\"software-engineer\", \"software-developer\"],\n      details: \"Full-time \u00b7 [Location] \u00b7 0\u20132 years experience\",\n      summary: \"We're looking for a Software Developer to design, build and maintain reliable software. You'll work closely with product and design teams to turn requirements into clean, well-tested code and ship features that users rely on.\",\n      resp: [\"Write clean, efficient and well-documented code\", \"Build new features from product requirements and technical specifications\", \"Test and debug software to fix errors and improve performance\", \"Take part in code reviews and share feedback with teammates\", \"Maintain and improve existing applications and systems\", \"Work with product, design and QA teams through the development cycle\", \"Document technical designs, processes and changes\"],\n      qual: [\"Bachelor's degree in Computer Science, IT or a related field\", \"0\u20132 years of software development experience (internships count)\", \"Proficiency in at least one language such as Python, Java, C++ or JavaScript\", \"Understanding of the software development life cycle (SDLC)\", \"Familiarity with Git and version control\", \"Strong problem-solving and communication skills\", \"Experience with Agile or Scrum is a plus\"] },\n    { id: \"python-developer\", group: \"Tech\", title: \"Python Developer\", match: [\"python-programmer\", \"python-engineer\", \"django-developer\"],\n      details: \"Full-time \u00b7 [Location] \u00b7 0\u20132 years experience\",\n      summary: \"We're looking for a Python Developer to build and maintain the back-end services and tools that power our products. You'll write clean, scalable code, integrate with databases and APIs, and work with the team to ship reliable features.\",\n      resp: [\"Write clean, reusable and well-tested Python code\", \"Build and maintain web applications and REST APIs using Django, Flask or FastAPI\", \"Integrate databases such as PostgreSQL, MySQL or MongoDB\", \"Connect front-end components and third-party services to server-side logic\", \"Write unit and integration tests and fix bugs\", \"Optimize applications for speed, security and scalability\", \"Automate recurring tasks with scripts and tools\", \"Take part in code reviews and technical discussions\"],\n      qual: [\"Bachelor's degree in Computer Science, IT or a related field\", \"0\u20132 years of Python development experience (internships count)\", \"Working knowledge of a Python framework such as Django, Flask or FastAPI\", \"Understanding of SQL and relational databases\", \"Familiarity with Git, REST APIs and basic Linux commands\", \"Knowledge of AWS, GCP or Azure is a plus\", \"Good problem-solving and communication skills\"] },\n    { id: \"front-end-developer\", group: \"Tech\", title: \"Front End Developer\", match: [\"frontend-developer\", \"javascript-developer\", \"front-end-engineer\", \"frontend-engineer\", \"react-developer\", \"reactjs-developer\", \"angular-developer\"],\n      details: \"Full-time \u00b7 [Location] \u00b7 0\u20132 years experience\",\n      summary: \"We're looking for a Front End Developer to build fast, accessible and responsive user interfaces. You'll work with designers and back-end developers to turn designs into polished web experiences.\",\n      resp: [\"Build responsive web pages and components from design mockups\", \"Write clean HTML, CSS and JavaScript (or TypeScript)\", \"Develop reusable UI components with React, Angular or Vue\", \"Connect interfaces to back-end services through REST or GraphQL APIs\", \"Ensure cross-browser and cross-device compatibility\", \"Optimize pages for speed, accessibility and SEO\", \"Fix UI bugs and improve existing features\", \"Work with designers on usability and visual details\"],\n      qual: [\"Bachelor's degree in Computer Science, IT or a related field, or equivalent experience\", \"0\u20132 years of front-end development experience (internships count)\", \"Strong knowledge of HTML5, CSS3 and JavaScript\", \"Hands-on experience with React, Angular or Vue\", \"Understanding of responsive design and web accessibility basics\", \"Familiarity with Git, npm and browser developer tools\", \"A portfolio or GitHub profile showing your work\"] },\n    { id: \"back-end-developer\", group: \"Tech\", title: \"Back End Developer\", match: [\"backend-developer\", \"back-end-engineer\", \"backend-engineer\", \"node-js-developer\", \"nodejs-developer\"],\n      details: \"Full-time \u00b7 [Location] \u00b7 0\u20132 years experience\",\n      summary: \"We're looking for a Back End Developer to build the server-side logic, databases and APIs behind our products. You'll focus on performance, security and reliability, working closely with front-end and product teams.\",\n      resp: [\"Design, build and maintain server-side applications and APIs\", \"Design database schemas and write efficient queries\", \"Integrate third-party services, payment gateways and internal systems\", \"Implement authentication, authorization and data security\", \"Monitor, debug and improve application performance\", \"Write unit and integration tests\", \"Work with front-end developers to define and document APIs\", \"Support deployments and troubleshoot production issues\"],\n      qual: [\"Bachelor's degree in Computer Science, IT or a related field\", \"0\u20132 years of back-end development experience (internships count)\", \"Proficiency in a back-end language such as Node.js, Python, Java, Go or PHP\", \"Experience with SQL or NoSQL databases\", \"Understanding of RESTful API design and web security basics\", \"Familiarity with Git, Docker or cloud platforms is a plus\", \"Strong problem-solving skills\"] },\n    { id: \"full-stack-developer\", group: \"Tech\", title: \"Full Stack Developer\", match: [\"fullstack-developer\", \"full-stack-engineer\", \"fullstack-engineer\", \"mern-stack-developer\", \"mean-stack-developer\"],\n      details: \"Full-time \u00b7 [Location] \u00b7 1\u20133 years experience\",\n      summary: \"We're looking for a Full Stack Developer who enjoys working across the whole product, from the user interface to the server and database. You'll build complete features end to end and help shape how our platform grows.\",\n      resp: [\"Build complete features across front end, back end and database\", \"Develop responsive user interfaces with modern JavaScript frameworks\", \"Design and build REST APIs and server-side logic\", \"Design database structures and manage data\", \"Write tests, review code and fix bugs across the stack\", \"Deploy and maintain applications in cloud environments\", \"Work with product and design teams to scope and ship features\"],\n      qual: [\"Bachelor's degree in Computer Science, IT or a related field\", \"1\u20133 years of full stack development experience\", \"Proficiency in JavaScript or TypeScript and a front-end framework such as React\", \"Experience with a back-end stack such as Node.js, Python\/Django or Java\/Spring\", \"Working knowledge of SQL and NoSQL databases\", \"Familiarity with Git, CI\/CD and cloud platforms\", \"Ability to own features independently\"] },\n    { id: \"java-developer\", group: \"Tech\", title: \"Java Developer\", match: [\"java-programmer\", \"java-engineer\", \"java-software-developer\", \"spring-boot-developer\"],\n      details: \"Full-time \u00b7 [Location] \u00b7 0\u20132 years experience\",\n      summary: \"We're looking for a Java Developer to design, develop and maintain robust, scalable Java applications. You'll be involved throughout the development cycle, from requirements to deployment.\",\n      resp: [\"Design, develop and maintain Java-based applications\", \"Build RESTful services and microservices using Spring Boot\", \"Write well-designed, testable and efficient code\", \"Integrate applications with databases and external systems\", \"Write unit tests with JUnit and fix defects\", \"Analyze and improve application performance\", \"Take part in code reviews and follow coding standards\", \"Prepare technical documentation\"],\n      qual: [\"Bachelor's degree in Computer Science, IT or a related field\", \"0\u20132 years of Java development experience (internships count)\", \"Strong understanding of core Java, OOP concepts and collections\", \"Experience with Spring or Spring Boot\", \"Knowledge of SQL and ORM tools such as Hibernate\/JPA\", \"Familiarity with Maven or Gradle and Git\", \"Good analytical and problem-solving skills\"] },\n    { id: \"android-developer\", group: \"Tech\", title: \"Android Developer\", match: [\"android-app-developer\", \"android-engineer\", \"kotlin-developer\"],\n      details: \"Full-time \u00b7 [Location] \u00b7 0\u20132 years experience\",\n      summary: \"We're looking for an Android Developer to build and maintain high-quality Android apps. You'll work with designers and back-end developers to create smooth, reliable experiences for our users.\",\n      resp: [\"Design and build Android applications using Kotlin or Java\", \"Turn designs and wireframes into polished app screens\", \"Integrate apps with REST APIs and third-party SDKs\", \"Ensure app performance, quality and responsiveness\", \"Find and fix bugs and improve app stability\", \"Write unit and UI tests\", \"Publish and maintain apps on the Google Play Store\", \"Keep up with Android platform updates and best practices\"],\n      qual: [\"Bachelor's degree in Computer Science, IT or a related field\", \"0\u20132 years of Android development experience (internships count)\", \"Strong knowledge of Kotlin or Java and the Android SDK\", \"Familiarity with Jetpack components, MVVM and Android Studio\", \"Experience working with REST APIs and JSON\", \"Understanding of Material Design guidelines\", \"Published apps or a GitHub portfolio is a plus\"] },\n    { id: \"web-developer\", group: \"Tech\", title: \"Web Developer\", match: [\"website-developer\", \"wordpress-developer\", \"php-developer\"],\n      details: \"Full-time \u00b7 [Location] \u00b7 0\u20132 years experience\",\n      summary: \"We're looking for a Web Developer to build, update and maintain websites and web applications. You'll make sure our sites look great, load fast and work smoothly on every device.\",\n      resp: [\"Build and maintain websites and web applications\", \"Write clean HTML, CSS, JavaScript and server-side code\", \"Create responsive layouts that work across devices and browsers\", \"Integrate websites with CMS platforms, APIs and databases\", \"Improve site speed, security and SEO best practices\", \"Test, troubleshoot and fix website issues\", \"Update content and features based on business needs\"],\n      qual: [\"Bachelor's degree in Computer Science, IT or a related field, or equivalent experience\", \"0\u20132 years of web development experience (internships count)\", \"Strong knowledge of HTML, CSS and JavaScript\", \"Experience with PHP, Node.js or Python\", \"Familiarity with WordPress or another CMS\", \"Understanding of responsive design and basic SEO\", \"A portfolio of websites you have built\"] },\n    { id: \"data-analyst\", group: \"Data\", title: \"Data Analyst\", match: [\"data-analytics-executive\", \"junior-data-analyst\"],\n      details: \"Full-time \u00b7 [Location] \u00b7 0\u20132 years experience\",\n      summary: \"We're looking for a Data Analyst to turn data into insights that guide business decisions. You'll collect, clean and analyze data, build reports and dashboards, and share clear findings with teams across the company.\",\n      resp: [\"Collect, clean and validate data from multiple sources\", \"Analyze data to identify trends, patterns and opportunities\", \"Build and maintain dashboards and reports\", \"Write SQL queries to extract and transform data\", \"Track key business metrics and flag unusual changes\", \"Present findings and recommendations to stakeholders\", \"Work with teams to define data needs and improve data quality\"],\n      qual: [\"Bachelor's degree in Statistics, Mathematics, Computer Science, Economics or a related field\", \"0\u20132 years of data analysis experience (internships count)\", \"Strong skills in Excel and SQL\", \"Experience with a BI tool such as Power BI, Tableau or Looker Studio\", \"Knowledge of Python or R for analysis is a plus\", \"Good understanding of basic statistics\", \"Clear communication and presentation skills\"] },\n    { id: \"data-scientist\", group: \"Data\", title: \"Data Scientist\", match: [\"data-science\", \"junior-data-scientist\"],\n      details: \"Full-time \u00b7 [Location] \u00b7 1\u20133 years experience\",\n      summary: \"We're looking for a Data Scientist to build models and analyses that solve real business problems. You'll explore large datasets, develop machine learning solutions, and work with engineering and product teams to put them into use.\",\n      resp: [\"Collect, clean and explore large structured and unstructured datasets\", \"Build, train and evaluate machine learning and statistical models\", \"Design experiments and A\/B tests and analyze the results\", \"Turn business problems into data science questions\", \"Work with engineers to deploy and monitor models in production\", \"Communicate findings through visualizations and reports\", \"Stay updated on new tools, techniques and research\"],\n      qual: [\"Bachelor's or Master's degree in Computer Science, Statistics, Mathematics or a related field\", \"1\u20133 years of experience in data science or machine learning\", \"Strong Python skills (pandas, NumPy, scikit-learn)\", \"Solid knowledge of statistics, probability and ML algorithms\", \"Experience with SQL and large datasets\", \"Familiarity with TensorFlow or PyTorch is a plus\", \"Ability to explain technical results to non-technical audiences\"] },\n    { id: \"ai-ml-engineer\", group: \"Data\", title: \"AI\/ML Engineer\", match: [\"ai-ml\", \"machine-learning-engineer\", \"ml-engineer\", \"ai-engineer\"],\n      details: \"Full-time \u00b7 [Location] \u00b7 2\u20134 years experience\",\n      summary: \"We're looking for an AI\/ML Engineer to design, build and deploy machine learning models that improve our products. You'll work with data and engineering teams to take models from experiment to production and keep them performing well.\",\n      resp: [\"Design, train and evaluate machine learning models for real product use cases\", \"Explore and prepare datasets, and engineer useful features\", \"Experiment with different modeling approaches and measure their impact\", \"Work with back-end engineers to deploy models into production\", \"Monitor model performance and fix issues such as drift or errors\", \"Improve existing models using new data and user feedback\", \"Document experiments, pipelines and deployment steps\"],\n      qual: [\"Bachelor's or Master's degree in Computer Science, Data Science, Engineering or a related field\", \"2\u20134 years of experience in machine learning or a related engineering role\", \"Strong Python programming skills\", \"Solid understanding of machine learning algorithms and statistics\", \"Hands-on experience with TensorFlow, PyTorch or scikit-learn\", \"Working knowledge of SQL, Git and data preprocessing\", \"Experience with cloud platforms, Docker or MLOps is a plus\", \"Exposure to generative AI, LLMs, NLP or computer vision is a plus\"] },\n    { id: \"mis-executive\", group: \"Data\", title: \"MIS Executive\", match: [\"mis-analyst\", \"mis-reporting-executive\"],\n      details: \"Full-time \u00b7 [Location] \u00b7 1\u20133 years experience\",\n      summary: \"We're looking for an MIS Executive to collect, manage and report the data our teams rely on for decisions. You'll prepare regular reports and dashboards, check data quality and turn numbers into clear insights.\",\n      resp: [\"Collect, organize and maintain data from different departments\", \"Prepare daily, weekly, monthly and ad-hoc reports\", \"Build and update dashboards and track key performance indicators\", \"Validate data and fix quality issues\", \"Analyze business trends and share insights with managers\", \"Maintain databases and troubleshoot reporting issues\", \"Automate recurring reports to save time\", \"Coordinate with teams to understand their reporting needs\"],\n      qual: [\"Bachelor's degree in Computer Science, IT, Business Administration, Statistics or a related field\", \"1\u20133 years of experience in MIS reporting or data analysis (strong recent graduates may apply)\", \"Advanced MS Excel skills, including Pivot Tables and VLOOKUP\", \"Working knowledge of SQL and databases\", \"Familiarity with Power BI or Tableau\", \"Strong analytical and problem-solving skills\", \"Attention to detail and good communication skills\"] },\n    { id: \"ui-ux-designer\", group: \"Design\", title: \"UI\/UX Designer\", match: [\"ui-ux\", \"ux-ui-designer\", \"ux-designer\", \"ui-designer\", \"product-designer\"],\n      details: \"Full-time \u00b7 [Location] \u00b7 0\u20132 years experience\",\n      summary: \"We're looking for a UI\/UX Designer to create simple, intuitive and attractive experiences for our users. You'll take ideas from research to wireframes, prototypes and final designs, working closely with product and engineering.\",\n      resp: [\"Understand user needs through research, interviews and usability testing\", \"Create user flows, wireframes and interactive prototypes\", \"Design clean, consistent interfaces for web and mobile\", \"Build and maintain a design system and UI components\", \"Work with developers to make sure designs are built as intended\", \"Improve designs based on user feedback and data\", \"Present design ideas and decisions to stakeholders\"],\n      qual: [\"Bachelor's degree in Design, HCI or a related field, or equivalent experience\", \"0\u20132 years of UI\/UX design experience (internships count)\", \"Proficiency in Figma (or Adobe XD \/ Sketch)\", \"Understanding of user-centered design, typography and layout\", \"Basic knowledge of accessibility and responsive design\", \"A portfolio showing your design process and final work\", \"Good communication and collaboration skills\"] },\n    { id: \"graphic-designer\", group: \"Design\", title: \"Graphic Designer\", match: [\"visual-designer\", \"creative-designer\", \"graphic-design\"],\n      details: \"Full-time \u00b7 [Location] \u00b7 0\u20132 years experience\",\n      summary: \"We're looking for a Graphic Designer to create engaging visuals for our brand across digital and print. You'll turn ideas into designs that communicate clearly and look great, from social posts to full campaigns.\",\n      resp: [\"Create visual designs for social media, websites, ads and campaigns\", \"Design marketing materials such as banners, brochures and presentations\", \"Develop graphics, illustrations, icons and layouts\", \"Maintain brand guidelines and visual consistency\", \"Work with marketing and content teams to understand requirements\", \"Prepare final files for digital and print use\", \"Take feedback and revise designs within deadlines\"],\n      qual: [\"Bachelor's degree or diploma in Graphic Design, Fine Arts or a related field\", \"0\u20132 years of graphic design experience (internships count)\", \"Proficiency in Adobe Photoshop, Illustrator and InDesign, or Canva\/Figma\", \"Strong sense of layout, typography and color\", \"Basic video editing or motion graphics skills are a plus\", \"A strong portfolio of design work\", \"Ability to manage multiple projects and deadlines\"] },\n    { id: \"digital-marketing-executive\", group: \"Marketing & content\", title: \"Digital Marketing Executive\", match: [\"digital-marketing\", \"digital-marketing-specialist\", \"digital-marketing-associate\", \"digital-marketer\", \"performance-marketing-executive\"],\n      details: \"Full-time \u00b7 [Location] \u00b7 0\u20132 years experience\",\n      summary: \"We're looking for a Digital Marketing Executive to plan and run online campaigns that grow our brand, traffic and leads. You'll work across SEO, social media, email and paid ads, and track what works.\",\n      resp: [\"Plan and run digital campaigns across search, social media and email\", \"Manage paid campaigns on Google Ads and Meta Ads\", \"Create and schedule content for social media channels\", \"Support SEO efforts to improve website traffic and rankings\", \"Track campaign performance with Google Analytics and other tools\", \"Prepare reports on key metrics and suggest improvements\", \"Coordinate with design and content teams on campaign assets\", \"Research competitors and market trends\"],\n      qual: [\"Bachelor's degree in Marketing, Business, Communications or a related field\", \"0\u20132 years of digital marketing experience (internships count)\", \"Working knowledge of SEO, social media and email marketing\", \"Hands-on experience with Google Ads, Meta Ads Manager or similar platforms\", \"Familiarity with Google Analytics and Google Search Console\", \"Good written communication and analytical skills\", \"A digital marketing certification is a plus\"] },\n    { id: \"seo-executive\", group: \"Marketing & content\", title: \"SEO Executive\", match: [\"seo-specialist\", \"seo-analyst\", \"seo-associate\", \"seo-expert\"],\n      details: \"Full-time \u00b7 [Location] \u00b7 0\u20132 years experience\",\n      summary: \"We're looking for an SEO Executive to improve our website's visibility in search and grow organic traffic. You'll handle keyword research, on-page and technical SEO, and work with content and tech teams to rank for the terms that matter.\",\n      resp: [\"Conduct keyword research and map keywords to pages\", \"Optimize page titles, meta descriptions, headings and content\", \"Run technical SEO audits and fix issues such as crawl errors and slow pages\", \"Plan content with writers based on search intent\", \"Build quality backlinks through outreach and partnerships\", \"Track rankings, traffic and conversions in Google Analytics and Search Console\", \"Monitor algorithm updates and search trends, including AI search features\", \"Prepare regular SEO performance reports\"],\n      qual: [\"Bachelor's degree in Marketing, Communications, IT or a related field\", \"0\u20132 years of SEO experience (internships count)\", \"Good understanding of on-page, off-page and technical SEO\", \"Hands-on experience with tools such as Ahrefs, Semrush, Screaming Frog and Search Console\", \"Basic knowledge of HTML and WordPress\", \"Strong analytical skills and attention to detail\", \"Good written English\"] },\n    { id: \"content-writer\", group: \"Marketing & content\", title: \"Content Writer\", match: [\"content-writing\", \"seo-content-writer\", \"web-content-writer\", \"blog-writer\", \"article-writer\"],\n      details: \"Full-time \u00b7 [Location] \u00b7 0\u20132 years experience\",\n      summary: \"We're looking for a Content Writer to create clear, engaging and well-researched content for our website, blog and marketing channels. You'll write for real readers while following SEO best practices.\",\n      resp: [\"Research topics and write blogs, articles, web pages and product content\", \"Write SEO-friendly content that uses target keywords naturally\", \"Edit and proofread content for accuracy, clarity and grammar\", \"Follow the brand's tone of voice and style guidelines\", \"Write copy for social media, emails and marketing campaigns\", \"Update and improve existing content based on performance\", \"Work with SEO, design and marketing teams to meet deadlines\"],\n      qual: [\"Bachelor's degree in English, Journalism, Mass Communication, Marketing or a related field\", \"0\u20132 years of content writing experience (internships count)\", \"Excellent written English and strong grammar\", \"Understanding of SEO basics and keyword usage\", \"Ability to research and simplify complex topics\", \"Familiarity with WordPress or other CMS tools\", \"A portfolio of published writing samples\"] },\n    { id: \"hr-executive\", group: \"Business & HR\", title: \"HR Executive\", match: [\"human-resources-executive\", \"hr-generalist\", \"hr-associate\", \"hr-officer\", \"hr-recruiter\", \"recruiter\"],\n      details: \"Full-time \u00b7 [Location] \u00b7 0\u20132 years experience\",\n      summary: \"We're looking for an HR Executive to support our people operations, from hiring to onboarding and employee engagement. You'll help build a workplace where people can do their best work.\",\n      resp: [\"Manage end-to-end recruitment: job posts, resume screening and interview scheduling\", \"Coordinate onboarding and induction for new hires\", \"Maintain employee records and HR databases\", \"Support payroll, attendance and leave management\", \"Answer employee questions about HR policies and benefits\", \"Plan and run employee engagement activities\", \"Ensure compliance with labor laws and company policies\", \"Assist with performance review processes\"],\n      qual: [\"Bachelor's or Master's degree in Human Resources, Business Administration or a related field\", \"0\u20132 years of HR experience (internships count)\", \"Understanding of recruitment processes and HR practices\", \"Basic knowledge of labor laws\", \"Proficiency in MS Excel and HR software (HRMS)\", \"Strong communication and interpersonal skills\", \"Ability to handle confidential information with discretion\"] },\n    { id: \"sales-executive\", group: \"Business & HR\", title: \"Sales Executive\", match: [\"sales-associate\", \"sales-representative\", \"sales-officer\", \"field-sales-executive\", \"inside-sales-executive\"],\n      details: \"Full-time \u00b7 [Location] \u00b7 0\u20132 years experience\",\n      summary: \"We're looking for a Sales Executive to find new customers, build strong relationships and help us grow revenue. You'll own your pipeline from first contact to closing the deal.\",\n      resp: [\"Find and reach out to potential customers through calls, emails and meetings\", \"Understand customer needs and present the right products or services\", \"Prepare quotes, negotiate terms and close sales\", \"Meet or exceed monthly and quarterly sales targets\", \"Keep customer records and pipeline updates current in the CRM\", \"Build long-term relationships with existing clients\", \"Share customer feedback and market insights with the team\"],\n      qual: [\"Bachelor's degree in Business, Marketing or a related field\", \"0\u20132 years of sales experience (freshers with strong communication skills welcome)\", \"Excellent communication, negotiation and persuasion skills\", \"Target-driven with a positive attitude\", \"Basic knowledge of MS Office and CRM tools\", \"Fluency in English and [regional language]\", \"Willingness to travel if required\"] },\n    { id: \"business-development-executive\", group: \"Business & HR\", title: \"Business Development Executive\", match: [\"bde\", \"business-development-associate\", \"business-development\"],\n      details: \"Full-time \u00b7 [Location] \u00b7 0\u20132 years experience\",\n      summary: \"We're looking for a Business Development Executive to find new growth opportunities and build partnerships. You'll generate leads, pitch to prospective clients and help turn opportunities into long-term business.\",\n      resp: [\"Research markets and identify new business opportunities\", \"Generate leads through calls, emails, LinkedIn and networking\", \"Pitch products or services and give presentations to prospects\", \"Build and maintain relationships with clients and partners\", \"Prepare proposals and negotiate deals\", \"Track leads, deals and follow-ups in the CRM\", \"Work with marketing and sales teams to meet growth targets\"],\n      qual: [\"Bachelor's degree in Business, Marketing or a related field (MBA is a plus)\", \"0\u20132 years of business development or sales experience (internships count)\", \"Strong communication and presentation skills\", \"Good research and negotiation skills\", \"Comfortable with MS Office, Google Workspace and CRM tools\", \"Self-motivated and target-oriented\"] },\n    { id: \"customer-support-executive\", group: \"Business & HR\", title: \"Customer Support Executive\", match: [\"customer-service-executive\", \"customer-care-executive\", \"customer-support-associate\", \"customer-service-representative\"],\n      details: \"Full-time \u00b7 [Location] \u00b7 0\u20132 years experience\",\n      summary: \"We're looking for a Customer Support Executive to help our customers quickly and kindly. You'll resolve queries over phone, email and chat, and make sure every customer leaves with a good experience.\",\n      resp: [\"Respond to customer queries over phone, email and chat\", \"Troubleshoot issues and guide customers to solutions\", \"Log tickets and track them until they are resolved\", \"Escalate complex issues to the right teams\", \"Keep accurate records of customer interactions\", \"Share common customer issues and feedback with the product team\", \"Meet response-time and customer satisfaction targets\"],\n      qual: [\"Bachelor's degree in any field\", \"0\u20132 years of customer support experience (freshers welcome)\", \"Excellent verbal and written communication skills\", \"Patience, empathy and a problem-solving attitude\", \"Basic computer skills and familiarity with helpdesk tools such as Freshdesk or Zendesk\", \"Ability to work in shifts if required\"] },\n    { id: \"hr-intern\", group: \"Business & HR\", title: \"HR Intern\", match: [\"human-resources-intern\", \"hr-internship\"],\n      details: \"Internship \u00b7 [Location] \u00b7 [Duration]\",\n      summary: \"We're looking for an HR Intern to support our hiring and people operations. You'll get hands-on experience in recruitment, onboarding and employee engagement while working closely with the HR team.\",\n      resp: [\"Screen resumes and shortlist candidates\", \"Schedule interviews and communicate with applicants\", \"Assist with onboarding and joining formalities for new hires\", \"Maintain and update employee records and HR data\", \"Help with background and reference checks\", \"Support employee engagement activities and events\", \"Assist the HR team with day-to-day tasks\"],\n      qual: [\"Pursuing or recently completed a bachelor's or master's degree in HR, Business Administration or a related field\", \"No prior experience required; earlier HR internships are a plus\", \"Good communication and interpersonal skills\", \"Organized and detail-oriented\", \"Proficiency in MS Office or Google Workspace\", \"Basic understanding of recruitment and HR practices\", \"Available for [duration] at [hours] hours per week\"],\n      ben: [\"Stipend of [amount] per month\", \"Certificate of completion\", \"Letter of recommendation\", \"Hands-on learning and mentorship\"] },\n    { id: \"telecaller\", group: \"Business & HR\", title: \"Telecaller\", match: [\"telecalling-executive\", \"telecalling\", \"tele-caller\", \"telesales-executive\"],\n      details: \"Full-time \u00b7 [Location] \u00b7 Freshers welcome\",\n      summary: \"We're looking for a Telecaller to connect with potential and existing customers over the phone. You'll explain our products or services, answer questions, follow up on leads and help the sales team meet its targets.\",\n      resp: [\"Make outbound calls to potential customers and explain our products or services\", \"Answer inbound calls and resolve customer questions\", \"Follow up on leads and schedule appointments or demos\", \"Build and maintain good relationships with customers\", \"Meet daily call and monthly sales targets\", \"Update customer details and call outcomes in the CRM\", \"Share customer feedback with the sales and support teams\"],\n      qual: [\"12th pass or a graduate in any field\", \"Freshers welcome; telecalling or sales experience is a plus\", \"Excellent verbal communication skills in English and [regional language]\", \"Good listening skills and a polite, persuasive manner\", \"Basic computer skills and familiarity with CRM tools\", \"Ability to stay calm and positive in a fast-paced, target-driven role\", \"Good time management\"] },\n    { id: \"data-entry-operator\", group: \"Operations & finance\", title: \"Data Entry Operator\", match: [\"data-entry\", \"data-entry-clerk\", \"data-entry-executive\"],\n      details: \"Full-time \u00b7 [Location] \u00b7 0\u20132 years experience\",\n      summary: \"We're looking for a Data Entry Operator to enter, update and maintain accurate records in our systems. You'll work with large volumes of information, so speed, accuracy and care with confidential data matter most.\",\n      resp: [\"Enter and update data in company databases and spreadsheets\", \"Verify records for accuracy and correct errors or missing information\", \"Prepare and sort source documents before data entry\", \"Generate simple reports using Excel or Google Sheets\", \"Organize and maintain digital and physical files\", \"Keep sensitive information confidential and follow data policies\", \"Meet daily and weekly data entry targets\"],\n      qual: [\"Bachelor's degree in any discipline\", \"Freshers welcome; 0\u20132 years of data entry experience preferred\", \"Typing speed of at least [X] words per minute with high accuracy\", \"Good knowledge of MS Excel and MS Office\", \"Strong attention to detail\", \"Good organizational and time management skills\", \"Basic knowledge of databases is a plus\"] },\n    { id: \"back-office-executive\", group: \"Operations & finance\", title: \"Back Office Executive\", match: [\"back-office\", \"backoffice-executive\", \"back-office-assistant\"],\n      details: \"Full-time \u00b7 [Location] \u00b7 1\u20133 years experience\",\n      summary: \"We're looking for a Back Office Executive to keep our day-to-day operations running smoothly behind the scenes. You'll manage data, documents and reports, and support the front office and other teams with accurate, timely information.\",\n      resp: [\"Enter, update and verify data in company databases\", \"Process transactions and maintain accurate records\", \"Prepare daily, weekly and monthly MIS reports\", \"Maintain documents for compliance and audits\", \"Coordinate with front office and other teams to process requests\", \"Follow up on pending tasks and resolve data discrepancies\", \"Organize digital files according to documentation standards\", \"Handle confidential information securely\"],\n      qual: [\"Bachelor's degree in Commerce, Business Administration or a related field\", \"1\u20133 years of experience in a back office, data entry or administrative role\", \"Proficiency in MS Excel and the MS Office suite\", \"High accuracy in data entry\", \"Good written and verbal communication skills\", \"Strong time management and ability to meet deadlines\", \"Familiarity with financial documents and basic database tools is a plus\"] },\n    { id: \"computer-operator\", group: \"Operations & finance\", title: \"Computer Operator\", match: [\"computer-operators\"],\n      details: \"Full-time \u00b7 [Location] \u00b7 1\u20132 years experience\",\n      summary: \"We're looking for a Computer Operator to handle day-to-day computer-based work, from data entry and record keeping to basic troubleshooting. You'll help teams keep information accurate, organized and secure.\",\n      resp: [\"Enter, update, verify and maintain data in company systems\", \"Prepare documents, spreadsheets and reports as required\", \"Help colleagues with basic computer, printer and software issues\", \"Take regular backups and keep digital records organized\", \"Handle confidential information securely\", \"Follow company procedures for data entry, documentation and system access\", \"Coordinate with departments on computer-based administrative tasks\", \"Keep computer equipment and the work area in good order\"],\n      qual: [\"Diploma or bachelor's degree in Computer Science, IT, Computer Applications or a related field\", \"1\u20132 years of experience in computer operations, data entry or a similar role\", \"Proficiency in MS Word, Excel and PowerPoint\", \"Good typing speed and accuracy\", \"Basic knowledge of computer hardware, software and troubleshooting\", \"Familiarity with email, internet and record management tools\", \"Attention to detail and ability to work independently\"] },\n    { id: \"accountant\", group: \"Operations & finance\", title: \"Accountant\", match: [\"junior-accountant\", \"accounts-executive\", \"accounts-assistant\"],\n      details: \"Full-time \u00b7 [Location] \u00b7 1\u20133 years experience\",\n      summary: \"We're looking for an Accountant to manage our day-to-day accounting and keep our financial records accurate and up to date. You'll handle transactions, reconciliations and reports, and support monthly and yearly closing.\",\n      resp: [\"Record and maintain daily financial transactions\", \"Prepare and review invoices, payments and expense records\", \"Perform regular bank and account reconciliations\", \"Prepare financial reports and accounting summaries\", \"Assist with monthly and annual closing activities\", \"Support GST, TDS and other statutory filings\", \"Coordinate with auditors and provide the documents they need\"],\n      qual: [\"Bachelor's degree in Accounting, Finance, Commerce or a related field\", \"1\u20133 years of accounting experience\", \"Proficiency in accounting software such as Tally, Zoho Books, QuickBooks or SAP\", \"Advanced MS Excel skills\", \"Knowledge of accounting standards and tax rules, including GST and TDS\", \"Strong attention to detail and accuracy\", \"Good analytical, communication and organizational skills\"] },\n    { id: \"blank\", group: \"Other\", title: \"\", label: \"Other role (start blank)\", match: [],\n      details: \"Full-time \u00b7 [Location] \u00b7 [Experience]\", summary: \"\", resp: [], qual: [] }\n  ];\n  var ROLE_FIELDS = [\"jobTitle\", \"details\", \"roleText\", \"respList\", \"qualList\"];\n  var KEEP_ON_CLEAR = [\"aboutHeading\", \"roleHeading\", \"respHeading\", \"qualHeading\", \"benHeading\", \"applyHeading\", \"accent\", \"font\"];\n  function byId(id) { for (var i = 0; ROLES.length > i; i++) if (ROLES[i].id === id) return ROLES[i]; return null; }\n  function roleValues(id) {\n    var r = byId(id) || byId(DEFAULT_ROLE);\n    return { jobTitle: r.title, details: r.details, roleText: r.summary, respList: r.resp.join(NL), qualList: r.qual.join(NL) };\n  }\n  function benFor(id) { var r = byId(id); return r && r.ben ? r.ben.join(NL) : COMMON.benList; }\n  function toSlug(s) { return String(s || \"\").toLowerCase().replace(\/&\/g, \" and \").replace(\/[^a-z0-9]+\/g, \"-\").replace(\/^-+|-+$\/g, \"\"); }\n  \/* Finds the role whose name appears in the text as whole words; the longest match wins. *\/\n  function matchRole(text) {\n    var t = \"-\" + toSlug(text) + \"-\", best = null, bestLen = 0;\n    ROLES.forEach(function (r) {\n      if (r.id === \"blank\") return;\n      [r.id].concat(r.match || []).forEach(function (a) {\n        if (t.indexOf(\"-\" + a + \"-\") > -1 && a.length > bestLen) { best = r.id; bestLen = a.length; }\n      });\n    });\n    return best;\n  }\n  function pickRole() {\n    var q = \/[?&]jdrole=([^&#]+)\/.exec(window.location.search);\n    if (q && byId(decodeURIComponent(q[1]))) return decodeURIComponent(q[1]);\n    var attr = String(root.getAttribute(\"data-role\") || \"auto\").trim();\n    if (attr && attr !== \"auto\" && byId(attr)) return attr;\n    var parts = window.location.pathname.split(\"\/\").filter(Boolean);\n    var h1 = document.querySelector(\"h1\");\n    return matchRole(parts[parts.length - 1] || \"\") || matchRole(document.title) || (h1 && matchRole(h1.textContent)) || DEFAULT_ROLE;\n  }\n  var currentRole = DEFAULT_ROLE;\n  var state = {};\n  var logoData = '';\n  var $ = function (sel) { return root.querySelector(sel); };\n  var $$ = function (sel) { return Array.prototype.slice.call(root.querySelectorAll(sel)); };\n  var sheets = $$('.cwjd-sheet'), sheet = sheets[0], stage = $('#cwjd-stage'), scaler = $('#cwjd-scale');\n  var uid = 'j' + Math.random().toString(36).slice(2, 10);\n  sheets.forEach(function (sh, n) { sh.setAttribute('data-cwjd-uid', uid + n); });\n  var currentDesign = 'classic';\n  var statusEl = $('#cwjd-status');\n  var cta = $('#cwjd-cta'), downloaded = false;\n  function postSlug() {\n    var parts = window.location.pathname.split('\/').filter(Boolean);\n    return toSlug(parts[parts.length - 1] || '') || 'blog';\n  }\n  \/* Sends a usage event to Google Analytics 4 (gtag) or Google Tag Manager (dataLayer), whichever the site has. *\/\n  function track(name, extra) {\n    var p = { jd_role: currentRole, jd_design: currentDesign, jd_post: postSlug() }, k;\n    if (extra) { for (k in extra) p[k] = extra[k]; }\n    try {\n      if (typeof window.gtag === 'function') window.gtag('event', name, p);\n      else if (window.dataLayer && typeof window.dataLayer.push === 'function') { var d = { event: name }; for (k in p) d[k] = p[k]; window.dataLayer.push(d); }\n    } catch (e1) {}\n    try { root.dispatchEvent(new CustomEvent('cwjd:track', { bubbles: true, detail: { name: name, params: p } })); } catch (e2) {}\n  }\n  \/* The \"Post this job\" link: the address from data-cta-url plus tracking tags, so sign-ups can be traced to this tool and post. *\/\n  function tagUrl(base, medium) {\n    var hash = '', at = base.indexOf('#');\n    if (at > -1) { hash = base.slice(at); base = base.slice(0, at); }\n    var add = [];\n    if (base.indexOf('utm_source=') === -1) add.push('utm_source=is_blog');\n    if (base.indexOf('utm_medium=') === -1) add.push('utm_medium=' + medium);\n    if (base.indexOf('utm_campaign=') === -1) add.push('utm_campaign=' + encodeURIComponent(postSlug()));\n    if (base.indexOf('utm_content=') === -1) add.push('utm_content=' + encodeURIComponent(currentRole));\n    return base + (add.length ? (base.indexOf('?') > -1 ? '&' : '?') + add.join('&') : '') + hash;\n  }\n  function ctaUrl() { return tagUrl(String(root.getAttribute('data-cta-url') || '').trim() || 'https:\/\/internshala.com\/hire-talent', 'jd_builder'); }\n  function updateCta() { cta.href = ctaUrl(); }\n  \/* Keeps a copy of the finished job description in this browser, so the job-posting form on the same site can pre-fill from it. *\/\n  function saveDraft() {\n    try {\n      window.localStorage.setItem('is_jd_builder_draft', JSON.stringify({\n        v: 1, savedAt: new Date().toISOString(), source: window.location.href, role: currentRole, design: currentDesign,\n        company: state.companyName || '', title: state.jobTitle || '', details: state.details || '', about: state.aboutText || '', summary: state.roleText || '',\n        responsibilities: lines(state.respList), qualifications: lines(state.qualList), benefits: lines(state.benList), applyContact: state.applyContact || ''\n      }));\n    } catch (e) {}\n  }\n  cta.addEventListener('click', function () {\n    saveDraft();\n    track('jd_builder_cta_click', { jd_cta_state: downloaded ? 'after_download' : 'before_download' });\n  });\n  function copy(obj) { var o = {}; for (var k in obj) o[k] = obj[k]; return o; }\n  function lines(text) {\n    return String(text || '').split(NL).map(function (l) {\n      return l.trim().replace(\/^(?:[\u2022\u00b7\u25aa\u25e6]|[*-](?=[ ])|[0-9]+[.)](?=[ ]))\/, '').trim();\n    }).filter(Boolean);\n  }\n  function fillList(el, items) {\n    el.textContent = '';\n    items.forEach(function (item) {\n      var row = document.createElement('div'); row.className = 'cw-li';\n      var box = document.createElement('span'); box.className = 'cw-dotbox';\n      var dot = document.createElement('span'); dot.className = 'cw-dot'; box.appendChild(dot);\n      var txt = document.createElement('span'); txt.textContent = item;\n      row.appendChild(box); row.appendChild(txt); el.appendChild(row);\n    });\n  }\n  function hexToRgb(hex) {\n    var m = \/^#?([0-9a-f]{6})$\/i.exec(String(hex).trim());\n    if (!m) return null;\n    var n = parseInt(m[1], 16);\n    return [(n >> 16) & 255, (n >> 8) & 255, n & 255];\n  }\n  function lum(rgb) {\n    var c = rgb.map(function (v) { v \/= 255; return 0.03928 >= v ? v \/ 12.92 : Math.pow((v + 0.055) \/ 1.055, 2.4); });\n    return 0.2126 * c[0] + 0.7152 * c[1] + 0.0722 * c[2];\n  }\n  function contrast(a, b) { var la = lum(a), lb = lum(b); return (Math.max(la, lb) + 0.05) \/ (Math.min(la, lb) + 0.05); }\n  function applyColor() {\n    var rgb = hexToRgb(state.accent) || hexToRgb('#0f5e5a');\n    var paper = [246, 244, 239];\n    scaler.style.setProperty('--cw-accent', state.accent);\n    scaler.style.setProperty('--cw-on', contrast(rgb, [255, 255, 255]) >= 4.5 ? '#ffffff' : '#1d1d1b');\n    scaler.style.setProperty('--cw-head', contrast(rgb, paper) >= 3 ? state.accent : '#1d1d1b');\n    root.style.setProperty('--ui-accent', contrast(rgb, [255, 255, 255]) >= 3 ? state.accent : '#1d1d1b');\n    $$('.cwjd-swatch').forEach(function (b) { b.setAttribute('aria-pressed', b.getAttribute('data-color').toLowerCase() === String(state.accent).toLowerCase() ? 'true' : 'false'); });\n    var picker = $('#cwjd-color'); if (picker.value.toLowerCase() !== String(state.accent).toLowerCase()) picker.value = state.accent;\n  }\n  function has(key) { return String(state[key] || '').trim() !== ''; }\n  function filled(key) { return \/List$\/.test(key) ? lines(state[key]).length > 0 : has(key); }\n  function render() {\n    $$('[data-out]').forEach(function (el) {\n      var key = el.getAttribute('data-out');\n      var val = String(state[key] || '').trim();\n      var ph = el.getAttribute('data-ph');\n      el.textContent = val || ph || '';\n      el.classList.toggle('cw-ph', !val && !!ph);\n    });\n    $$('[data-hide-empty]').forEach(function (el) { el.hidden = !filled(el.getAttribute('data-hide-empty')); });\n    $$('[data-list]').forEach(function (el) {\n      var items = lines(state[el.getAttribute('data-list')]), half = el.getAttribute('data-half');\n      if (!half) { fillList(el, items); return; }\n      var two = items.length > 5, cut = two ? Math.ceil(items.length \/ 2) : items.length;\n      if (half === 'a') fillList(el, items.slice(0, cut));\n      else { fillList(el, items.slice(cut)); el.hidden = !two; }\n    });\n    $$('[data-two]').forEach(function (el) { el.classList.toggle('cw-single', !(lines(state[el.getAttribute('data-two')]).length > 5)); });\n    $$('[data-pair]').forEach(function (el) {\n      var ks = el.getAttribute('data-pair').split(' '), a = filled(ks[0]), b = filled(ks[1]);\n      el.classList.toggle('cw-single', !(a && b));\n      el.hidden = !a && !b;\n    });\n    scaler.setAttribute('data-font', state.font === 'sans' ? 'sans' : 'serif');\n    $$('.cw-logo').forEach(function (img) {\n      if (logoData) { img.src = logoData; img.alt = (state.companyName || 'Company') + ' logo'; img.hidden = false; }\n      else { img.removeAttribute('src'); img.hidden = true; }\n    });\n    $('#cwjd-logo-remove').hidden = !logoData;\n    applyColor();\n    fit();\n  }\n  function fillForm() {\n    $$('[data-field]').forEach(function (el) { el.value = state[el.getAttribute('data-field')] || ''; });\n  }\n  function loadAny(list, test) {\n    var n = 0;\n    function next() { if (n >= list.length) return Promise.reject(new Error('lib')); return load(list[n++], test).catch(next); }\n    return next();\n  }\n  function load(src, test) {\n    if (test()) return Promise.resolve();\n    return new Promise(function (resolve, reject) {\n      var s = document.createElement('script');\n      s.src = src; s.async = true;\n      s.onload = function () { test() ? resolve() : reject(new Error('lib')); };\n      s.onerror = function () { s.parentNode && s.parentNode.removeChild(s); reject(new Error('net')); };\n      document.head.appendChild(s);\n    });\n  }\n  var app = root.querySelector('.cwjd-app'), col = $('#cwjd-previewcol'), form = root.querySelector('.cwjd-form');\n  var expanded = false, head = 0, mode = '', pinKey = '';\n  \/* Height of the bars that stay at the top of the window (admin bar, sticky site menu), measured as they sit once\n     stuck, so the preview can stay in view just below them. Measured on load, on resize and after scrolling stops,\n     never during scrolling, so scrolling stays smooth. *\/\n  function measureHead() {\n    if (!document.elementsFromPoint) return 0;\n    var off = 0, vw = window.innerWidth || 1200;\n    var x = Math.max(2, Math.round(root.getBoundingClientRect().left + 4));\n    for (var y = 2; 360 > y; y += 14) {\n      var stack = document.elementsFromPoint(x, y), el = null;\n      for (var i = 0; stack.length > i; i++) { if (!root.contains(stack[i])) { el = stack[i]; break; } }\n      while (el && el !== document.body && el !== document.documentElement) {\n        var cs = window.getComputedStyle(el);\n        if (cs.position === 'fixed' || cs.position === 'sticky') {\n          var r = el.getBoundingClientRect();\n          if (r.width > vw * 0.5 && 260 > r.height && r.height > 0) {\n            if (cs.position === 'fixed' && 200 > r.top && r.top > -5) off = Math.max(off, r.bottom);\n            if (cs.position === 'sticky') { var t = parseFloat(cs.top); if (!isNaN(t) && 200 > t) off = Math.max(off, t + r.height); }\n          }\n          break;\n        }\n        el = el.parentElement;\n      }\n    }\n    return Math.round(off);\n  }\n  \/* The browser's own sticky positioning is the smoothest, but a theme wrapper with overflow set blocks it. *\/\n  function stickyWorks() {\n    var el = root.parentElement;\n    while (el && el !== document.body && el !== document.documentElement) {\n      var cs = window.getComputedStyle(el), o = cs.overflowX + ' ' + cs.overflowY;\n      if (o.indexOf('hidden') > -1 || o.indexOf('auto') > -1 || o.indexOf('scroll') > -1) return false;\n      el = el.parentElement;\n    }\n    return true;\n  }\n  function applyHead() { root.style.setProperty('--cwjd-top', (head + 12) + 'px'); }\n  function fit() {\n    if (pinKey) clearPin();\n    var cs = window.getComputedStyle(col);\n    var width = (col.clientWidth - parseFloat(cs.paddingLeft || 0) - parseFloat(cs.paddingRight || 0)) || 1080;\n    var s = Math.min(1, width \/ 1080);\n    var h = sheet.offsetHeight;\n    if (!expanded && root.classList.contains('cwjd-wide')) {\n      var chrome = col.offsetHeight - stage.offsetHeight;\n      var room = (window.innerHeight || 900) - (head + 12) - chrome - 16;\n      s = Math.min(s, Math.max(0.22, room \/ h));\n    }\n    scaler.style.transform = 'scale(' + s + ')';\n    stage.style.width = Math.floor(1080 * s) + 'px';\n    stage.style.height = Math.ceil(h * s) + 'px';\n    pin();\n  }\n  \/* Backup for themes that block sticky: the preview switches between three states (in place, fixed to the window,\n     parked at the bottom of the builder). In the fixed state the browser itself holds it still, so scrolling stays smooth. *\/\n  function clearPin() { col.style.position = ''; col.style.top = ''; col.style.left = ''; col.style.width = ''; col.style.zIndex = ''; pinKey = ''; }\n  function pin() {\n    if (expanded || mode !== 'fixed' || !root.classList.contains('cwjd-wide')) { if (pinKey) clearPin(); return; }\n    var a = app.getBoundingClientRect(), f = form.getBoundingClientRect();\n    var line = head + 12, h = col.offsetHeight;\n    var gap = parseFloat(window.getComputedStyle(app).columnGap) || 24;\n    var left = Math.round(f.right + gap), width = Math.round(a.right - left);\n    var state = a.top >= line ? 'top' : (a.bottom - h >= line ? 'fixed' : 'bottom');\n    var key = state === 'top' ? '' : state + '|' + left + '|' + width + '|' + line + '|' + (state === 'bottom' ? Math.round(a.height - h) + '|' + Math.round(left - a.left) : '');\n    if (key === pinKey) return;\n    if (!key) { clearPin(); return; }\n    col.style.width = width + 'px';\n    col.style.zIndex = '5';\n    if (state === 'fixed') { col.style.position = 'fixed'; col.style.top = line + 'px'; col.style.left = left + 'px'; }\n    else { col.style.position = 'absolute'; col.style.top = Math.round(a.height - h) + 'px'; col.style.left = Math.round(left - a.left) + 'px'; }\n    pinKey = key;\n  }\n  var settleTimer = null;\n  function onScroll() {\n    if (mode === 'fixed') pin();\n    if (settleTimer) clearTimeout(settleTimer);\n    settleTimer = setTimeout(function () {\n      var h2 = measureHead();\n      if (Math.abs(h2 - head) > 4) { head = h2; applyHead(); fit(); }\n    }, 300);\n  }\n  var lastWidth = -1;\n  function layout() {\n    var w = root.clientWidth;\n    if (w !== lastWidth) {\n      lastWidth = w;\n      root.classList.toggle('cwjd-wide', w >= 680);\n      mode = stickyWorks() ? 'sticky' : 'fixed';\n      root.classList.toggle('cwjd-sticky', mode === 'sticky');\n      head = measureHead();\n      applyHead();\n    }\n    fit();\n  }\n  var zoomBtn = $('#cwjd-zoom'), zoomLabel = $('#cwjd-zoom-label'), savedOverflow = '';\n  function onKey(e) { if (e.key === 'Escape' || e.key === 'Esc') setExpanded(false); }\n  function setExpanded(on) {\n    if (on === expanded) return;\n    expanded = on;\n    root.classList.toggle('cwjd-expanded', on);\n    zoomBtn.setAttribute('aria-expanded', on ? 'true' : 'false');\n    zoomLabel.textContent = on ? 'Close preview' : 'Enlarge';\n    if (on) {\n      savedOverflow = document.documentElement.style.overflow;\n      document.documentElement.style.overflow = 'hidden';\n      document.addEventListener('keydown', onKey);\n      col.scrollTop = 0;\n    } else {\n      document.documentElement.style.overflow = savedOverflow;\n      document.removeEventListener('keydown', onKey);\n    }\n    fit();\n    zoomBtn.focus();\n  }\n  zoomBtn.addEventListener('click', function () { setExpanded(!expanded); });\n  stage.addEventListener('click', function () { if (!expanded) setExpanded(true); });\n  function slug() {\n    var s = ((state.jobTitle || '').trim() || 'job') + ' job description';\n    return s.toLowerCase().replace(\/[^a-z0-9]+\/g, '-').replace(\/^-+|-+$\/g, '') || 'job-description';\n  }\n  function setStatus(msg, isErr) { statusEl.textContent = msg; statusEl.classList.toggle('cwjd-err', !!isErr); }\n  function capture() {\n    var fontsReady = (document.fonts && document.fonts.ready) ? document.fonts.ready : Promise.resolve();\n    var guard = null;\n    function unguard() { if (guard && guard.parentNode) guard.parentNode.removeChild(guard); guard = null; }\n    return load(H2C, function () { return !!window.html2canvas; }).then(function () { return fontsReady; }).then(function () {\n      \/* Themes often style every image tag (borders, display:block). html2canvas measures text with a hidden probe image,\n         so neutralize those styles on the probe while the file is being made, then remove this style again. *\/\n      guard = document.createElement('style');\n      guard.textContent = 'body>div[style*=\"visibility: hidden\"]>img,body>div[style*=\"visibility: hidden\"]>span{border:0 !important;display:inline !important;width:1px;height:1px;max-width:none !important;min-width:0 !important;box-shadow:none !important;float:none !important;position:static !important}body>div[style*=\"visibility: hidden\"]>span{width:auto;height:auto;line-height:inherit}';\n      document.head.appendChild(guard);\n      return window.html2canvas(sheet, {\n        scale: 2, backgroundColor: PAPER[currentDesign] || '#ffffff', useCORS: true, logging: false, windowWidth: 1400,\n        onclone: function (doc) {\n          var cs = doc.querySelector('[data-cwjd-uid=\"' + sheet.getAttribute('data-cwjd-uid') + '\"]');\n          var rt = cs && cs.closest ? cs.closest('.cwjd') : null;\n          if (!rt) return;\n          rt.classList.remove('cwjd-expanded');\n          var pc = rt.querySelector('.cwjd-previewcol');\n          if (pc) { pc.style.transform = 'none'; pc.style.position = 'static'; pc.style.width = 'auto'; }\n          var sc = rt.querySelector('.cwjd-scale'), st = rt.querySelector('.cwjd-stage');\n          if (sc) { sc.style.transform = 'none'; sc.style.position = 'static'; sc.style.left = '0'; }\n          if (st) { st.style.height = 'auto'; st.style.width = '1080px'; st.style.maxWidth = 'none'; st.style.overflow = 'visible'; }\n        }\n      });\n    }).then(function (c) { unguard(); return c; }, function (e) { unguard(); throw e; });\n  }\n  function saveBlob(blob, name) {\n    var url = URL.createObjectURL(blob);\n    var a = document.createElement('a');\n    a.href = url; a.download = name; a.style.display = 'none';\n    document.body.appendChild(a); a.click();\n    setTimeout(function () { URL.revokeObjectURL(url); a.parentNode && a.parentNode.removeChild(a); }, 1500);\n  }\n  var busy = false, edited = false;\n  var fmtSel = $('#cwjd-format'), dlBtn = $('#cwjd-download');\n  function run(fmt, work) {\n    if (busy) return;\n    busy = true;\n    dlBtn.disabled = true; fmtSel.disabled = true;\n    setStatus('Preparing your file\u2026');\n    work().then(function () {\n      setStatus('Done. Check your downloads folder.');\n      track('jd_builder_download', { jd_format: fmt });\n      if (!downloaded) {\n        downloaded = true;\n        cta.classList.add('cwjd-cta-hot');\n        $('#cwjd-cta-lead').textContent = 'Your JD is ready.';\n        $('#cwjd-cta-strong').textContent = 'Post this job on Internshala for free';\n        fit();\n      }\n    }).catch(function (err) {\n      if (window.console && console.error) console.error('Job description builder:', err);\n      setStatus(\"Sorry, the download couldn't be prepared. Please check your connection and try again.\", true);\n    }).then(function () {\n      busy = false;\n      dlBtn.disabled = false; fmtSel.disabled = false;\n    });\n  }\n  function makePng() {\n    return capture().then(function (canvas) {\n      return new Promise(function (resolve, reject) {\n        if (canvas.toBlob) canvas.toBlob(function (blob) { blob ? (saveBlob(blob, slug() + '.png'), resolve()) : reject(new Error('blob')); }, 'image\/png');\n        else { var a = document.createElement('a'); a.href = canvas.toDataURL('image\/png'); a.download = slug() + '.png'; a.click(); resolve(); }\n      });\n    });\n  }\n  function makePdf() {\n    return load(JSPDF, function () { return !!(window.jspdf && window.jspdf.jsPDF); }).then(capture).then(function (canvas) {\n      var w = 595.28, h = w * canvas.height \/ canvas.width;\n      var pdf = new window.jspdf.jsPDF({ orientation: 'portrait', unit: 'pt', format: [w, h], compress: true });\n      pdf.addImage(canvas.toDataURL('image\/jpeg', 0.95), 'JPEG', 0, 0, w, h);\n      pdf.save(slug() + '.pdf');\n    });\n  }\n  \/* Word needs PNG or JPG pictures, so any logo (including SVG and WebP) is redrawn as a PNG first. *\/\n  function logoPng() {\n    if (!logoData) return Promise.resolve(null);\n    return new Promise(function (resolve) {\n      var im = new Image();\n      im.onload = function () {\n        try {\n          var w = im.naturalWidth || 240, h = im.naturalHeight || 80, k = Math.min(1, 640 \/ w, 320 \/ h);\n          var c = document.createElement('canvas');\n          c.width = Math.max(1, Math.round(w * k)); c.height = Math.max(1, Math.round(h * k));\n          c.getContext('2d').drawImage(im, 0, 0, c.width, c.height);\n          c.toBlob(function (b) {\n            if (!b) { resolve(null); return; }\n            b.arrayBuffer().then(function (buf) { resolve({ data: new Uint8Array(buf), w: c.width, h: c.height }); }, function () { resolve(null); });\n          }, 'image\/png');\n        } catch (e) { resolve(null); }\n      };\n      im.onerror = function () { resolve(null); };\n      im.src = logoData;\n    });\n  }\n  \/* Builds an editable Word document from the same content: headings in the brand color, real bullet lists. *\/\n  function makeDocx() {\n    return loadAny(DOCX_SRC, function () { return !!(window.docx && window.docx.Document && window.docx.Packer); }).then(logoPng).then(function (logo) {\n      var D = window.docx;\n      var rgb = hexToRgb(state.accent) || [15, 94, 90];\n      var accent = String(state.accent || '').replace('#', '').toUpperCase();\n      if (accent.length !== 6) accent = '0F5E5A';\n      var headCol = contrast(rgb, [255, 255, 255]) >= 3 ? accent : '1D1D1B';\n      var display = state.font === 'sans' ? 'Calibri' : 'Georgia';\n      var kids = [];\n      function val(key, fallback) { return String(state[key] || '').trim() || fallback || ''; }\n      function tx(text, o) {\n        o = o || {};\n        return new D.TextRun({ text: text, bold: !!o.bold, size: o.size || 22, color: o.color || '1D1D1B', font: o.font || 'Calibri', allCaps: !!o.caps, characterSpacing: o.track || 0 });\n      }\n      function para(runs, o) {\n        o = o || {};\n        var p = { children: runs, spacing: { before: o.before || 0, after: o.after == null ? 120 : o.after } };\n        if (!o.plain) { p.spacing.line = 288; p.spacing.lineRule = D.LineRuleType.AUTO; }\n        if (o.bullet) p.bullet = { level: 0 };\n        if (o.border) p.border = o.border;\n        if (o.keepNext) p.keepNext = true;\n        return new D.Paragraph(p);\n      }\n      function heading(key) { var t = val(key); if (t) kids.push(para([tx(t, { bold: true, size: 28, color: headCol, font: display })], { before: 280, after: 100, keepNext: true, plain: true })); }\n      function block(key) { val(key).split(NL).forEach(function (l) { if (l.trim()) kids.push(para([tx(l.trim())])); }); }\n      function bullets(key) { lines(state[key]).forEach(function (l) { kids.push(para([tx(l)], { bullet: true, after: 40 })); }); }\n      if (logo) {\n        var k = Math.min(1, 170 \/ logo.w, 52 \/ logo.h);\n        kids.push(para([new D.ImageRun({ data: logo.data, transformation: { width: Math.max(1, Math.round(logo.w * k)), height: Math.max(1, Math.round(logo.h * k)) } })], { after: 160, plain: true }));\n      }\n      var top = [tx(val('companyName', '[Company name]'), { bold: true, size: 20, color: headCol, caps: true, track: 40 })];\n      if (val('badge')) top.push(tx('   |   ' + val('badge'), { size: 20, color: '5C5A54', caps: true, track: 40 }));\n      kids.push(para(top, { after: 200 }));\n      kids.push(para([tx(val('jobTitle', '[Job title]'), { bold: true, size: 60, font: display })], { after: 100, plain: true }));\n      kids.push(para(val('details') ? [tx(val('details'), { size: 24, color: '4A4944' })] : [], { after: 200, border: { bottom: { color: accent, space: 12, style: D.BorderStyle.SINGLE, size: 12 } } }));\n      if (val('aboutText')) { heading('aboutHeading'); block('aboutText'); }\n      if (val('roleText')) { heading('roleHeading'); block('roleText'); }\n      if (lines(state.respList).length) { heading('respHeading'); bullets('respList'); }\n      if (lines(state.qualList).length) { heading('qualHeading'); bullets('qualList'); }\n      if (lines(state.benList).length) { heading('benHeading'); bullets('benList'); }\n      heading('applyHeading');\n      var apply = [];\n      if (val('applyText')) apply.push(tx(val('applyText') + ' '));\n      apply.push(tx(val('applyContact', '[Your email or job link]'), { bold: true, color: headCol }));\n      kids.push(para(apply));\n      var doc = new D.Document({\n        creator: val('companyName', 'Job description builder'),\n        title: val('jobTitle', 'Job') + ' job description',\n        styles: { default: { document: { run: { font: 'Calibri', size: 22 } } } },\n        sections: [{ properties: { page: { margin: { top: 900, right: 1150, bottom: 900, left: 1150 } } }, children: kids }]\n      });\n      return D.Packer.toBlob(doc).then(function (blob) { saveBlob(blob, slug() + '.docx'); });\n    });\n  }\n  \/* ---- Sign-up step before download ----\n     Clicking Download first asks the site whether the visitor is already signed in as an employer (it opens\n     data-login-check, default \/employer\/dashboard, in the background: signed-out visitors get the login form there).\n     Signed-in employers download straight away. Everyone else sees a box with the site's own sign-up options, which open\n     in a small window; the download starts as soon as the site confirms the sign-in, and the window is closed.\n     A browser that has completed this once is remembered, so returning employers download straight away. *\/\n  var gate = $('#cwjd-gate'), gateStatusEl = $('#cwjd-gate-status'), gateDone = $('#cwjd-gate-done'), gateLink = $('#cwjd-gate-open');\n  var gateWin = null, gateTimer = null, gateFmt = 'pdf', gateMethod = '', gateShown = false, gateOverflow = '';\n  var gateHref = '', lastProbe = 0, probing = null, confirmClicks = 0;\n  var GATE_KEY = 'is_jd_builder_gate', GATE_DAYS = 30;\n  function attr(name, fallback) { return String(root.getAttribute(name) || '').trim() || fallback; }\n  function gateParam() { var q = \/[?&]jdgate=([^&#]+)\/.exec(window.location.search); return q ? q[1] : ''; }\n  \/* 'signup' (create an Internshala account), 'form' (fill in details that go to a Google Sheet) or 'off'. *\/\n  function gateMode() {\n    var v = gateParam();\n    if (v !== 'on' && v !== 'signup' && v !== 'form') v = attr('data-gate', 'off');\n    if (v === 'on') v = 'signup';\n    return v === 'signup' || v === 'form' ? v : 'off';\n  }\n  function gateOn() { return gateMode() !== 'off'; }\n  function cookieSaysIn() {\n    var n = attr('data-login-cookie', '');\n    return !!n && ('; ' + document.cookie + ';').indexOf('; ' + n + '=') > -1;\n  }\n  function gatePassed() {\n    try {\n      var t = parseInt(window.localStorage.getItem(GATE_KEY) || '0', 10), age = Date.now() - t;\n      if (t > 0 && age >= 0 && GATE_DAYS * 86400000 > age) return true;\n    } catch (e) {}\n    return cookieSaysIn();\n  }\n  function gateRemember() { try { window.localStorage.setItem(GATE_KEY, String(Date.now())); } catch (e) {} }\n  \/* Asks the site whether this browser is signed in as an employer. Resolves true (signed in), false (not signed in)\n     or null (could not tell, e.g. offline). Signed-out visitors get a login form (a password box or a Google login link). *\/\n  function checkSignedIn() {\n    if (probing) return probing;\n    if (cookieSaysIn()) return Promise.resolve(true);\n    if (!window.fetch) return Promise.resolve(null);\n    lastProbe = Date.now();\n    probing = window.fetch(attr('data-login-check', '\/employer\/dashboard'), { credentials: 'same-origin', cache: 'no-store' }).then(function (res) {\n      if (!res.ok) return null;\n      var path = '';\n      try { path = new URL(res.url, window.location.href).pathname; } catch (e) {}\n      return res.text().then(function (html) {\n        var loginForm = html.indexOf('type=\"password\"') > -1 || html.indexOf(\"type='password'\") > -1 || html.indexOf('type=password') > -1 || html.indexOf('login\/get_google') > -1;\n        return !loginForm && path.indexOf('\/employer') === 0;\n      });\n    }).then(function (v) { probing = null; return v; }, function () { probing = null; return null; });\n    return probing;\n  }\n  function gateStatus(msg) { gateStatusEl.textContent = msg || ''; }\n  function gateFallback(msg, withLink) {\n    if (msg) gateStatus(msg);\n    gateLink.hidden = !withLink;\n    if (attr('data-gate-fallback', 'on') !== 'off' || withLink) gateDone.hidden = false;\n    $('#cwjd-gate-continue').hidden = attr('data-gate-fallback', 'on') === 'off';\n  }\n  function gateStopWatch() { if (gateTimer) { clearInterval(gateTimer); gateTimer = null; } }\n  \/* Re-checks the sign-in now (soon=true) or at most every 8 seconds; finishes the download when it is confirmed. *\/\n  function gateVerify(soon) {\n    if (!gateShown) return Promise.resolve(false);\n    if (!soon && 8000 > Date.now() - lastProbe) return Promise.resolve(false);\n    return checkSignedIn().then(function (v) {\n      if (v === true && gateShown) gateSuccess('verified');\n      return v;\n    });\n  }\n  \/* Watches the sign-up window. Each time it moves to a new page on this site (for example after the Google step or after\n     the form is sent), the sign-in is checked. Pages on other sites, such as Google's, cannot be read and are skipped. *\/\n  function gateTick() {\n    if (!gateShown) return;\n    if (cookieSaysIn()) { gateSuccess('cookie'); return; }\n    if (!gateWin) { gateVerify(false); return; }\n    var closed = true;\n    try { closed = !!gateWin.closed; } catch (e) { closed = true; }\n    if (closed) {\n      gateWin = null; gateStopWatch();\n      gateStatus('Checking your sign-in\u2026');\n      gateVerify(true).then(function (v) { if (gateShown && v !== true) gateFallback('The sign-up window was closed before sign-in finished.', false); });\n      return;\n    }\n    var href = '';\n    try { var loc = gateWin.location; if (loc && loc.origin === window.location.origin) href = String(loc.href); } catch (e2) {}\n    if (href && href !== gateHref) { gateHref = href; setTimeout(function () { gateVerify(true); }, 400); return; }\n    gateVerify(false);\n  }\n  function gateKeys(e) {\n    if (e.key === 'Escape' || e.key === 'Esc') { closeGate(true); return; }\n    if (e.key !== 'Tab') return;\n    var items = Array.prototype.slice.call(gate.querySelectorAll('button, a[href], input:not([tabindex])')).filter(function (el) { return el.offsetParent !== null; });\n    if (!items.length) return;\n    var first = items[0], last = items[items.length - 1];\n    if (e.shiftKey && document.activeElement === first) { e.preventDefault(); last.focus(); }\n    else if (!e.shiftKey && document.activeElement === last) { e.preventDefault(); first.focus(); }\n  }\n  function onGateFocus() {\n    if (!gateShown || !gateMethod) return;\n    gateVerify(true).then(function (v) { if (gateShown && v !== true && !gateWin) gateFallback('', !gateLink.hidden); });\n  }\n  function onGateMessage(e) {\n    if (!gateShown || e.origin !== window.location.origin) return;\n    if (e.data && e.data.cwjd === 'signed-in') gateSuccess('message');\n  }\n  function openGate(fmt) {\n    gateFmt = fmt; gateMethod = ''; gateShown = true; gateHref = ''; confirmClicks = 0;\n    gateStatus(''); gateDone.hidden = true; gateLink.hidden = true;\n    gate.hidden = false;\n    gateOverflow = document.documentElement.style.overflow;\n    document.documentElement.style.overflow = 'hidden';\n    document.addEventListener('keydown', gateKeys);\n    window.addEventListener('focus', onGateFocus);\n    window.addEventListener('message', onGateMessage);\n    var formMode = gateMode() === 'form';\n    $('#cwjd-gate-signup').hidden = formMode;\n    gateForm.hidden = !formMode;\n    gateFormErr('');\n    $('#cwjd-gate-title').textContent = formMode ? 'Get your job description' : 'Sign up free to download your job description';\n    $('#cwjd-gate-sub').textContent = formMode ? 'Fill in a few details and your download starts right away.' : 'Create your free Internshala employer account to download this JD, then post the job to reach candidates.';\n    $('#cwjd-gate-login-lead').textContent = formMode ? 'Already registered on Internshala?' : 'Already have an account?';\n    $('#cwjd-gate-terms-lead').textContent = formMode ? 'By submitting, you agree to be contacted by Internshala about hiring and to our' : 'By signing up, you agree to our';\n    if (formMode) {\n      if (!gateForm.elements.company.value.trim()) gateForm.elements.company.value = String(state.companyName || '').trim();\n      gateForm.elements.first_name.focus();\n    } else { $('#cwjd-gate-google').focus(); }\n    track('jd_builder_gate_open', { jd_format: fmt, jd_gate: formMode ? 'form' : 'signup' });\n  }\n  function closeGate(byUser) {\n    if (!gateShown) return;\n    gateShown = false;\n    gateStopWatch();\n    gate.hidden = true;\n    document.documentElement.style.overflow = gateOverflow;\n    document.removeEventListener('keydown', gateKeys);\n    window.removeEventListener('focus', onGateFocus);\n    window.removeEventListener('message', onGateMessage);\n    if (byUser) { track('jd_builder_gate_close', { jd_signup_started: gateMethod || 'no' }); dlBtn.focus(); }\n  }\n  function gateSuccess(how) {\n    if (!gateShown) return;\n    var w = gateWin; gateWin = null;\n    gateRemember();\n    try { if (w && !w.closed) w.close(); } catch (e) {}\n    closeGate(false);\n    track('jd_builder_signup_complete', { jd_method: gateMethod || 'unknown', jd_detect: how, jd_format: gateFmt });\n    startDownload(gateFmt);\n  }\n  function gateUrl(method) {\n    var base = method === 'google' ? attr('data-google-url', 'https:\/\/internshala.com\/login\/get_google\/employer\/employer%2Fdashboard')\n      : (method === 'login' ? attr('data-login-url', 'https:\/\/internshala.com\/login\/employer') : attr('data-cta-url', 'https:\/\/internshala.com\/hire-talent'));\n    return tagUrl(base, 'jd_builder_download');\n  }\n  function gateGo(method) {\n    var url = gateUrl(method);\n    gateMethod = method; gateHref = '';\n    saveDraft();\n    track('jd_builder_signup_click', { jd_method: method });\n    var wpx = 520, hpx = 720, sw = (window.screen && window.screen.width) || 1280, sh = (window.screen && window.screen.height) || 800;\n    var feat = 'width=' + wpx + ',height=' + hpx + ',left=' + Math.max(0, Math.round((sw - wpx) \/ 2)) + ',top=' + Math.max(0, Math.round((sh - hpx) \/ 2));\n    gateStopWatch();\n    try { gateWin = window.open(url, 'is_jd_signup', feat); } catch (e) { gateWin = null; }\n    if (!gateWin) {\n      gateLink.href = url;\n      gateFallback('Your browser blocked the sign-up window. Open it in a new tab, sign in, then come back here.', true);\n      gateTimer = setInterval(gateTick, 1000);\n      return;\n    }\n    try { gateWin.focus(); } catch (e3) {}\n    gateDone.hidden = true;\n    gateStatus('Finish signing in in the window that just opened. Your download will start here automatically.');\n    gateTimer = setInterval(gateTick, 600);\n  }\n  $('#cwjd-gate-google').addEventListener('click', function () { gateGo('google'); });\n  $('#cwjd-gate-email').addEventListener('click', function () { gateGo('email'); });\n  $('#cwjd-gate-login').addEventListener('click', function () { gateGo('login'); });\n  $('#cwjd-gate-close').addEventListener('click', function () { closeGate(true); });\n  \/* \"I've signed in\": checks with the site first. If the site can't be reached, or the visitor clicks a second time,\n     the download goes ahead, so nobody is ever left stuck. *\/\n  $('#cwjd-gate-continue').addEventListener('click', function () {\n    var btn = this;\n    confirmClicks++;\n    btn.disabled = true;\n    gateStatus('Checking your sign-in\u2026');\n    checkSignedIn().then(function (v) {\n      btn.disabled = false;\n      if (v === true) gateSuccess('verified');\n      else if (v === null || confirmClicks >= 2) gateSuccess('unverified');\n      else gateStatus(\"We can't see a sign-in yet. Finish signing in, then click the button again.\");\n    });\n  });\n  gateLink.addEventListener('click', function () { gateMethod = gateMethod || 'email'; });\n  gate.addEventListener('mousedown', function (e) { if (e.target === gate) closeGate(true); });\n  if (gateParam() === 'reset') { try { window.localStorage.removeItem(GATE_KEY); } catch (e) {} }\n  \/* ---- Details form (data-gate=\"form\") ----\n     Sends the details to the address in data-lead-url (a Google Apps Script web app that adds a row to a Google Sheet),\n     then starts the download. The download never waits more than 4 seconds for the sheet, and still happens if it fails. *\/\n  var gateForm = $('#cwjd-gate-form'), gateFormErrEl = $('#cwjd-gate-ferr');\n  function gateFormErr(msg, field) {\n    gateFormErrEl.textContent = msg || '';\n    Array.prototype.forEach.call(gateForm.querySelectorAll('input'), function (el) { el.removeAttribute('aria-invalid'); });\n    if (field) { field.setAttribute('aria-invalid', 'true'); field.focus(); }\n  }\n  function leadValues() {\n    var f = gateForm.elements;\n    return {\n      first_name: f.first_name.value.trim(), last_name: f.last_name.value.trim(), email: f.email.value.trim(),\n      mobile: f.mobile.value.replace(\/[^0-9]\/g, ''), company: f.company.value.trim(), website: f.website.value\n    };\n  }\n  function leadProblem(v) {\n    var f = gateForm.elements;\n    if (!v.first_name) return ['Please enter your first name.', f.first_name];\n    if (!v.last_name) return ['Please enter your last name.', f.last_name];\n    if (!\/^[^ @]+@[^ @]+[.][^ @]+$\/.test(v.email)) return ['Please enter a valid email address.', f.email];\n    if (v.mobile.length === 12 && v.mobile.indexOf('91') === 0) v.mobile = v.mobile.slice(2);\n    if (v.mobile.length === 11 && v.mobile.charAt(0) === '0') v.mobile = v.mobile.slice(1);\n    if (v.mobile.length !== 10) return ['Please enter a 10-digit mobile number.', f.mobile];\n    if (!v.company) return ['Please enter your company name.', f.company];\n    return null;\n  }\n  function sendLead(v) {\n    var url = attr('data-lead-url', '');\n    if (!url || !window.fetch || !window.URLSearchParams) {\n      if (!url && window.console && console.warn) console.warn('Job description builder: data-lead-url is not set, so form details are not being saved.');\n      return Promise.resolve('no');\n    }\n    var body = new URLSearchParams();\n    body.append('first_name', v.first_name); body.append('last_name', v.last_name); body.append('email', v.email);\n    body.append('mobile', '+91 ' + v.mobile); body.append('company', v.company); body.append('website', v.website);\n    body.append('job_role', currentRole); body.append('template', currentDesign); body.append('format', gateFmt);\n    body.append('blog_post', postSlug()); body.append('page_url', window.location.origin + window.location.pathname);\n    var sent = window.fetch(url, { method: 'POST', mode: 'no-cors', body: body, keepalive: true }).then(function () { return 'yes'; }, function () { return 'no'; });\n    var slow = new Promise(function (resolve) { setTimeout(function () { resolve('slow'); }, 4000); });\n    return Promise.race([sent, slow]);\n  }\n  gateForm.addEventListener('submit', function (e) {\n    e.preventDefault();\n    var v = leadValues(), problem = leadProblem(v);\n    if (problem) { gateFormErr(problem[0], problem[1]); return; }\n    gateFormErr('');\n    var btn = $('#cwjd-gate-submit');\n    btn.disabled = true;\n    gateStatus('Preparing your download\u2026');\n    if (v.website) { gateMethod = 'form'; gateSuccess('form'); btn.disabled = false; return; }\n    sendLead(v).then(function (result) {\n      btn.disabled = false;\n      gateStatus('');\n      track('jd_builder_lead_submit', { jd_lead_saved: result });\n      gateMethod = 'form';\n      gateSuccess('form');\n    });\n  });\n  function startDownload(f) { run(f, f === 'pdf' ? makePdf : (f === 'docx' ? makeDocx : makePng)); }\n  dlBtn.addEventListener('click', function () {\n    var f = fmtSel.value;\n    if (!gateOn() || gatePassed()) { startDownload(f); return; }\n    if (busy) return;\n    dlBtn.disabled = true;\n    setStatus('Checking your sign-in\u2026');\n    checkSignedIn().then(function (v) {\n      dlBtn.disabled = false;\n      setStatus('');\n      if (v === true) { gateRemember(); track('jd_builder_already_signed_in', { jd_format: f }); startDownload(f); }\n      else openGate(f);\n    });\n  });\n  $$('[data-field]').forEach(function (el) {\n    el.addEventListener('input', function () {\n      state[el.getAttribute('data-field')] = el.value; render();\n      if (!edited) { edited = true; track('jd_builder_edit', { jd_field: el.getAttribute('data-field') }); }\n    });\n    el.addEventListener('change', function () { state[el.getAttribute('data-field')] = el.value; render(); });\n  });\n  $$('.cwjd-swatch').forEach(function (b) {\n    b.addEventListener('click', function () { state.accent = b.getAttribute('data-color'); render(); });\n  });\n  $('#cwjd-color').addEventListener('input', function () { state.accent = this.value; render(); });\n  $('#cwjd-logo').addEventListener('change', function () {\n    var file = this.files && this.files[0];\n    if (!file) return;\n    if (['image\/png', 'image\/jpeg', 'image\/webp', 'image\/svg+xml'].indexOf(file.type) === -1) { setStatus('Please choose a PNG, JPG, WebP or SVG image.', true); this.value = ''; return; }\n    if (file.size > 3 * 1024 * 1024) { setStatus('That logo is over 3 MB. Please use a smaller file.', true); this.value = ''; return; }\n    var reader = new FileReader();\n    reader.onload = function () { logoData = String(reader.result); setStatus(''); render(); };\n    reader.readAsDataURL(file);\n  });\n  $('#cwjd-logo-remove').addEventListener('click', function () { logoData = ''; $('#cwjd-logo').value = ''; render(); });\n  var designSel = $('#cwjd-design');\n  function pickDesign() {\n    var q = \/[?&]jddesign=([^&#]+)\/.exec(window.location.search);\n    if (q && DESIGNS.indexOf(decodeURIComponent(q[1])) > -1) return decodeURIComponent(q[1]);\n    var attr = String(root.getAttribute('data-design') || '').trim();\n    return DESIGNS.indexOf(attr) > -1 ? attr : 'classic';\n  }\n  function setDesign(id) {\n    currentDesign = DESIGNS.indexOf(id) > -1 ? id : 'classic';\n    sheets.forEach(function (sh) {\n      var on = sh.getAttribute('data-design') === currentDesign;\n      sh.hidden = !on;\n      if (on) sheet = sh;\n    });\n    designSel.value = currentDesign;\n    fit();\n  }\n  designSel.addEventListener('change', function () {\n    var from = currentDesign;\n    setDesign(designSel.value);\n    track('jd_builder_design_change', { jd_from_design: from });\n  });\n  var roleSel = $('#cwjd-role');\n  (function buildRoleOptions() {\n    var groups = {};\n    ROLES.forEach(function (r) {\n      if (!groups[r.group]) { groups[r.group] = document.createElement('optgroup'); groups[r.group].label = r.group; roleSel.appendChild(groups[r.group]); }\n      var o = document.createElement('option'); o.value = r.id; o.textContent = r.label || r.title; groups[r.group].appendChild(o);\n    });\n  })();\n  function roleEdited() {\n    var base = roleValues(currentRole);\n    return ROLE_FIELDS.some(function (k) { return String(state[k] || '').trim() !== String(base[k] || '').trim(); });\n  }\n  function applyRole(id) {\n    var vals = roleValues(id), ben = String(state.benList || '').trim();\n    var benUntouched = ben === benFor(currentRole).trim() || ben === COMMON.benList.trim();\n    currentRole = byId(id) ? id : DEFAULT_ROLE;\n    ROLE_FIELDS.forEach(function (k) { state[k] = vals[k]; });\n    if (benUntouched) state.benList = benFor(currentRole);\n    roleSel.value = currentRole;\n    fillForm(); setStatus(''); render(); updateCta();\n  }\n  roleSel.addEventListener('change', function () {\n    var next = roleSel.value, r = byId(next);\n    if (roleEdited() && !window.confirm('Switch to the ' + (r.label || r.title) + ' template? This replaces the job title, details, role summary, responsibilities and qualifications you edited. Your company details stay.')) {\n      roleSel.value = currentRole; return;\n    }\n    var from = currentRole;\n    applyRole(next);\n    track('jd_builder_role_change', { jd_from_role: from });\n  });\n  $('#cwjd-reset').addEventListener('click', function () {\n    if (!window.confirm('Reset every field back to the original template? Your changes will be lost.')) return;\n    state = copy(COMMON); logoData = ''; $('#cwjd-logo').value = ''; applyRole(currentRole);\n  });\n  $('#cwjd-clear').addEventListener('click', function () {\n    var next = {}, all = copy(COMMON);\n    ROLE_FIELDS.forEach(function (k) { all[k] = ''; });\n    for (var k in all) next[k] = KEEP_ON_CLEAR.indexOf(k) > -1 ? state[k] : '';\n    state = next; fillForm(); setStatus(''); render();\n  });\n  if (window.name === 'is_jd_signup' && window.opener) { try { window.opener.postMessage({ cwjd: 'signed-in' }, window.location.origin); } catch (e) {} }\n  state = copy(COMMON);\n  var initial = roleValues(pickRole());\n  currentRole = pickRole();\n  ROLE_FIELDS.forEach(function (k) { state[k] = initial[k]; });\n  state.benList = benFor(currentRole);\n  roleSel.value = currentRole;\n  fillForm();\n  updateCta();\n  render();\n  setDesign(pickDesign());\n  layout();\n  \/* Counts a view once, the first time the builder actually scrolls into sight. *\/\n  if (window.IntersectionObserver) {\n    var seen = new IntersectionObserver(function (entries) {\n      for (var i = 0; entries.length > i; i++) {\n        if (entries[i].isIntersecting) { seen.disconnect(); track('jd_builder_view'); break; }\n      }\n    }, { threshold: 0.5 });\n    seen.observe(root.querySelector('.cwjd-formhead') || root);\n  } else { track('jd_builder_view'); }\n  if (window.ResizeObserver) {\n    new ResizeObserver(layout).observe(root);\n    var sheetWatch = new ResizeObserver(function () { fit(); });\n    sheets.forEach(function (sh) { sheetWatch.observe(sh); });\n  }\n  window.addEventListener('resize', layout);\n  window.addEventListener('scroll', onScroll, { passive: true });\n  if (document.fonts && document.fonts.ready) document.fonts.ready.then(fit);\n  }\n})();\n<\/script>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Data_Entry_Job_Description_Sample\"><\/span>Data Entry Job Description Sample<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><strong>About the Company<\/strong><br><br>EazyShop is a fast-growing startup promoting sustainable and eco-friendly clothing for customers across different generations. We focus on creativity, innovation, and building strong customer relationships while creating a supportive work environment for our employees.\u00a0<br><br><strong>Job Profile: Data Entry Clerk (Fresher\/Entry-Level)<\/strong><br><br>We are seeking candidates with strong typing speed, strong organizational skills, and proficiency in MS Excel and MS Office. The ideal candidate should have excellent attention to detail and the ability to manage large amounts of information accurately and efficiently.<br><br><strong>Responsibilities and Duties<\/strong><br><br>Enter and update sales, inventory, and supplier-related data in company databases and spreadsheets.<br>Review and verify information before submission to maintain data accuracy<br>Organize and maintain digital records using MS Excel and inventory management software<br>Generate reports related to sales, inventory, and supplier information<br>Maintain records of sustainability certifications and product details<br>Update current datasets regularly with accurate information<br>Coordinate with team members to improve workflow and data management processes<br>Follow company data entry guidelines and confidentiality policies<br><br><strong>Educational Qualifications &amp; Experience Requirements<\/strong><br><br>Bachelor\u2019s degree in any discipline<br>Freshers and entry-level candidates can apply<br>Computer certification or technical training is preferred<br><br><strong>Required Skills<\/strong><br><br>Proficiency in MS Excel and MS Office Suite<br>A basic understanding of database management systems is an added advantage<br>Basic data entry and database management skills<br>Fast and accurate typing ability<br>Ability to organize and maintain digital records<br>Familiarity with inventory management software is an advantage<br>Strong attention to detail<br>Good communication and coordination skills<br>Organizational ability and capacity to multitask<br>Time management skills<br><br><strong>Benefits, Work Schedule, &amp; Compensation<\/strong><br><br>Competitive fresher salary package<br>Fixed Monday to Friday schedule<br>Performance-based incentives<br>Paid leaves and company holidays<br>Skill development and career growth opportunities<br>Collaborative work environment<br><br><strong>How to Apply: <\/strong><br>Interested candidates can send their updated resumes to careers@eazyshop.com with the subject line \u2018Application for Data Entry Clerk Role\u2019.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Points_to_Consider_When_Writing_the_Data_Entry_Job_Description\"><\/span>Points to Consider When Writing the Data Entry Job Description<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>When crafting a data entry job description, ensure it is clear, detailed, and well-structured to attract the right candidates. Here are the key elements you must consider including in a data entry job description:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">1. Write a Company Overview<\/h3>\n\n\n\n<p>Begin your job description with a concise company overview that introduces candidates to your organization. Before applying, candidates often want to understand what your company does, its work culture, and its core values. This section should clearly highlight your business operations, mission, workplace environment, and what makes your company a suitable place to work.&nbsp;<\/p>\n\n\n\n<p>A well-written company overview covers:<\/p>\n\n\n\n<ul>\n<li>A short introduction to the company and what it does<\/li>\n\n\n\n<li>The company&#8217;s mission, values, and business goals<\/li>\n\n\n\n<li>Notable achievements, milestones, or industry recognition<\/li>\n\n\n\n<li>Company size, location, and growth direction<\/li>\n\n\n\n<li>Key products, services, or solutions the company provides<\/li>\n<\/ul>\n\n\n\n<p><strong>Sample:&nbsp;<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><strong>About the Company<\/strong><br><br>XYZ Solutions delivers digital data management services to businesses across healthcare, finance, logistics, and retail. For over 20 years, we have helped organizations maintain clean, structured, and accessible records through a combination of skilled professionals and purpose-built technology. Our work focuses on accuracy, consistency, and operational efficiency.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">2. State the Job Title Accurately<\/h3>\n\n\n\n<p>The job title is one of the first details candidates notice in a job description. It should clearly communicate the role and indicate the level of seniority to help applicants quickly determine whether the position matches their skills and career goals. Avoid unclear or overly creative titles. Instead, choose a professional, straightforward title that accurately reflects the role&#8217;s responsibilities and experience level.<\/p>\n\n\n\n<p><strong>Sample:<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><strong>Job Title: <\/strong>Data Entry Clerk (Entry-Level)<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">3. Write a Clear Job Overview<\/h3>\n\n\n\n<p>The job overview appears directly below the title and provides candidates with a snapshot of the role. It should cover what the person will do day-to-day, how the role fits into the team, and what type of candidate you are looking for. Keep it focused. A candidate should finish reading this section and know whether the role is a fit for them.<\/p>\n\n\n\n<p><strong>Sample:<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><strong>Job Overview: <\/strong>We are seeking a meticulous, detail-oriented Data Entry Clerk to join our team. This position is ideal for an individual seeking to advance their accounting career and gain valuable experience in a supportive work environment. The candidate&#8217;s primary role will be to accurately and efficiently manage and enter data into our systems.&nbsp;<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">4. List the Roles &amp; Responsibilities<\/h3>\n\n\n\n<p>Clearly mentioning the responsibilities and duties in the job description helps candidates understand their expected tasks and day-to-day work requirements. Here are some responsibilities and duties that should be included in a data entry clerk job description:<\/p>\n\n\n\n<p><strong>Sample:<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><strong>Roles and Responsibilities<\/strong><br><br>Entering and updating information accurately in database management systems<br>Verifying and reviewing data before final submission<br>Organizing, sorting, and formatting records in spreadsheets and software tools<br>Creating and maintaining reports using MS Excel and other data management tools<br>Reviewing data regularly to identify and correct errors<br>Updating existing datasets with current and accurate information<br>Maintaining confidentiality and security of sensitive business information<br>Following company guidelines and data entry procedures to ensure consistency<br>Managing digital and physical records in an organized manner<br>Coordinating with team members to collect and update required information<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">5. State the Educational and Work Experience Requirements<\/h3>\n\n\n\n<p>This section tells candidates whether they qualify for the role before they read any further. Clearly listing the educational qualifications and experience requirements saves you from screening applications that were never a fit. Separate your minimum requirements from preferred ones, and adjust the criteria based on the experience level you are hiring for.<\/p>\n\n\n\n<p>The key details to include are:<\/p>\n\n\n\n<ul>\n<li>Minimum educational qualification such as a high school diploma, bachelor&#8217;s degree, or equivalent<\/li>\n\n\n\n<li>Required or preferred years of experience in data entry or administrative work<\/li>\n\n\n\n<li>Specific software knowledge or technical credentials the role demands<\/li>\n\n\n\n<li>Relevant certifications or training in data entry, computer applications, or related tools<\/li>\n<\/ul>\n\n\n\n<p><strong>Sample:<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><strong>Sample A: For Entry-Level Data Entry Clerk<\/strong><br><br>High school diploma or equivalent qualification<br>Bachelor&#8217;s degree in any discipline is an added advantage<br>No prior work experience required; freshers are encouraged to apply<br>A certificate course in computer applications or MS Office is preferred<br>Basic familiarity with spreadsheet tools such as MS Excel or Google Sheets<br><br><strong>Sample B: Intermediate-Level Data Entry Professional<\/strong><br><br>Bachelor&#8217;s degree or diploma in any discipline<br>2 to 4 years of hands-on experience in data entry, back-office, or administrative roles<br>Working knowledge of MS Office Suite, particularly Excel and Word<br>Certification in computer applications or database management is preferred<br>Prior exposure to CRM platforms or inventory management software is an advantage<br><br><strong>Sample C: Senior Data Entry Professional<\/strong><br><br>Bachelor&#8217;s degree in a relevant field such as business administration, information management, or a related discipline<br>Minimum 5 years of professional experience in data entry or data management functions<br>Advanced proficiency in MS Excel, database tools, and at least one CRM or ERP system<br>Proven track record of managing high-volume data with a strong accuracy rate<br>Experience supervising or guiding junior data entry staff is preferred<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">6. Data Entry Clerk Skills<\/h3>\n\n\n\n<p>When crafting a data entry clerk job description, it&#8217;s crucial to outline both the required and preferred skills. Doing so not only helps potential candidates understand your expectations but also enables them to align their skills with the job role. By clearly detailing these skills, you can attract candidates who possess the necessary qualifications. Here are the soft and hard skills that a data entry clerk should possess.&nbsp;&nbsp;&nbsp;<\/p>\n\n\n\n<p><strong>Sample<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><strong>Skills Needed<\/strong><br><br>Fast typing speed and high data accuracy<br>Proficiency in Microsoft Excel and MS Office Suite<br>Working knowledge of data entry and database management software<br>Ability to verify, organize, and maintain large volumes of records<br>Basic computer skills, including file and document management<br>Strong attention to detail with the ability to catch and correct errors<br>Good time management and ability to meet deadlines consistently<br>Clear communication skills for coordinating with team members<br>Organizational ability and capacity to handle multiple tasks at once<br>Ability to handle confidential information with discretion<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">7. Benefits, Work Schedule, &amp; Compensation<\/h3>\n\n\n\n<p>This section of the data entry job description provides a comprehensive overview of the valuable benefits you offer to your employees. It covers details about work schedules, compensation, and a range of additional benefits. Listing these benefits in your job description can help attract top talent for your organization.<\/p>\n\n\n\n<p><strong>Sample:<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><strong>Compensation, Work Schedule, &amp; Benefits Offered<\/strong><br><br>Monday to Friday work schedule with fixed working hours from 9 AM to 5 PM<br>Competitive salary package starting from \u20b94 LPA<br>Performance-based bonuses and incentive opportunities<br>Health, dental, and vision insurance benefits<br>Paid leaves, holidays, and vacation benefits<br>Supportive and employee-friendly work environment<br>Opportunities for career growth and skill development<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">8. Call-to-Action (CTA)<\/h3>\n\n\n\n<p>At the end of your job description, include a powerful call to action that motivates potential candidates to submit their applications. This section should also effectively guide them through the next steps to complete their application.<\/p>\n\n\n\n<p><strong>Sample:<\/strong><\/p>\n\n\n\n<p>Join DataSync Solutions and help us propel innovation through precise and efficient data management. You can submit your resume and cover letter to careers@zyzdatasolutions.com<\/p>\n\n\n\n<figure class=\"wp-block-image size-large desktop-image\"><a href=\"https:\/\/internshala.com\/post-job?utm_source=is_blog&amp;utm_medium=employer-data-entry-job-description&amp;utm_campaign=employer-web-banner\" target=\"_blank\" rel=\"noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"203\" src=\"https:\/\/internshala.com\/blog\/wp-content\/uploads\/2023\/10\/Post-your-job-nowweb-1024x203.jpg\" alt=\"Post job Banner\" class=\"wp-image-21409\" srcset=\"https:\/\/internshala.com\/blog\/wp-content\/uploads\/2023\/10\/Post-your-job-nowweb-1024x203.jpg 1024w, https:\/\/internshala.com\/blog\/wp-content\/uploads\/2023\/10\/Post-your-job-nowweb-672x133.jpg 672w, https:\/\/internshala.com\/blog\/wp-content\/uploads\/2023\/10\/Post-your-job-nowweb-1536x305.jpg 1536w, https:\/\/internshala.com\/blog\/wp-content\/uploads\/2023\/10\/Post-your-job-nowweb-2048x406.jpg 2048w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full mobile-image\"><a href=\"https:\/\/internshala.com\/post-job?utm_source=is_blog&amp;utm_medium=employer-data-entry-job-description&amp;utm_campaign=employer-mobile-banner\" target=\"_blank\" rel=\"noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"356\" height=\"256\" src=\"https:\/\/internshala.com\/blog\/wp-content\/uploads\/2024\/01\/Post-job-mobile-banner.jpg\" alt=\"Post job mobile banner\" class=\"wp-image-21492\"\/><\/a><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Conclusion\"><\/span>Conclusion<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>A data entry clerk plays an important role in maintaining organized, accurate business records, thereby making data management and analysis more efficient for organizations. Although the role may appear simple, handling large volumes of information accurately and consistently requires strong technical and organizational skills. In this blog, we have covered the responsibilities, qualifications, skills, and sample job description templates needed to <a href=\"https:\/\/internshala.com\/post-job\/\">hire the right candidate<\/a> for this role. You can further customize these data entry job description templates based on your company\u2019s requirements and industry needs.&nbsp;<\/p>\n\n\n\n<p>Once you have selected the right candidate, the next step is to formalize the hiring process professionally. Check out our detailed guide on \u2018<a href=\"https:\/\/internshala.com\/blog\/employer-appointment-letter-for-a-data-entry-operator\/?utm_source=is_blog&amp;utm_medium=employer-data-entry-job-description&amp;utm_campaign=employer-blog-banner\" target=\"_blank\" rel=\"noreferrer noopener\">Appointment Letter for a Data Entry Operator<\/a>\u2019 to learn how to draft a clear and professional appointment letter for your new hire.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"FAQs\"><\/span>FAQs<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<div class=\"schema-faq wp-block-yoast-faq-block\"><div class=\"schema-faq-section\" id=\"faq-question-1718099392824\"><strong class=\"schema-faq-question\">Q<strong>1)\u00a0 What are the required skills for data entry jobs?<\/strong><\/strong> <p class=\"schema-faq-answer\"><strong>Answer:<\/strong> Here are some key skills required for data entry jobs:<br\/>&#8211; Typing speed and accuracy<br\/>&#8211; Time management skills\u00a0<br\/>&#8211; Attention to detail<br\/>&#8211; Ability to research and collect data<br\/>&#8211; Basic technical proficiency\u00a0<br\/>&#8211; Organizational and data management skills<br\/>&#8211; Ability to multitask<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1718099428408\"><strong class=\"schema-faq-question\">Q<strong>2) What other job titles can you use for a \u201cData Entry Clerk\u201d?<\/strong><\/strong> <p class=\"schema-faq-answer\"><strong>Answer:<\/strong> Here are some job titles that you can use instead of data entry clerk:\u00a0<br\/>&#8211; Data Entry Specialist<br\/>&#8211; Data Management Associate\u00a0<br\/>&#8211; Data Entry Administrator<br\/>&#8211; Data Entry Operator<br\/>&#8211; File Clerk<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1718099461985\"><strong class=\"schema-faq-question\">Q<strong>3) How much does it cost to hire a data entry clerk?<\/strong><\/strong> <p class=\"schema-faq-answer\"><strong>Answer:<\/strong> The cost of hiring a data entry clerk in India can vary depending on factors such as skill level, expertise, and engagement model. On average, you can expect to pay between \u20b915000 and \u20b925000 per month when hiring a data entry clerk.<\/p> <\/div> <\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Source<\/h3>\n\n\n\n<ul>\n<li>https:\/\/www.thetypingpractice.com\/typing-speed-chart<\/li>\n<\/ul>\n<aside class=\"mashsb-container mashsb-main \"><div class=\"mashsb-box\"><div class=\"mashsb-count mash-medium\" style=\"float:left\"><div class=\"counts mashsbcount\">0<\/div><span class=\"mashsb-sharetext\">SHARES<\/span><\/div><div class=\"mashsb-buttons\"><a class=\"mashicon-facebook mash-medium mashsb-noshadow\" href=\"https:\/\/www.facebook.com\/sharer.php?u=https%3A%2F%2Finternshala.com%2Fblog%2Femployer-data-entry-job-description%2F\" target=\"_top\" rel=\"nofollow\"><span class=\"icon\"><\/span><span class=\"text\">Share&nbsp;on&nbsp;Facebook<\/span><\/a><a class=\"mashicon-subscribe mash-medium mashsb-noshadow\" href=\"#\" target=\"_top\" rel=\"nofollow\"><span class=\"icon\"><\/span><span class=\"text\">Get&nbsp;Your&nbsp;Dream&nbsp;Internship<\/span><\/a><div class=\"onoffswitch2 mash-medium mashsb-noshadow\" style=\"display:none\"><\/div><\/div>\n            <\/div>\n                <div style=\"clear:both\"><\/div><\/aside>\n            <!-- Share buttons by mashshare.net - Version: 4.0.42-->","protected":false},"excerpt":{"rendered":"<p>Summary: A data entry job description should clearly define the role, responsibilities, required skills, qualifications, compensation, and work schedule to attract qualified candidates. The blog provides practical writing tips and<\/p>\n","protected":false},"author":6502,"featured_media":21209,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[4164],"tags":[5707,5709,5706,5708],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v22.1 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Data Entry Job Description [with Templates] | Internshala<\/title>\n<meta name=\"description\" content=\"Create the perfect data entry job description with our comprehensive guide and templates. Get started with writing clear and effective job postings.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/internshala.com\/blog\/employer-data-entry-job-description\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Data Entry Job Description [with Templates] | Internshala\" \/>\n<meta property=\"og:description\" content=\"Create the perfect data entry job description with our comprehensive guide and templates. Get started with writing clear and effective job postings.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/internshala.com\/blog\/employer-data-entry-job-description\/\" \/>\n<meta property=\"og:site_name\" content=\"Internshala blog\" \/>\n<meta property=\"article:published_time\" content=\"2024-01-06T07:18:54+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-10-13T09:59:26+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/internshala.com\/blog\/wp-content\/uploads\/2024\/01\/Job-Description-Templates-for-Data-Entry-Clerks.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1626\" \/>\n\t<meta property=\"og:image:height\" content=\"1063\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Shobha Saini\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Shobha Saini\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"13 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/internshala.com\/blog\/employer-data-entry-job-description\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/internshala.com\/blog\/employer-data-entry-job-description\/\"},\"author\":{\"name\":\"Shobha Saini\",\"@id\":\"https:\/\/internshala.com\/blog\/#\/schema\/person\/c220799e53244b6b0da150e24591978f\"},\"headline\":\"Data Entry Job Description with Template (Free Download)\",\"datePublished\":\"2024-01-06T07:18:54+00:00\",\"dateModified\":\"2026-10-13T09:59:26+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/internshala.com\/blog\/employer-data-entry-job-description\/\"},\"wordCount\":2481,\"publisher\":{\"@id\":\"https:\/\/internshala.com\/blog\/#organization\"},\"keywords\":[\"data entry clerk job description\",\"data entry clerk job description template\",\"data entry job description\",\"data entry job description examples\"],\"articleSection\":[\"Hiring Tips\"],\"inLanguage\":\"en-US\"},{\"@type\":[\"WebPage\",\"FAQPage\"],\"@id\":\"https:\/\/internshala.com\/blog\/employer-data-entry-job-description\/\",\"url\":\"https:\/\/internshala.com\/blog\/employer-data-entry-job-description\/\",\"name\":\"Data Entry Job Description [with Templates] | Internshala\",\"isPartOf\":{\"@id\":\"https:\/\/internshala.com\/blog\/#website\"},\"datePublished\":\"2024-01-06T07:18:54+00:00\",\"dateModified\":\"2026-10-13T09:59:26+00:00\",\"description\":\"Create the perfect data entry job description with our comprehensive guide and templates. Get started with writing clear and effective job postings.\",\"breadcrumb\":{\"@id\":\"https:\/\/internshala.com\/blog\/employer-data-entry-job-description\/#breadcrumb\"},\"mainEntity\":[{\"@id\":\"https:\/\/internshala.com\/blog\/employer-data-entry-job-description\/#faq-question-1718099392824\"},{\"@id\":\"https:\/\/internshala.com\/blog\/employer-data-entry-job-description\/#faq-question-1718099428408\"},{\"@id\":\"https:\/\/internshala.com\/blog\/employer-data-entry-job-description\/#faq-question-1718099461985\"}],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/internshala.com\/blog\/employer-data-entry-job-description\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/internshala.com\/blog\/employer-data-entry-job-description\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/internshala.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Employer Resources\",\"item\":\"https:\/\/internshala.com\/blog\/employer-resources\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Hiring Tips\",\"item\":\"https:\/\/internshala.com\/blog\/employer-resources\/hiring-tips\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Data Entry Job Description\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/internshala.com\/blog\/#website\",\"url\":\"https:\/\/internshala.com\/blog\/\",\"name\":\"Internshala blog\",\"description\":\"Your favourite senior outside college\",\"publisher\":{\"@id\":\"https:\/\/internshala.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/internshala.com\/blog\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/internshala.com\/blog\/#organization\",\"name\":\"Internshala blog\",\"url\":\"https:\/\/internshala.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/internshala.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/internshala.com\/blog\/wp-content\/uploads\/2023\/08\/LOGO-1.png\",\"contentUrl\":\"https:\/\/internshala.com\/blog\/wp-content\/uploads\/2023\/08\/LOGO-1.png\",\"width\":112,\"height\":31,\"caption\":\"Internshala blog\"},\"image\":{\"@id\":\"https:\/\/internshala.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/internshala.com\/blog\/#\/schema\/person\/c220799e53244b6b0da150e24591978f\",\"name\":\"Shobha Saini\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/internshala.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/internshala.com\/blog\/wp-content\/uploads\/2023\/12\/Shobha-96x96.jpg\",\"contentUrl\":\"https:\/\/internshala.com\/blog\/wp-content\/uploads\/2023\/12\/Shobha-96x96.jpg\",\"caption\":\"Shobha Saini\"},\"description\":\"Shobha Saini is the Head of Human Resources at Internshala with over eight years of experience in employee relations and talent acquisition. She has led strategic HR initiatives and built effective people practices across the organization. She specializes in strategic planning, policy-making, and performance management. A multi-talented professional, she has played a key role in shaping HR strategies at Internshala.\",\"sameAs\":[\"https:\/\/www.linkedin.com\/in\/shobha-saini-she-her-7a95131a\/\"],\"url\":\"https:\/\/internshala.com\/blog\/author\/shobha-saini\/\"},{\"@type\":\"Question\",\"@id\":\"https:\/\/internshala.com\/blog\/employer-data-entry-job-description\/#faq-question-1718099392824\",\"position\":1,\"url\":\"https:\/\/internshala.com\/blog\/employer-data-entry-job-description\/#faq-question-1718099392824\",\"name\":\"Q1)\u00a0 What are the required skills for data entry jobs?\",\"answerCount\":1,\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"<strong>Answer:<\/strong> Here are some key skills required for data entry jobs:<br\/>- Typing speed and accuracy<br\/>- Time management skills\u00a0<br\/>- Attention to detail<br\/>- Ability to research and collect data<br\/>- Basic technical proficiency\u00a0<br\/>- Organizational and data management skills<br\/>- Ability to multitask\",\"inLanguage\":\"en-US\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Question\",\"@id\":\"https:\/\/internshala.com\/blog\/employer-data-entry-job-description\/#faq-question-1718099428408\",\"position\":2,\"url\":\"https:\/\/internshala.com\/blog\/employer-data-entry-job-description\/#faq-question-1718099428408\",\"name\":\"Q2) What other job titles can you use for a \u201cData Entry Clerk\u201d?\",\"answerCount\":1,\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"<strong>Answer:<\/strong> Here are some job titles that you can use instead of data entry clerk:\u00a0<br\/>- Data Entry Specialist<br\/>- Data Management Associate\u00a0<br\/>- Data Entry Administrator<br\/>- Data Entry Operator<br\/>- File Clerk\",\"inLanguage\":\"en-US\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Question\",\"@id\":\"https:\/\/internshala.com\/blog\/employer-data-entry-job-description\/#faq-question-1718099461985\",\"position\":3,\"url\":\"https:\/\/internshala.com\/blog\/employer-data-entry-job-description\/#faq-question-1718099461985\",\"name\":\"Q3) How much does it cost to hire a data entry clerk?\",\"answerCount\":1,\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"<strong>Answer:<\/strong> The cost of hiring a data entry clerk in India can vary depending on factors such as skill level, expertise, and engagement model. On average, you can expect to pay between \u20b915000 and \u20b925000 per month when hiring a data entry clerk.\",\"inLanguage\":\"en-US\"},\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Data Entry Job Description [with Templates] | Internshala","description":"Create the perfect data entry job description with our comprehensive guide and templates. Get started with writing clear and effective job postings.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/internshala.com\/blog\/employer-data-entry-job-description\/","og_locale":"en_US","og_type":"article","og_title":"Data Entry Job Description [with Templates] | Internshala","og_description":"Create the perfect data entry job description with our comprehensive guide and templates. Get started with writing clear and effective job postings.","og_url":"https:\/\/internshala.com\/blog\/employer-data-entry-job-description\/","og_site_name":"Internshala blog","article_published_time":"2024-01-06T07:18:54+00:00","article_modified_time":"2026-10-13T09:59:26+00:00","og_image":[{"width":1626,"height":1063,"url":"https:\/\/internshala.com\/blog\/wp-content\/uploads\/2024\/01\/Job-Description-Templates-for-Data-Entry-Clerks.jpg","type":"image\/jpeg"}],"author":"Shobha Saini","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Shobha Saini","Est. reading time":"13 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/internshala.com\/blog\/employer-data-entry-job-description\/#article","isPartOf":{"@id":"https:\/\/internshala.com\/blog\/employer-data-entry-job-description\/"},"author":{"name":"Shobha Saini","@id":"https:\/\/internshala.com\/blog\/#\/schema\/person\/c220799e53244b6b0da150e24591978f"},"headline":"Data Entry Job Description with Template (Free Download)","datePublished":"2024-01-06T07:18:54+00:00","dateModified":"2026-10-13T09:59:26+00:00","mainEntityOfPage":{"@id":"https:\/\/internshala.com\/blog\/employer-data-entry-job-description\/"},"wordCount":2481,"publisher":{"@id":"https:\/\/internshala.com\/blog\/#organization"},"keywords":["data entry clerk job description","data entry clerk job description template","data entry job description","data entry job description examples"],"articleSection":["Hiring Tips"],"inLanguage":"en-US"},{"@type":["WebPage","FAQPage"],"@id":"https:\/\/internshala.com\/blog\/employer-data-entry-job-description\/","url":"https:\/\/internshala.com\/blog\/employer-data-entry-job-description\/","name":"Data Entry Job Description [with Templates] | Internshala","isPartOf":{"@id":"https:\/\/internshala.com\/blog\/#website"},"datePublished":"2024-01-06T07:18:54+00:00","dateModified":"2026-10-13T09:59:26+00:00","description":"Create the perfect data entry job description with our comprehensive guide and templates. Get started with writing clear and effective job postings.","breadcrumb":{"@id":"https:\/\/internshala.com\/blog\/employer-data-entry-job-description\/#breadcrumb"},"mainEntity":[{"@id":"https:\/\/internshala.com\/blog\/employer-data-entry-job-description\/#faq-question-1718099392824"},{"@id":"https:\/\/internshala.com\/blog\/employer-data-entry-job-description\/#faq-question-1718099428408"},{"@id":"https:\/\/internshala.com\/blog\/employer-data-entry-job-description\/#faq-question-1718099461985"}],"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/internshala.com\/blog\/employer-data-entry-job-description\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/internshala.com\/blog\/employer-data-entry-job-description\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/internshala.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Employer Resources","item":"https:\/\/internshala.com\/blog\/employer-resources\/"},{"@type":"ListItem","position":3,"name":"Hiring Tips","item":"https:\/\/internshala.com\/blog\/employer-resources\/hiring-tips\/"},{"@type":"ListItem","position":4,"name":"Data Entry Job Description"}]},{"@type":"WebSite","@id":"https:\/\/internshala.com\/blog\/#website","url":"https:\/\/internshala.com\/blog\/","name":"Internshala blog","description":"Your favourite senior outside college","publisher":{"@id":"https:\/\/internshala.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/internshala.com\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/internshala.com\/blog\/#organization","name":"Internshala blog","url":"https:\/\/internshala.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/internshala.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/internshala.com\/blog\/wp-content\/uploads\/2023\/08\/LOGO-1.png","contentUrl":"https:\/\/internshala.com\/blog\/wp-content\/uploads\/2023\/08\/LOGO-1.png","width":112,"height":31,"caption":"Internshala blog"},"image":{"@id":"https:\/\/internshala.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/internshala.com\/blog\/#\/schema\/person\/c220799e53244b6b0da150e24591978f","name":"Shobha Saini","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/internshala.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/internshala.com\/blog\/wp-content\/uploads\/2023\/12\/Shobha-96x96.jpg","contentUrl":"https:\/\/internshala.com\/blog\/wp-content\/uploads\/2023\/12\/Shobha-96x96.jpg","caption":"Shobha Saini"},"description":"Shobha Saini is the Head of Human Resources at Internshala with over eight years of experience in employee relations and talent acquisition. She has led strategic HR initiatives and built effective people practices across the organization. She specializes in strategic planning, policy-making, and performance management. A multi-talented professional, she has played a key role in shaping HR strategies at Internshala.","sameAs":["https:\/\/www.linkedin.com\/in\/shobha-saini-she-her-7a95131a\/"],"url":"https:\/\/internshala.com\/blog\/author\/shobha-saini\/"},{"@type":"Question","@id":"https:\/\/internshala.com\/blog\/employer-data-entry-job-description\/#faq-question-1718099392824","position":1,"url":"https:\/\/internshala.com\/blog\/employer-data-entry-job-description\/#faq-question-1718099392824","name":"Q1)\u00a0 What are the required skills for data entry jobs?","answerCount":1,"acceptedAnswer":{"@type":"Answer","text":"<strong>Answer:<\/strong> Here are some key skills required for data entry jobs:<br\/>- Typing speed and accuracy<br\/>- Time management skills\u00a0<br\/>- Attention to detail<br\/>- Ability to research and collect data<br\/>- Basic technical proficiency\u00a0<br\/>- Organizational and data management skills<br\/>- Ability to multitask","inLanguage":"en-US"},"inLanguage":"en-US"},{"@type":"Question","@id":"https:\/\/internshala.com\/blog\/employer-data-entry-job-description\/#faq-question-1718099428408","position":2,"url":"https:\/\/internshala.com\/blog\/employer-data-entry-job-description\/#faq-question-1718099428408","name":"Q2) What other job titles can you use for a \u201cData Entry Clerk\u201d?","answerCount":1,"acceptedAnswer":{"@type":"Answer","text":"<strong>Answer:<\/strong> Here are some job titles that you can use instead of data entry clerk:\u00a0<br\/>- Data Entry Specialist<br\/>- Data Management Associate\u00a0<br\/>- Data Entry Administrator<br\/>- Data Entry Operator<br\/>- File Clerk","inLanguage":"en-US"},"inLanguage":"en-US"},{"@type":"Question","@id":"https:\/\/internshala.com\/blog\/employer-data-entry-job-description\/#faq-question-1718099461985","position":3,"url":"https:\/\/internshala.com\/blog\/employer-data-entry-job-description\/#faq-question-1718099461985","name":"Q3) How much does it cost to hire a data entry clerk?","answerCount":1,"acceptedAnswer":{"@type":"Answer","text":"<strong>Answer:<\/strong> The cost of hiring a data entry clerk in India can vary depending on factors such as skill level, expertise, and engagement model. On average, you can expect to pay between \u20b915000 and \u20b925000 per month when hiring a data entry clerk.","inLanguage":"en-US"},"inLanguage":"en-US"}]}},"_links":{"self":[{"href":"https:\/\/internshala.com\/blog\/wp-json\/wp\/v2\/posts\/21208"}],"collection":[{"href":"https:\/\/internshala.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/internshala.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/internshala.com\/blog\/wp-json\/wp\/v2\/users\/6502"}],"replies":[{"embeddable":true,"href":"https:\/\/internshala.com\/blog\/wp-json\/wp\/v2\/comments?post=21208"}],"version-history":[{"count":0,"href":"https:\/\/internshala.com\/blog\/wp-json\/wp\/v2\/posts\/21208\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/internshala.com\/blog\/wp-json\/wp\/v2\/media\/21209"}],"wp:attachment":[{"href":"https:\/\/internshala.com\/blog\/wp-json\/wp\/v2\/media?parent=21208"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/internshala.com\/blog\/wp-json\/wp\/v2\/categories?post=21208"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/internshala.com\/blog\/wp-json\/wp\/v2\/tags?post=21208"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}