a:6:{i:0;s:6965:"				<section id="middle">
				<div class="wrap" id="bodyFormatNT">
				<div class="row1 dt columns23"><!--MIDDLE ROW1 STARTS-->
				<div class="col-2 wideColumn ip ls detail_pm_15"><!--MIDDLE ROW1 COL-2 STARTS-->
				
									<div class="h1"><h1>Job openings for chemist in afghanistan</h1></div>
					<p class="breadcrumb ar uu small"> <a href="http://www.diyahr.com/">Home</a>
					
											<b class="ffv p2px">&rsaquo;</b><a href="http://www.diyahr.com/current-opening.htm" title="Current Opening">Current Opening</a>  			
											
					<b class="ffv p2px">&rsaquo;</b> Job openings for chemist in afghanistan</p>
									<div class="pt10px">
				<div class="xxxlarge fw6 dif">Lab Chemist -- Afghanistan</div>
								
				<br>
				<p class="aj mt7px">Sustain Quality Correlation with Industry Standard and Customer Requirements.<br />
<br />
responsible for Compilation and Maintenance of Inspection Report and Record.<br />
<br />
coordinate and Perform External and Internal Audit Report.<br />
<br />
participate and Investigation of Faulty Work and Consulate with Customer and Management Team.<br />
 <br />
all other Duties as Required By the Supervisor. <br />
<br />
carry Out Routine Technical Tasks with Lab Equipment to Analyze Petroleum Product Using Astm, Ip and Iso Method.<br />
<br />
conduct Test and Report On Their Finding.<br />
<br />
handful Experience of Operating Gc, Flash Point, Cloud and Pour Point, Edxrf, Distillation, Density and Viscosity, Rvp, Ron and Mon., Freezing Point and Fia.<br />
<br />
qualification: B.sc. or Msc. Chemistry with Minimum 3 Years’ Experience in the Field of Oil and Gas from Petroleum Field (oil and Gas) Specifically Worked with Analysis and Instrumentation.</p>
				
				<table class="w100 formTable bdr0 mt20px">	
				<tr>
				<td class="w195 alpha75 p5px">Experience</td>
				<td class="p5px">3 - 9 Years</td>
				</tr>			
									<tr>
					<td class="alpha75 p5px">Salary</td>
					<td class="p5px">Not Disclosed</td>
					</tr>
									
					<tr>
					<td class="alpha75 p5px">Industry</td>
					<td class="p5px">Engineering / Technical / R&D</td>
					</tr>
									
									<tr>
					<td class="alpha75 p5px">Qualification</td>
					<td class="p5px">B.Sc, M.Sc</td>
					</tr>					
										<tr>
					<td class="alpha75 p5px">Key Skills</td>
					<td class="p5px">
											<span class="bdr dib p2px10px mr5px mt2px">Lab Chemist</span>
												<span class="bdr dib p2px10px mr5px mt2px"> Chemist</span>
												<span class="bdr dib p2px10px mr5px mt2px"> Lab Equipment</span>
											</td>
					</tr>
									
				</table>
				</div>
				<br>
				<div class="pt20px">
				<p class="large fw6">About Company</p>
				<div class="mt10px">
				
									<table class="w100 formTable bdr0 mt5px">
											<tr>
						<td class="w195 alpha75 p5px vat">Company Name</td>
						<td class="p5px vat"><p class="dif b">Client of Diya HR</p></td>
						</tr>
												<tr>
						<td class="w195 alpha75 p5px vat">About Company</td>
						<td class="p5px vat">It is an MNC Company into Oil & Gas Petroleum Field. Having their presence across globe.</td>
						</tr>
												<tr>
						<td class="w195 alpha75 p5px">Email ID</td>
						<td class="p5px"><a href="mailto:contact@diyahr.com"> contact@diyahr.com </a></td>
						</tr>
										
					</table>
									
				<br />
				
									
					<div class="bdrT pt20px">
					<form name="frmvacdetail" method="post" action="enquiry-form-10009.htm">
					<input style="padding:7px 15px;" class="button b ffos" type="submit" value="APPLY NOW !" />
					<input type="hidden" name="catalog_mi" value="314332">
					<input type="hidden" name="enq_type" value="2"><input type="hidden" name="vacancy_id" value="914795"><input type="hidden" name="subject" value="Applied for Lab Chemist -- Afghanistan">
					</form>
					</div>
			
									</div>
				</div>			
				
				<!--MIDDLE ROW1 COL-2 ENDS--> 
				</div>
				<div class="col-3 thinColumn"><!--MIDDLE ROW1 COL-1 STARTS-->
				
				<div class="column_Box mc">
				<div class="tcl bullet divider">
				<div class="large fw6 alpha75 p12px bdrB">
				<h2>Jobs by Location</h2>
				</div>
				<div class="ic">
				<div class="mt10px">
									<span class="dib p5px10px c2px bdr mr7px mb7px "><a class="dif" href="jobs-in-mumbai.htm" title="Jobs in Mumbai">Mumbai</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px bdr mr7px mb7px "><a class="dif" href="jobs-in-bangalore.htm" title="Jobs in Bangalore">Bangalore</a> <b class="alpha50 bn small">(1)</b></span>
											<span class="dib p5px10px c2px bdr mr7px mb7px "><a class="dif" href="jobs-in-afghanistan.htm" title="Jobs in Afghanistan">Afghanistan</a> <b class="alpha50 bn small">(2)</b></span>
										</div>
				</div>
				</div>
				</div>
				
				<div class="column_Box mc">
				<div class="tcl bullet divider">
				<div class="large fw6 alpha75 p12px bdrB">
				<h2>Jobs by Functional Area</h2>
				</div>
				<div style="padding:10px 18px;" class="ic">
									<p class="mb5px "><span class="fr">(2)</span><a href="jobs-in-engineering-technical-rd-fid.htm" title="Engineering / Technical / R&D Jobs">Engineering / Technical / R&D</a></p>
										<p class="mb5px "><span class="fr">(1)</span><a href="jobs-in-sales-marketing-fid.htm" title="Sales/Marketing Jobs">Sales/Marketing</a></p>
										<p class="mb5px "><span class="fr">(1)</span><a href="jobs-in-web-designing-programming-fid.htm" title="IT Software - Others Jobs">IT Software - Others</a></p>
										<p class="mb5px "><span class="fr">(1)</span><a href="jobs-in-accounting-tax-fid.htm" title="Accounting / Auditing / Taxation Jobs">Accounting / Auditing / Taxati...</a></p>
									
				</div>
				</div>
				</div>
				
				</div>
				<!--MIDDLE ROW1 COL-1 ENDS-->
				
				<!--MIDDLE ROW1 ENDS--> 
				</div>
				<br><br>
				</div>
				</section>
				<script>
					window.addEventListener("DOMContentLoaded", function(){
						jQuery(document).on("click", ".showallspan", function(){
							if(jQuery(this).attr("data-target") === 'show'){
								jQuery(this).text("View Less");
								jQuery(this).attr("data-target", "hide");
								jQuery(this).closest("div").find(".spanlist").removeClass("dn");
							}else{
								jQuery(this).text("View More");
								jQuery(this).attr("data-target", "show");
								jQuery(this).closest("div").find(".spanlist").addClass("dn");
							}
						});
					});
				</script>
					<script>
	$.ajax({
	  url: "https://www.placementindia.com/job_posting_view.php",
	  type: "POST",
	  dataType: 'html',
	  data: {job_view_id: 'V2pXRmh0RVo1M21EZk1nZHhObzVndz09',data_type: 'RExzRmw1cmRsdlh6YkJlVUZBNnA4UT09'},
	  cache : false,
	  async: true
	  
	}).done(function(resp) {
	  //alert(resp)
	});
	</script>
	";i:1;s:69:"Job openings for chemist in afghanistan | Diya HR Consultants Pvt Ltd";i:2;s:192:"Lab Chemist -- Afghanistan Jobs,Lab Chemist -- Afghanistan Jobs in ,Lab Chemist -- Afghanistan Vacancy in ,Lab Chemist -- Afghanistan jobs in Afghanistan,Engineering / Technical / R&D jobs in ";i:3;s:273:"Apply for Lab Chemist -- Afghanistan Jobs in  Afghanistan - Lab Chemist -- Afghanistan Vacancy  in Engineering / Technical / R&D field with 3 to 9 years Work Experience, Key Skills are Lab Chemist, Chemist, Lab Equipment, Engineering / Technical / R&D jobs in   Afghanistan";i:4;s:1507:"
		<script type="application/ld+json">
		{
		  "@context": "http://schema.org",
		  "@type": "JobPosting",
		  "title": "Lab Chemist -- Afghanistan",
		  "baseSalary": "",
		  "description": "Sustain Quality Correlation with Industry Standard and Customer Requirements.

responsible for Compilation and Maintenance of Inspection Report and Record.

coordinate and Perform External and Internal Audit Report.

participate and Investigation of Faulty Work and Consulate with Customer and Management Team.
 
all other Duties as Required By the Supervisor. 

carry Out Routine Technical Tasks with Lab Equipment to Analyze Petroleum Product Using Astm, Ip and Iso Method.

conduct Test and Report On Their Finding.

handful Experience of Operating Gc, Flash Point, Cloud and Pour Point, Edxrf, Distillation, Density and Viscosity, Rvp, Ron and Mon., Freezing Point and Fia.

qualification: B.sc. or Msc. Chemistry with Minimum 3 Years’ Experience in the Field of Oil and Gas from Petroleum Field (oil and Gas) Specifically Worked with Analysis and Instrumentation.",
		  "educationRequirements": "B.Sc, M.Sc",
		  "experienceRequirements": "3 - 9 Years",
		  "industry": "Engineering / Technical / R&D",
		  "jobLocation": {
		    "@type": "Place",
		    "address": {
		      "@type": "PostalAddress",
		      "addressLocality": "",
		      "addressRegion": ""
		    }
		  },
		 "qualifications": "B.Sc, M.Sc",
		     "skills": "Lab Chemist, Chemist, Lab Equipment"
		  }
		</script>
		";i:5;N;}