{"id":26177,"date":"2026-03-18T21:03:21","date_gmt":"2026-03-18T19:03:21","guid":{"rendered":"https:\/\/zentrofly.com\/jobs\/?p=26177"},"modified":"2026-03-18T21:03:23","modified_gmt":"2026-03-18T19:03:23","slug":"cleaner-cleaning-services-x51-posts-department-of-public-works-infrastructure-apply-by-20-march-2026","status":"publish","type":"post","link":"https:\/\/zentrofly.com\/jobs\/cleaner-cleaning-services-x51-posts-department-of-public-works-infrastructure-apply-by-20-march-2026\/","title":{"rendered":"Cleaner \/ Cleaning Services (X51 Posts) \u2013 Department of Public Works &amp; Infrastructure &#8211; Apply by 20 March 2026"},"content":{"rendered":"\n<h1 class=\"wp-block-heading\"><\/h1>\n\n\n\n<p><strong>Salary:<\/strong> R138 486 per annum<br><strong>Closing Date:<\/strong> 20 March 2026<\/p>\n\n\n\n<p>The Department of Public Works &amp; Infrastructure invites applications for <strong>51 Cleaner posts<\/strong> across various Regional Offices.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Post Breakdown<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">POST 08\/347 \u2013 Cleaner: Cleaning Service (X13 Posts)<\/h3>\n\n\n\n<p><strong>Ref No:<\/strong> 2026\/107<br><strong>Centre:<\/strong> Nelspruit Regional Office<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">POST 08\/348 \u2013 Cleaner: Cleaning Services (X23 Posts)<\/h3>\n\n\n\n<p><strong>Ref No:<\/strong> 2026\/108<br><strong>Centre:<\/strong> Pretoria Regional Office<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">POST 08\/349 \u2013 Cleaner: Cleaning Services (X6 Posts)<\/h3>\n\n\n\n<p><strong>Ref No:<\/strong> 2026\/109<br><strong>Centre:<\/strong> Gqeberha Regional Office<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">POST 08\/350 \u2013 Cleaners (X9 Posts)<\/h3>\n\n\n\n<p><strong>Centre:<\/strong> Polokwane Regional Office<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Lephalale Magistrate Court \u2013 Ref 2026\/110A (1)<\/li>\n\n\n\n<li>Mookgophong Magistrate Office \u2013 Ref 2026\/110B (2)<\/li>\n\n\n\n<li>Moutse Magistrate Court \u2013 Ref 2026\/110C (1)<\/li>\n\n\n\n<li>Bochum Magistrate Court \u2013 Ref 2026\/110D (1)<\/li>\n\n\n\n<li>Sibasa Regional Court \u2013 Ref 2026\/110E (1)<\/li>\n\n\n\n<li>Vuwani Magistrate Court \u2013 Ref 2026\/110F (2)<\/li>\n\n\n\n<li>Dzanani Magistrate Court \u2013 Ref 2026\/110G (1)<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Overview<\/h2>\n\n\n\n<p>The Cleaner will be responsible for maintaining cleanliness, hygiene and safety within court buildings, magistrate offices and regional offices. The role involves routine cleaning of offices, courtrooms, cells, kitchens and sanitation facilities to ensure a safe and professional working environment.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Minimum Requirements<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Minimum Grade 10 \/ Standard 8 \/ ABET Level 4 or equivalent<\/li>\n\n\n\n<li>No experience required<\/li>\n\n\n\n<li>Basic literacy and communication skills<\/li>\n\n\n\n<li>Good interpersonal skills<\/li>\n\n\n\n<li>Ability to perform routine cleaning tasks<\/li>\n\n\n\n<li>Knowledge of cleaning materials and equipment<\/li>\n\n\n\n<li>Ability to work physically for long hours<\/li>\n\n\n\n<li>Ability to handle cleaning chemicals and equipment<\/li>\n\n\n\n<li>Knowledge of occupational health and safety (advantageous)<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Key Responsibilities<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">General Cleaning Duties<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Sweep, mop, scrub and polish floors<\/li>\n\n\n\n<li>Dust and polish furniture<\/li>\n\n\n\n<li>Vacuum carpets<\/li>\n\n\n\n<li>Clean windows, doors and walls<\/li>\n\n\n\n<li>Strip and polish floors<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Sanitation Cleaning<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Clean toilets, basins and wall tiles<\/li>\n\n\n\n<li>Deep clean sanitation facilities<\/li>\n\n\n\n<li>Refill soap dispensers and toilet paper<\/li>\n\n\n\n<li>Wash toilet floors<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Kitchen Cleaning<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Wash kitchen floors<\/li>\n\n\n\n<li>Clean kitchen utensils<\/li>\n\n\n\n<li>Assist with tea and coffee during meetings<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Safety &amp; Maintenance Support<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Empty and clean dustbins<\/li>\n\n\n\n<li>Report defects noticed during cleaning<\/li>\n\n\n\n<li>Alert staff of slippery floors<\/li>\n\n\n\n<li>Inform supervisors of broken lights or locks<\/li>\n\n\n\n<li>Conduct stock count of cleaning materials<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">HOW TO APPLY<\/h2>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/www.google.com\/url?q=https%3A%2F%2Fzentrofly.com%2Fjobs%2Fapply-for-cleaner-cleaning-services-x51-posts-department-of-public-works-infrastructure-apply-by-20-march-2026%2F&amp;sa=D&amp;sntz=1&amp;usg=AOvVaw1zx83hh_zXbP2ci5nIf83L\">APPLY HERE<\/a><\/div>\n<\/div>\n\n\n\n<style type=\"text\/css\">@import url(\"https:\/\/assets.mlcdn.com\/fonts.css?version=1767876\");<\/style>\n    <style type=\"text\/css\">\n    \/* LOADER *\/\n    .ml-form-embedSubmitLoad {\n      display: inline-block;\n      width: 20px;\n      height: 20px;\n    }\n\n    .g-recaptcha {\n    transform: scale(1);\n    -webkit-transform: scale(1);\n    transform-origin: 0 0;\n    -webkit-transform-origin: 0 0;\n    height: ;\n    }\n\n    .sr-only {\n      position: absolute;\n      width: 1px;\n      height: 1px;\n      padding: 0;\n      margin: -1px;\n      overflow: hidden;\n      clip: rect(0,0,0,0);\n      border: 0;\n    }\n\n    .ml-form-embedSubmitLoad:after {\n      content: \" \";\n      display: block;\n      width: 11px;\n      height: 11px;\n      margin: 1px;\n      border-radius: 50%;\n      border: 4px solid #fff;\n    border-color: #ffffff #ffffff #ffffff transparent;\n    animation: ml-form-embedSubmitLoad 1.2s linear infinite;\n    }\n    @keyframes ml-form-embedSubmitLoad {\n      0% {\n      transform: rotate(0deg);\n      }\n      100% {\n      transform: rotate(360deg);\n      }\n    }\n      #mlb2-35568228.ml-form-embedContainer {\n        box-sizing: border-box;\n        display: table;\n        margin: 0 auto;\n        position: static;\n        width: 100% !important;\n      }\n      #mlb2-35568228.ml-form-embedContainer h4,\n      #mlb2-35568228.ml-form-embedContainer p,\n      #mlb2-35568228.ml-form-embedContainer span,\n      #mlb2-35568228.ml-form-embedContainer button {\n        text-transform: none !important;\n        letter-spacing: normal !important;\n      }\n      #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper {\n        background-color: #f6f6f6;\n        \n        border-width: 0px;\n        border-color: transparent;\n        border-radius: 4px;\n        border-style: solid;\n        box-sizing: border-box;\n        display: inline-block !important;\n        margin: 0;\n        padding: 0;\n        position: relative;\n              }\n      #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper.embedPopup,\n      #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper.embedDefault { width: 400px; }\n      #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper.embedForm { max-width: 400px; width: 100%; }\n      #mlb2-35568228.ml-form-embedContainer .ml-form-align-left { text-align: left; }\n      #mlb2-35568228.ml-form-embedContainer .ml-form-align-center { text-align: center; }\n      #mlb2-35568228.ml-form-embedContainer .ml-form-align-default { display: table-cell !important; vertical-align: middle !important; text-align: center !important; }\n      #mlb2-35568228.ml-form-embedContainer .ml-form-align-right { text-align: right; }\n      #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedHeader img {\n        border-top-left-radius: 4px;\n        border-top-right-radius: 4px;\n        height: auto;\n        margin: 0 auto !important;\n        max-width: 100%;\n        width: undefinedpx;\n      }\n      #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody,\n      #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-successBody {\n        padding: 20px 20px 0 20px;\n      }\n      #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody.ml-form-embedBodyHorizontal {\n        padding-bottom: 0;\n      }\n      #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-embedContent,\n      #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-successBody .ml-form-successContent {\n        text-align: left;\n        margin: 0 0 20px 0;\n      }\n      #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-embedContent h4,\n      #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-successBody .ml-form-successContent h4 {\n        color: #000000;\n        font-family: 'Open Sans', Arial, Helvetica, sans-serif;\n        font-size: 30px;\n        font-weight: 400;\n        margin: 0 0 10px 0;\n        text-align: left;\n        word-break: break-word;\n      }\n      #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-embedContent p,\n      #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-successBody .ml-form-successContent p {\n        color: #000000;\n        font-family: 'Open Sans', Arial, Helvetica, sans-serif;\n        font-size: 14px;\n        font-weight: 400;\n        line-height: 20px;\n        margin: 0 0 10px 0;\n        text-align: left;\n      }\n      #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-embedContent ul,\n      #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-embedContent ol,\n      #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-successBody .ml-form-successContent ul,\n      #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-successBody .ml-form-successContent ol {\n        color: #000000;\n        font-family: 'Open Sans', Arial, Helvetica, sans-serif;\n        font-size: 14px;\n      }\n      #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-embedContent ol ol,\n      #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-successBody .ml-form-successContent ol ol {\n        list-style-type: lower-alpha;\n      }\n      #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-embedContent ol ol ol,\n      #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-successBody .ml-form-successContent ol ol ol {\n        list-style-type: lower-roman;\n      }\n      #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-embedContent p a,\n      #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-successBody .ml-form-successContent p a {\n        color: #000000;\n        text-decoration: underline;\n      }\n\n      #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-block-form .ml-field-group {\n        text-align: left!important;\n      }\n\n      #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-block-form .ml-field-group label {\n        margin-bottom: 5px;\n        color: #333333;\n        font-size: 14px;\n        font-family: 'Open Sans', Arial, Helvetica, sans-serif;\n        font-weight: bold; font-style: normal; text-decoration: none;;\n        display: inline-block;\n        line-height: 20px;\n      }\n      #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-embedContent p:last-child,\n      #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-successBody .ml-form-successContent p:last-child {\n        margin: 0;\n      }\n      #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody form {\n        margin: 0;\n        width: 100%;\n      }\n      #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-formContent,\n      #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-checkboxRow {\n        margin: 0 0 20px 0;\n        width: 100%;\n      }\n      #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-checkboxRow {\n        float: left;\n      }\n      #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-formContent.horozintalForm {\n        margin: 0;\n        padding: 0 0 20px 0;\n        width: 100%;\n        height: auto;\n        float: left;\n      }\n      #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-fieldRow {\n        margin: 0 0 10px 0;\n        width: 100%;\n      }\n      #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-fieldRow.ml-last-item {\n        margin: 0;\n      }\n      #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-fieldRow.ml-formfieldHorizintal {\n        margin: 0;\n      }\n      #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-fieldRow input {\n        background-color: #ffffff !important;\n        color: #333333 !important;\n        border-color: #cccccc;\n        border-radius: 4px !important;\n        border-style: solid !important;\n        border-width: 1px !important;\n        font-family: 'Open Sans', Arial, Helvetica, sans-serif;\n        font-size: 14px !important;\n        height: auto;\n        line-height: 21px !important;\n        margin-bottom: 0;\n        margin-top: 0;\n        margin-left: 0;\n        margin-right: 0;\n        padding: 10px 10px !important;\n        width: 100% !important;\n        box-sizing: border-box !important;\n        max-width: 100% !important;\n      }\n      #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-fieldRow input::-webkit-input-placeholder,\n      #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-horizontalRow input::-webkit-input-placeholder { color: #333333; }\n\n      #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-fieldRow input::-moz-placeholder,\n      #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-horizontalRow input::-moz-placeholder { color: #333333; }\n\n      #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-fieldRow input:-ms-input-placeholder,\n      #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-horizontalRow input:-ms-input-placeholder { color: #333333; }\n\n      #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-fieldRow input:-moz-placeholder,\n      #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-horizontalRow input:-moz-placeholder { color: #333333; }\n\n      #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-fieldRow textarea, #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-horizontalRow textarea {\n        background-color: #ffffff !important;\n        color: #333333 !important;\n        border-color: #cccccc;\n        border-radius: 4px !important;\n        border-style: solid !important;\n        border-width: 1px !important;\n        font-family: 'Open Sans', Arial, Helvetica, sans-serif;\n        font-size: 14px !important;\n        height: auto;\n        line-height: 21px !important;\n        margin-bottom: 0;\n        margin-top: 0;\n        padding: 10px 10px !important;\n        width: 100% !important;\n        box-sizing: border-box !important;\n        max-width: 100% !important;\n      }\n\n      #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-fieldRow .custom-radio .custom-control-label::before, #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-horizontalRow .custom-radio .custom-control-label::before, #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-fieldRow .custom-checkbox .custom-control-label::before, #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-horizontalRow .custom-checkbox .custom-control-label::before, #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-embedPermissions .ml-form-embedPermissionsOptionsCheckbox .label-description::before, #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-interestGroupsRow .ml-form-interestGroupsRowCheckbox .label-description::before, #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-checkboxRow .label-description::before {\n          border-color: #cccccc!important;\n          background-color: #ffffff!important;\n      }\n\n      #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-fieldRow input.custom-control-input[type=\"checkbox\"]{\n        box-sizing: border-box;\n        padding: 0;\n        position: absolute;\n        z-index: -1;\n        opacity: 0;\n        margin-top: 5px;\n        margin-left: -1.5rem;\n        overflow: visible;\n      }\n\n      #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-fieldRow .custom-checkbox .custom-control-label::before, #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-horizontalRow .custom-checkbox .custom-control-label::before, #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-embedPermissions .ml-form-embedPermissionsOptionsCheckbox .label-description::before, #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-interestGroupsRow .ml-form-interestGroupsRowCheckbox .label-description::before, #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-checkboxRow .label-description::before {\n        border-radius: 4px!important;\n      }\n\n\n      #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-checkboxRow input[type=checkbox]:checked~.label-description::after, #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-embedPermissions .ml-form-embedPermissionsOptionsCheckbox input[type=checkbox]:checked~.label-description::after, #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-fieldRow .custom-checkbox .custom-control-input:checked~.custom-control-label::after, #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-horizontalRow .custom-checkbox .custom-control-input:checked~.custom-control-label::after, #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-interestGroupsRow .ml-form-interestGroupsRowCheckbox input[type=checkbox]:checked~.label-description::after {\n        background-image: url(\"data:image\/svg+xml,%3csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'\/%3e%3c\/svg%3e\");\n      }\n\n      #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-fieldRow .custom-radio .custom-control-input:checked~.custom-control-label::after, #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-fieldRow .custom-radio .custom-control-input:checked~.custom-control-label::after {\n        background-image: url(\"data:image\/svg+xml,%3csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'\/%3e%3c\/svg%3e\");\n      }\n\n      #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-fieldRow .custom-radio .custom-control-input:checked~.custom-control-label::before, #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-horizontalRow .custom-radio .custom-control-input:checked~.custom-control-label::before, #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-fieldRow .custom-checkbox .custom-control-input:checked~.custom-control-label::before, #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-horizontalRow .custom-checkbox .custom-control-input:checked~.custom-control-label::before, #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-embedPermissions .ml-form-embedPermissionsOptionsCheckbox input[type=checkbox]:checked~.label-description::before, #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-interestGroupsRow .ml-form-interestGroupsRowCheckbox input[type=checkbox]:checked~.label-description::before, #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-checkboxRow input[type=checkbox]:checked~.label-description::before  {\n          border-color: #000000!important;\n          background-color: #000000!important;\n      }\n\n      #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-fieldRow .custom-radio .custom-control-label::before, #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-horizontalRow .custom-radio .custom-control-label::before, #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-fieldRow .custom-radio .custom-control-label::after, #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-horizontalRow .custom-radio .custom-control-label::after, #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-fieldRow .custom-checkbox .custom-control-label::before, #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-fieldRow .custom-checkbox .custom-control-label::after, #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-horizontalRow .custom-checkbox .custom-control-label::before, #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-horizontalRow .custom-checkbox .custom-control-label::after {\n           top: 2px;\n           box-sizing: border-box;\n      }\n\n      #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-embedPermissions .ml-form-embedPermissionsOptionsCheckbox .label-description::before, #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-embedPermissions .ml-form-embedPermissionsOptionsCheckbox .label-description::after, #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-checkboxRow .label-description::before, #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-checkboxRow .label-description::after {\n           top: 0px!important;\n           box-sizing: border-box!important;\n      }\n\n      #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-checkboxRow .label-description::before, #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-checkboxRow .label-description::after {\n        top: 0px!important;\n           box-sizing: border-box!important;\n      }\n\n       #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-interestGroupsRow .ml-form-interestGroupsRowCheckbox .label-description::after {\n            top: 0px!important;\n            box-sizing: border-box!important;\n            position: absolute;\n            left: -1.5rem;\n            display: block;\n            width: 1rem;\n            height: 1rem;\n            content: \"\";\n       }\n\n      #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-interestGroupsRow .ml-form-interestGroupsRowCheckbox .label-description::before {\n        top: 0px!important;\n        box-sizing: border-box!important;\n      }\n\n      #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .custom-control-label::before {\n          position: absolute;\n          top: 4px;\n          left: -1.5rem;\n          display: block;\n          width: 16px;\n          height: 16px;\n          pointer-events: none;\n          content: \"\";\n          background-color: #ffffff;\n          border: #adb5bd solid 1px;\n          border-radius: 50%;\n      }\n\n      #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .custom-control-label::after {\n          position: absolute;\n          top: 2px!important;\n          left: -1.5rem;\n          display: block;\n          width: 1rem;\n          height: 1rem;\n          content: \"\";\n      }\n\n      #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-embedPermissions .ml-form-embedPermissionsOptionsCheckbox .label-description::before, #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-interestGroupsRow .ml-form-interestGroupsRowCheckbox .label-description::before, #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-checkboxRow .label-description::before {\n          position: absolute;\n          top: 4px;\n          left: -1.5rem;\n          display: block;\n          width: 16px;\n          height: 16px;\n          pointer-events: none;\n          content: \"\";\n          background-color: #ffffff;\n          border: #adb5bd solid 1px;\n          border-radius: 50%;\n      }\n\n      #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-embedPermissions .ml-form-embedPermissionsOptionsCheckbox .label-description::after {\n          position: absolute;\n          top: 0px!important;\n          left: -1.5rem;\n          display: block;\n          width: 1rem;\n          height: 1rem;\n          content: \"\";\n      }\n\n      #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-checkboxRow .label-description::after {\n          position: absolute;\n          top: 0px!important;\n          left: -1.5rem;\n          display: block;\n          width: 1rem;\n          height: 1rem;\n          content: \"\";\n      }\n\n      #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .custom-radio .custom-control-label::after {\n          background: no-repeat 50%\/50% 50%;\n      }\n      #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .custom-checkbox .custom-control-label::after, #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-embedPermissions .ml-form-embedPermissionsOptionsCheckbox .label-description::after, #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-interestGroupsRow .ml-form-interestGroupsRowCheckbox .label-description::after, #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-checkboxRow .label-description::after {\n          background: no-repeat 50%\/50% 50%;\n      }\n\n      #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-fieldRow .custom-control, #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-horizontalRow .custom-control {\n        position: relative;\n        display: block;\n        min-height: 1.5rem;\n        padding-left: 1.5rem;\n      }\n\n      #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-fieldRow .custom-radio .custom-control-input, #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-horizontalRow .custom-radio .custom-control-input, #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-fieldRow .custom-checkbox .custom-control-input, #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-horizontalRow .custom-checkbox .custom-control-input {\n          position: absolute;\n          z-index: -1;\n          opacity: 0;\n          box-sizing: border-box;\n          padding: 0;\n      }\n\n      #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-fieldRow .custom-radio .custom-control-label, #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-horizontalRow .custom-radio .custom-control-label, #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-fieldRow .custom-checkbox .custom-control-label, #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-horizontalRow .custom-checkbox .custom-control-label {\n          color: #000000;\n          font-size: 12px!important;\n          font-family: 'Open Sans', Arial, Helvetica, sans-serif;\n          line-height: 22px;\n          margin-bottom: 0;\n          position: relative;\n          vertical-align: top;\n          font-style: normal;\n          font-weight: 700;\n      }\n\n      #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-fieldRow .custom-select, #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-horizontalRow .custom-select {\n        background-color: #ffffff !important;\n        color: #333333 !important;\n        border-color: #cccccc;\n        border-radius: 4px !important;\n        border-style: solid !important;\n        border-width: 1px !important;\n        font-family: 'Open Sans', Arial, Helvetica, sans-serif;\n        font-size: 14px !important;\n        line-height: 20px !important;\n        margin-bottom: 0;\n        margin-top: 0;\n        padding: 10px 28px 10px 12px !important;\n        width: 100% !important;\n        box-sizing: border-box !important;\n        max-width: 100% !important;\n        height: auto;\n        display: inline-block;\n        vertical-align: middle;\n        background: url('https:\/\/assets.mlcdn.com\/ml\/images\/default\/dropdown.svg') no-repeat right .75rem center\/8px 10px;\n        -webkit-appearance: none;\n        -moz-appearance: none;\n        appearance: none;\n      }\n\n\n      #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-horizontalRow {\n        height: auto;\n        width: 100%;\n        float: left;\n      }\n      .ml-form-formContent.horozintalForm .ml-form-horizontalRow .ml-input-horizontal { width: 70%; float: left; }\n      .ml-form-formContent.horozintalForm .ml-form-horizontalRow .ml-button-horizontal { width: 30%; float: left; }\n      .ml-form-formContent.horozintalForm .ml-form-horizontalRow .ml-button-horizontal.labelsOn { padding-top: 25px;  }\n      .ml-form-formContent.horozintalForm .ml-form-horizontalRow .horizontal-fields { box-sizing: border-box; float: left; padding-right: 10px;  }\n      #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-horizontalRow input {\n        background-color: #ffffff;\n        color: #333333;\n        border-color: #cccccc;\n        border-radius: 4px;\n        border-style: solid;\n        border-width: 1px;\n        font-family: 'Open Sans', Arial, Helvetica, sans-serif;\n        font-size: 14px;\n        line-height: 20px;\n        margin-bottom: 0;\n        margin-top: 0;\n        padding: 10px 10px;\n        width: 100%;\n        box-sizing: border-box;\n        overflow-y: initial;\n      }\n      #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-horizontalRow button {\n        background-color: #000000 !important;\n        border-color: #000000;\n        border-style: solid;\n        border-width: 1px;\n        border-radius: 4px;\n        box-shadow: none;\n        color: #ffffff !important;\n        cursor: pointer;\n        font-family: 'Open Sans', Arial, Helvetica, sans-serif;\n        font-size: 14px !important;\n        font-weight: 700;\n        line-height: 20px;\n        margin: 0 !important;\n        padding: 10px !important;\n        width: 100%;\n        height: auto;\n      }\n      #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-horizontalRow button:hover {\n        background-color: #333333 !important;\n        border-color: #333333 !important;\n      }\n      #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-checkboxRow input[type=\"checkbox\"] {\n        box-sizing: border-box;\n        padding: 0;\n        position: absolute;\n        z-index: -1;\n        opacity: 0;\n        margin-top: 5px;\n        margin-left: -1.5rem;\n        overflow: visible;\n      }\n      #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-checkboxRow .label-description {\n        color: #000000;\n        display: block;\n        font-family: 'Open Sans', Arial, Helvetica, sans-serif;\n        font-size: 12px;\n        text-align: left;\n        margin-bottom: 0;\n        position: relative;\n        vertical-align: top;\n      }\n      #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-checkboxRow label {\n        font-weight: normal;\n        margin: 0;\n        padding: 0;\n        position: relative;\n        display: block;\n        min-height: 24px;\n        padding-left: 24px;\n\n      }\n      #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-checkboxRow label a {\n        color: #000000;\n        text-decoration: underline;\n      }\n      #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-checkboxRow label p {\n        color: #000000 !important;\n        font-family: 'Open Sans', Arial, Helvetica, sans-serif !important;\n        font-size: 12px !important;\n        font-weight: normal !important;\n        line-height: 18px !important;\n        padding: 0 !important;\n        margin: 0 5px 0 0 !important;\n      }\n      #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-checkboxRow label p:last-child {\n        margin: 0;\n      }\n      #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-embedSubmit {\n        margin: 0 0 20px 0;\n        float: left;\n        width: 100%;\n      }\n      #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-embedSubmit button {\n        background-color: #000000 !important;\n        border: none !important;\n        border-radius: 4px !important;\n        box-shadow: none !important;\n        color: #ffffff !important;\n        cursor: pointer;\n        font-family: 'Open Sans', Arial, Helvetica, sans-serif !important;\n        font-size: 14px !important;\n        font-weight: 700 !important;\n        line-height: 21px !important;\n        height: auto;\n        padding: 10px !important;\n        width: 100% !important;\n        box-sizing: border-box !important;\n      }\n      #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-embedSubmit button.loading {\n        display: none;\n      }\n      #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-embedSubmit button:hover {\n        background-color: #333333 !important;\n      }\n      .ml-subscribe-close {\n        width: 30px;\n        height: 30px;\n        background: url('https:\/\/assets.mlcdn.com\/ml\/images\/default\/modal_close.png') no-repeat;\n        background-size: 30px;\n        cursor: pointer;\n        margin-top: -10px;\n        margin-right: -10px;\n        position: absolute;\n        top: 0;\n        right: 0;\n      }\n      .ml-error input, .ml-error textarea, .ml-error select {\n        border-color: red!important;\n      }\n\n      .ml-error .custom-checkbox-radio-list {\n        border: 1px solid red !important;\n        border-radius: 4px;\n        padding: 10px;\n      }\n\n      .ml-error .label-description,\n      .ml-error .label-description p,\n      .ml-error .label-description p a,\n      .ml-error label:first-child {\n        color: #ff0000 !important;\n      }\n\n      #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-checkboxRow.ml-error .label-description p,\n      #mlb2-35568228.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-checkboxRow.ml-error .label-description p:first-letter {\n        color: #ff0000 !important;\n      }\n            @media only screen and (max-width: 400px){\n\n        .ml-form-embedWrapper.embedDefault, .ml-form-embedWrapper.embedPopup { width: 100%!important; }\n        .ml-form-formContent.horozintalForm { float: left!important; }\n        .ml-form-formContent.horozintalForm .ml-form-horizontalRow { height: auto!important; width: 100%!important; float: left!important; }\n        .ml-form-formContent.horozintalForm .ml-form-horizontalRow .ml-input-horizontal { width: 100%!important; }\n        .ml-form-formContent.horozintalForm .ml-form-horizontalRow .ml-input-horizontal > div { padding-right: 0px!important; padding-bottom: 10px; }\n        .ml-form-formContent.horozintalForm .ml-button-horizontal { width: 100%!important; }\n        .ml-form-formContent.horozintalForm .ml-button-horizontal.labelsOn { padding-top: 0px!important; }\n\n      }\n    <\/style>\n\n    \n  \n    \n    \n\n    \n    \n\n    \n    \n\n    \n\n      \n        \n        \n      \n\n      \n        \n        \n      \n\n      \n\n            \n            \n            \n            \n            \n            \n      \n\n      \n\n      \n        \n        \n         \n        \n        \n      \n\n        \n        \n        \n        \n        \n        \n      \n\n       \n\n        \n        \n        \n        \n        \n        \n        \n       \n\n\n      \n        \n        \n        \n        \n  \n\n\n\n  \n        \n        \n        \n      \n\n\n      \n    \n    \n    \n    \n    \n    \n    \n  \n\n  \n        \n        \n        \n        \n        \n      \n\n      \n        \n        \n        \n        \n        \n      \n\n      \n        \n        \n        \n        \n        \n      \n\n       \n\n        \n        \n        \n        \n       \n\n       \n        \n        \n        \n        \n      \n\n      \n        \n        \n        \n        \n        \n        \n        \n       \n\n    \n\n    \n\n\n      \n\n\n      \n\n      \n      \n\n      \n\n      \n\n\n\n\n\n    \n\n      \n    <div id=\"mlb2-35568228\" class=\"ml-form-embedContainer ml-subscribe-form ml-subscribe-form-35568228\">\n      <div class=\"ml-form-align-center \">\n        <div class=\"ml-form-embedWrapper embedForm\">\n\n          \n          \n\n          <div class=\"ml-form-embedBody ml-form-embedBodyDefault row-form\">\n\n            <div class=\"ml-form-embedContent\" style=\" \">\n              \n                <h4>\ud83d\udce9 Get New 2026 Jobs<\/h4>\n                <p>Enter your email below to receive daily updates<\/p>\n              \n            <\/div>\n\n            <form class=\"ml-block-form\" action=\"https:\/\/assets.mailerlite.com\/jsonp\/2027527\/forms\/176210834610980558\/subscribe\" data-code=\"\" method=\"post\" target=\"_blank\">\n              <div class=\"ml-form-formContent\">\n                \n\n                  \n                  <div class=\"ml-form-fieldRow ml-last-item\">\n                    <div class=\"ml-field-group ml-field-email ml-validate-email ml-validate-required\">\n\n                      \n\n\n                      <!-- input -->\n                      <input aria-label=\"email\" aria-required=\"true\" type=\"email\" class=\"form-control\" data-inputmask=\"\" name=\"fields[email]\" placeholder=\"Email\" autocomplete=\"email\">\n                      <!-- \/input -->\n\n                      <!-- textarea -->\n                      \n                      <!-- \/textarea -->\n\n                      <!-- select -->\n                      \n                      <!-- \/select -->\n\n                      <!-- checkboxes -->\n            \n            <!-- \/checkboxes -->\n\n                      <!-- radio -->\n                      \n                      <!-- \/radio -->\n\n                      <!-- countries -->\n                      \n                      <!-- \/countries -->\n\n\n\n\n\n                    <\/div>\n                  <\/div>\n                \n              <\/div>\n\n              \n\n              <!-- Privacy policy -->\n              \n              <!-- \/Privacy policy -->\n\n              \n\n              \n\n              \n\n\n\n\n\n\n              \n              <input type=\"hidden\" name=\"ml-submit\" value=\"1\">\n\n              <div class=\"ml-form-embedSubmit\">\n                \n                  <button type=\"submit\" class=\"primary\">SUBMIT YOUR EMAIL<\/button>\n                \n                <button disabled=\"disabled\" style=\"display: none;\" type=\"button\" class=\"loading\">\n                  <div class=\"ml-form-embedSubmitLoad\"><\/div>\n                  <span class=\"sr-only\">Loading&#8230;<\/span>\n                <\/button>\n              <\/div>\n\n              \n              <input type=\"hidden\" name=\"anticsrf\" value=\"true\">\n            <\/form>\n          <\/div>\n\n          <div class=\"ml-form-successBody row-success\" style=\"display: none\">\n\n            <div class=\"ml-form-successContent\">\n              \n                <h4>Thank you!<\/h4>\n                \n                  <p>You have successfully joined our subscriber list.<\/p>\n                \n              \n            <\/div>\n\n          <\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n\n  \n\n  \n  <script>\n    function ml_webform_success_35568228() {\n    try {\n        window.top.location.href = 'https:\/\/zentrofly.com\/jobs\/';\n      } catch (e) {\n        window.location.href = 'https:\/\/zentrofly.com\/jobs\/';\n      }\n    }\n      <\/script>\n  \n  \n  \n      <script src=\"https:\/\/groot.mailerlite.com\/js\/w\/webforms.min.js?v176e10baa5e7ed80d35ae235be3d5024\" type=\"text\/javascript\"><\/script>\n        <script>\n            fetch(\"https:\/\/assets.mailerlite.com\/jsonp\/2027527\/forms\/176210834610980558\/takel\")\n        <\/script>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Enquiries<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Nelspruit: Ms E Nkwinika \u2013 (013) 753 6396<\/li>\n\n\n\n<li>Pretoria: Mr S. Kutu \u2013 (012) 310 5993<\/li>\n\n\n\n<li>Gqeberha: Mr VR Maqetuka \u2013 (041) 408 2199<\/li>\n\n\n\n<li>Polokwane: Mr M.P. Morudu \u2013 (015) 291 6386<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\"><\/h1>\n","protected":false},"excerpt":{"rendered":"<p>Salary: R138 486 per annumClosing Date: 20 March 2026 The Department of Public Works &amp; Infrastructure invites applications for 51 Cleaner posts across various Regional Offices. Post Breakdown POST 08\/347 \u2013 Cleaner: Cleaning Service (X13 Posts) Ref No: 2026\/107Centre: Nelspruit Regional Office POST 08\/348 \u2013 Cleaner: Cleaning Services (X23 Posts) Ref No: 2026\/108Centre: Pretoria Regional Office POST 08\/349 \u2013 Cleaner: Cleaning Services (X6 Posts) Ref No: 2026\/109Centre: Gqeberha Regional Office POST 08\/350 \u2013 Cleaners (X9 Posts) Centre: Polokwane Regional Office&#8230;<\/p>\n<p class=\"read-more\"><a class=\"btn btn-default\" href=\"https:\/\/zentrofly.com\/jobs\/cleaner-cleaning-services-x51-posts-department-of-public-works-infrastructure-apply-by-20-march-2026\/\"> Read More<span class=\"screen-reader-text\">  Read More<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":26178,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[28,1],"tags":[],"class_list":["post-26177","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-government-vacancies","category-new-jobs"],"jetpack_featured_media_url":"https:\/\/zentrofly.com\/jobs\/wp-content\/uploads\/2026\/03\/image-10.png","jetpack_sharing_enabled":true,"jetpack-related-posts":[{"id":26444,"url":"https:\/\/zentrofly.com\/jobs\/department-of-public-works-infrastructure-and-department-of-defence-cleaner-vacancies-x60-posts-multiple-provinces-apply-by-7-april-2026-at-1600\/","url_meta":{"origin":26177,"position":0},"title":"Department of Public Works &amp; Infrastructure and Department of Defence Cleaner Vacancies (X60 Posts) \u2013 Multiple Provinces \u2013 Apply by 7 April 2026 at 16:00","author":"admin","date":"March 30, 2026","format":false,"excerpt":"The Department of Public Works & Infrastructure together with the Department of Defence is recruiting a total of 60 Cleaner and Cleaning Supervisor posts across Gauteng, North West, Limpopo, Mpumalanga, Eastern Cape and Western Cape. These are government positions offering stable employment, market-related salaries and the opportunity to work within\u2026","rel":"","context":"In &quot;Register Your CV - NEW JOBS AVAILABLE&quot;","block_context":{"text":"Register Your CV - NEW JOBS AVAILABLE","link":"https:\/\/zentrofly.com\/jobs\/category\/new-jobs\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/zentrofly.com\/jobs\/wp-content\/uploads\/2025\/10\/image-35.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/zentrofly.com\/jobs\/wp-content\/uploads\/2025\/10\/image-35.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/zentrofly.com\/jobs\/wp-content\/uploads\/2025\/10\/image-35.png?resize=525%2C300&ssl=1 1.5x"},"classes":[]},{"id":26273,"url":"https:\/\/zentrofly.com\/jobs\/cleaners-department-of-public-works-roads-and-transport-apply-by-31-march-2026\/","url_meta":{"origin":26177,"position":1},"title":"Cleaners \u2013 Department of Public Works, Roads and Transport &#8211; Apply by 31 March 2026","author":"admin","date":"March 18, 2026","format":false,"excerpt":"Department of Public Works, Roads and Transport (DPWRT)Directorate: Property ManagementChief Directorate: Immovable Asset ManagementProgramme: Property ManagementReference No.: C\/M\/EHL\/136Level: 2Employment Type: PermanentSalary: R138 486 per annumClosing Date: 31 March 2026 at 12h00 Overview The Department of Public Works, Roads and Transport is inviting applications for a Cleaner position at the Malekutu\u2026","rel":"","context":"In &quot;Register Your CV - NEW JOBS AVAILABLE&quot;","block_context":{"text":"Register Your CV - NEW JOBS AVAILABLE","link":"https:\/\/zentrofly.com\/jobs\/category\/new-jobs\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":25488,"url":"https:\/\/zentrofly.com\/jobs\/department-of-public-works-cleaner-x38-multiple-regions\/","url_meta":{"origin":26177,"position":2},"title":"Department of Public Works Cleaner X38 \u2013 Multiple Regions","author":"admin","date":"January 16, 2026","format":false,"excerpt":"Organisation: Department of Public WorksJob Type: PermanentSalary: R138,486 per annumClosing Date: As per regional submissions (apply immediately) The Department of Public Works (DPW) invites applications from suitably qualified candidates to apply for multiple Cleaner positions across Johannesburg, Mmabatho (North West), Cape Town (Western Cape), and Bloemfontein (Free State). These entry-level\u2026","rel":"","context":"In &quot;January 2026 Jobs&quot;","block_context":{"text":"January 2026 Jobs","link":"https:\/\/zentrofly.com\/jobs\/category\/january-2026-jobs\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/zentrofly.com\/jobs\/wp-content\/uploads\/2026\/01\/image-24.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/zentrofly.com\/jobs\/wp-content\/uploads\/2026\/01\/image-24.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/zentrofly.com\/jobs\/wp-content\/uploads\/2026\/01\/image-24.png?resize=525%2C300&ssl=1 1.5x"},"classes":[]},{"id":24190,"url":"https:\/\/zentrofly.com\/jobs\/cleaner-ii-6-positions-department-of-health-north-west-province-klerksdorp-tshepong-hospital-complex-tshepong-hospital-provincial-laundry-apply-by-18-october-2\/","url_meta":{"origin":26177,"position":3},"title":"Cleaner II (6 Positions) \u2013 Department of Health, North West Province \u2013 Klerksdorp\/Tshepong Hospital Complex &amp; Tshepong Hospital (Provincial Laundry) \u2013 Apply by 18 October 2025","author":"admin","date":"October 7, 2025","format":false,"excerpt":"Job Opportunity: Location: Klerksdorp\/Tshepong Hospital Complex (5 posts) & Tshepong Hospital \u2013 Provincial Laundry (1 post), Klerksdorp, North WestClosing Date: 18 October 2025Position Type: Permanent, Full-Time (Public Service)Level: 2 (Public Service)Reference: NWH 08\/2025\/41Salary: R138,486 per annum (plus benefits)Vacancy Circular: North West Department of Health, Circular No. 08 of 2025\/26 Overview\u2026","rel":"","context":"In &quot;Register Your CV - NEW JOBS AVAILABLE&quot;","block_context":{"text":"Register Your CV - NEW JOBS AVAILABLE","link":"https:\/\/zentrofly.com\/jobs\/category\/new-jobs\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/zentrofly.com\/jobs\/wp-content\/uploads\/2025\/10\/image-2.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/zentrofly.com\/jobs\/wp-content\/uploads\/2025\/10\/image-2.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/zentrofly.com\/jobs\/wp-content\/uploads\/2025\/10\/image-2.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/zentrofly.com\/jobs\/wp-content\/uploads\/2025\/10\/image-2.png?resize=700%2C400&ssl=1 2x"},"classes":[]},{"id":26115,"url":"https:\/\/zentrofly.com\/jobs\/cleaner-x67-posts-department-of-health-charlotte-maxeke-johannesburg-academic-hospital\/","url_meta":{"origin":26177,"position":4},"title":"Cleaner (X67 Posts) \u2013 Department of Health \u2013 Charlotte Maxeke Johannesburg Academic Hospital","author":"admin","date":"March 3, 2026","format":false,"excerpt":"Reference Number: refs\/035651Directorate: Logistics DepartmentLocation: Charlotte Maxeke Johannesburg Academic HospitalSalary: R138 486 per annum (plus benefits)Closing Date: 12 March 2026 Overview The Department of Health is inviting applications for 67 Cleaner positions at Charlotte Maxeke Johannesburg Academic Hospital. This is a re-advertisement for individuals committed to maintaining high standards of\u2026","rel":"","context":"In &quot;Government Vacancies&quot;","block_context":{"text":"Government Vacancies","link":"https:\/\/zentrofly.com\/jobs\/category\/government-vacancies\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/zentrofly.com\/jobs\/wp-content\/uploads\/2025\/10\/image-34.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/zentrofly.com\/jobs\/wp-content\/uploads\/2025\/10\/image-34.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/zentrofly.com\/jobs\/wp-content\/uploads\/2025\/10\/image-34.png?resize=525%2C300&ssl=1 1.5x"},"classes":[]},{"id":27035,"url":"https:\/\/zentrofly.com\/jobs\/cleaner-department-of-health-and-wellness-western-cape-apply-by-24-april-2026\/","url_meta":{"origin":26177,"position":5},"title":"Cleaner \u2013 Department of Health and Wellness (Western Cape) \u2013 Apply by 24 April 2026","author":"admin","date":"April 21, 2026","format":false,"excerpt":"Job Opportunity: Location: Malmesbury CDC, Swartland Sub-district, Western Cape, South AfricaClosing Date: 24 April 2026Position Type: Permanent Overview The Western Cape Department of Health and Wellness is inviting applications for a Cleaner position at Malmesbury CDC. This role is ideal for individuals with cleaning experience in a healthcare environment who\u2026","rel":"","context":"In &quot;Register Your CV - NEW JOBS AVAILABLE&quot;","block_context":{"text":"Register Your CV - NEW JOBS AVAILABLE","link":"https:\/\/zentrofly.com\/jobs\/category\/new-jobs\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/zentrofly.com\/jobs\/wp-content\/uploads\/2026\/04\/image-34.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/zentrofly.com\/jobs\/wp-content\/uploads\/2026\/04\/image-34.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/zentrofly.com\/jobs\/wp-content\/uploads\/2026\/04\/image-34.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/zentrofly.com\/jobs\/wp-content\/uploads\/2026\/04\/image-34.png?resize=700%2C400&ssl=1 2x"},"classes":[]}],"_links":{"self":[{"href":"https:\/\/zentrofly.com\/jobs\/wp-json\/wp\/v2\/posts\/26177","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/zentrofly.com\/jobs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/zentrofly.com\/jobs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/zentrofly.com\/jobs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/zentrofly.com\/jobs\/wp-json\/wp\/v2\/comments?post=26177"}],"version-history":[{"count":1,"href":"https:\/\/zentrofly.com\/jobs\/wp-json\/wp\/v2\/posts\/26177\/revisions"}],"predecessor-version":[{"id":26180,"href":"https:\/\/zentrofly.com\/jobs\/wp-json\/wp\/v2\/posts\/26177\/revisions\/26180"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/zentrofly.com\/jobs\/wp-json\/wp\/v2\/media\/26178"}],"wp:attachment":[{"href":"https:\/\/zentrofly.com\/jobs\/wp-json\/wp\/v2\/media?parent=26177"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/zentrofly.com\/jobs\/wp-json\/wp\/v2\/categories?post=26177"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/zentrofly.com\/jobs\/wp-json\/wp\/v2\/tags?post=26177"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}