a:6:{i:0;s:7581:"					<section class="headBg theme2 ">
					<div class="wrap">
					<div class="page-title-inner fo"> 
					<div class="h1"><h1>Executive (for Validation & Qualification ) For Injectable Plant</h1></div>
					<p class="breadcrumb ar uu small"><a href="https://www.tdsindia.co.in/" title="Home">Home</a>
					
											<b class="ffv p2px">&rsaquo;</b><a href="https://www.tdsindia.co.in/current-jobs.htm" title="Current Jobs">Current Jobs</a>
																
					<b class="ffv p2px">&rsaquo;</b> Executive (for Validation & Qualification ) For Injectable Plant</p>
					</div>
					</div>
					</section>
									<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-->
				
								<p class="mb5px"><i class="fa fa-briefcase mr7px fl w15px alpha50"></i> 4 - 7 Years</p>
				
									<p class="mb10px"><i class="fa fa-map-marker mr7px fl pl1px w15px alpha50"></i>Solan, Baddi</p>
										
					<div>
					<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="277807">
					<input type="hidden" name="enq_type" value="2"><input type="hidden" name="vacancy_id" value="899360"><input type="hidden" name="subject" value="Applied for Executive (for Validation & Qualification ) for Injectable Plant">
					</form>
					</div>
			
						
				
				<br>
				<div class="bdrT pt20px">
				<p class="xlarge b">Job Description</p>
				<p class="aj mt10px">Knowledge Of:process Validation, Protocol Preparation,Dq/iq/oq/pq/rq, Vmp Preparation,Cleaning Validation & Media Fill,Risk Assessment, Calibration & Validation Etc. Minimum 4 Years in Injection / Ophthalmic / Osd Area.</p>
				
				<table class="w100 formTable bdr0 mt10px">				
											<tr>
							<td class="w22 alpha75 p5px">Salary</td>
							<td class="p5px"> 3  Lac  To  4  Lac  50 Thousand  P.A.</td>
							</tr>				
											
					<tr>
					<td class="w22 alpha75 p5px">Industry</td>
					<td class="p5px">Manufacturing / Production / Quality</td>
					</tr>
									<tr>
				<td class="w22 alpha75 p5px">Work Experience</td>
				<td class="p5px">4 - 7 Years</td>
				</tr>
									<tr>
					<td class="w22 alpha75 p5px">Qualification</td>
					<td class="p5px">B.Pharma, B.Sc, M.Pharma, M.Sc</td>
					</tr>					
									
				</table>
				
				
				</div>
				
				<br>
				<div class="bdrT pt20px">
									<p class="xlarge b">Key Skills</p>
					<div class="mt10px dif">
											<span class="bn dib p5px10px c2px headVr mr7px mb7px">Production Management</span>
											</div>
									</div>
				
				
				<br>
				<div class="bdrT pt20px">
				<p class="xlarge b">Company Profile</p>
				<div class="mt10px">
				
									<table class="w100 formTable bdr0 mt5px">
											<tr>
						<td class="w22 alpha75 p5px">Contact Person</td>
						<td class="p5px">Ravin Thakur</td>
						</tr>					
												<tr>
						<td class="w22 alpha75 p5px">Address</td>
						<td class="p5px">Sco-910, Nac Manimajra, Near Housing Board Red Light</td>
						</tr>					
												<tr>
						<td class="w22 alpha75 p5px">Mobile </td>
						<td class="p5px">8427691360 </td>
						</tr>
												<tr>
						<td class="w22 alpha75 p5px">Email ID</td>
						<td class="p5px"><a href="mailto:ravinthakur@tdsjob.com"> ravinthakur@tdsjob.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="277807">
					<input type="hidden" name="enq_type" value="2"><input type="hidden" name="vacancy_id" value="899360"><input type="hidden" name="subject" value="Applied for Executive (for Validation & Qualification ) for Injectable Plant">
					</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="h h2"><b class="plusMinus"></b>
				<h2>Jobs by Location</h2>
				</div>
				<div class="ic showHide_rp">
				<div class="mt10px">
									<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="jobs-in-solan.htm" title="Jobs in Solan">Solan</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="jobs-in-ludhiana.htm" title="Jobs in Ludhiana">Ludhiana</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="jobs-in-noida.htm" title="Jobs in Noida">Noida</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="jobs-in-mohali.htm" title="Jobs in Mohali">Mohali</a> <b class="alpha50 bn small">(1)</b></span>
									</div>
				</div>
				</div>
				</div>
				
				<div class="column_Box mc">
				<div class="tcl bullet divider">
				<div class="h h2"><b class="plusMinus"></b>
				<h2>Jobs by Functional Area</h2>
				</div>
				<div class="ic showHide_rp">
				<div class="mt10px">
									<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="jobs-in-human-resources-fid.htm" title="HR / Recruitment / Administration / IR Jobs">HR / Recruitment / Administration / IR</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="jobs-in-call-center-medical-transcription-fid.htm" title="ITES / BPO / KPO / LPO / Customer Service / Operations Jobs">ITES / BPO / KPO / LPO / Customer Service / Operations</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="jobs-in-manufacturing-production-fid.htm" title="Manufacturing / Production / Quality Jobs">Manufacturing / Production / Quality</a> <b class="alpha50 bn small">(3)</b></span>
									
				</div>
				</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: 'c3dna2NQVk5INnhUSG05MmVxMHFaZz09',data_type: 'RExzRmw1cmRsdlh6YkJlVUZBNnA4UT09'},
	  cache : false,
	  async: true
	  
	}).done(function(resp) {
	  //alert(resp)
	});
	</script>
	";i:1;s:128:"Executive (for Validation & Qualification ) for Injectable Plant Jobs in Solan - Vacancy in Manufacturing / Production / Quality";i:2;s:360:"Executive (for Validation & Qualification ) for Injectable Plant Jobs,Executive (for Validation & Qualification ) for Injectable Plant Jobs in Solan,Executive (for Validation & Qualification ) for Injectable Plant Vacancy in Solan,Executive (for Validation & Qualification ) for Injectable Plant jobs in India,Manufacturing / Production / Quality jobs in Solan";i:3;s:347:"Apply for Executive (for Validation & Qualification ) for Injectable Plant Jobs in Solan India - Executive (for Validation & Qualification ) for Injectable Plant Vacancy  in Manufacturing / Production / Quality field with 4 to 7 years Work Experience, Key Skills are Production Management, Manufacturing / Production / Quality jobs in Solan  India";i:4;s:988:"
		<script type="application/ld+json">
		{
		  "@context": "http://schema.org",
		  "@type": "JobPosting",
		  "title": "Executive (for Validation & Qualification ) for Injectable Plant",
		  "baseSalary": " 3  Lac  To  4  Lac  50 Thousand ",
		  "description": "Knowledge Of:process Validation, Protocol Preparation,Dq/iq/oq/pq/rq, Vmp Preparation,Cleaning Validation & Media Fill,Risk Assessment, Calibration & Validation Etc. Minimum 4 Years in Injection / Ophthalmic / Osd Area.",
		  "educationRequirements": "B.Pharma, B.Sc, M.Pharma, M.Sc",
		  "experienceRequirements": "4 - 7 Years",
		  "industry": "Manufacturing / Production / Quality",
		  "jobLocation": {
		    "@type": "Place",
		    "address": {
		      "@type": "PostalAddress",
		      "addressLocality": "Himachal Pradesh",
		      "addressRegion": "Solan, Baddi"
		    }
		  },
		 "qualifications": "B.Pharma, B.Sc, M.Pharma, M.Sc",
		     "skills": "Production Management"
		  }
		</script>
		";i:5;N;}