a:6:{i:0;s:13956:"				<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 quality control executive in kanpur</h1></div>
					<p class="breadcrumb ar uu small"> <a href="http://www.abhassconsultancy.com/">Home</a>
					
											<b class="ffv p2px">&rsaquo;</b><a href="http://www.abhassconsultancy.com/current-jobs.htm" title="Current Jobs">Current Jobs</a>  			
											
					<b class="ffv p2px">&rsaquo;</b> Job openings for quality control executive in kanpur</p>
									<div class="pt10px">
				<div class="xxxlarge fw6 dif">Quality Control Executive</div>
									<p class="mt7px fw6">Kanpur</p>
									
				<br>
				<p class="aj mt7px">Work in manufacturing line<br />
 B.Sc and textile line only boys               <br />
Minimum 2 to 5 year experience   <br />
Job responsibilities of QC department in textile industries:<br />
    Participate in market report/feedback discussions to understand properly what the market demands.<br />
    Interpret market demand in terms of quality characteristics/ parameters.<br />
    Cooperate product planning and production department in designing the production plan.<br />
    Design quality plan i.e. design the quality parameters of basic raw materials (for example, fiber, quality for yarn, yarn quality for fabric, grey quality for fabric, grey fabric quality for finished fabrics etc).<br />
    Make the purchase or procurement deportee aware of the quality needed for raw materials so that they can also properly demand and purchase the things exactly needed.<br />
    Test the suppliers samples and report it to concerned department (top management, production and purchase dept. informing the deviating, if any; and also suggest for alternate.<br />
    Design quality of intermediaries/ semi products (e.g. lap, sliver, roving etc. for yarn manufacturing; sized/colored yarn in weaving; de-sized and bleached fabrics in wet processing etc.). So, the designed product is achieved.<br />
    Communicate the production dept. is with the plan of quality.<br />
    Design process control chart and implement process control accordingly.<br />
    Collect samples as per plan and standard.<br />
    Conduct routine and non-routine tests as per recommended standard.<br />
    Record and properly document test result.<br />
    Interpret test results and distribute suggestion as how the concerned depts. will fight defect already generated and from being generated.<br />
    Report to operational and maintenance in chief as soon as any quality deterioration is detected to undertake necessary action. In case serious problems, communicate top management.<br />
    Test the packed and stocked material from time to time to avoid any damage.<br />
    Prepare daily, weekly</p>
				
				<table class="w100 formTable bdr0 mt20px">	
				<tr>
				<td class="w195 alpha75 p5px">Experience</td>
				<td class="p5px">2 - 5 Years</td>
				</tr>			
											<tr>
							<td class="alpha75 p5px">Salary</td>
							<td class="p5px"> 90 Thousand  To  1  Lac  25 Thousand  P.A.</td>
							</tr>				
											
					<tr>
					<td class="alpha75 p5px">Industry</td>
					<td class="p5px">Manufacturing / Production / Quality</td>
					</tr>
									
									<tr>
					<td class="alpha75 p5px">Qualification</td>
					<td class="p5px">B.Sc</td>
					</tr>					
										<tr>
					<td class="alpha75 p5px">Key Skills</td>
					<td class="p5px">
											<span class="bdr dib p2px10px mr5px mt2px">Quality Control</span>
												<span class="bdr dib p2px10px mr5px mt2px"> quality management</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">Contact Person</td>
						<td class="p5px">Miss Shreya / Kamlesh</td>
						</tr>					
												<tr>
						<td class="w195 alpha75 p5px">Address</td>
						<td class="p5px">3rd Floor, Ajanta Tower, 282 A B C, Express Road, The Mall</td>
						</tr>					
												<tr>
						<td class="w195 alpha75 p5px">Mobile </td>
						<td class="p5px">9598277888 </td>
						</tr>
												<tr>
						<td class="w195 alpha75 p5px">Email ID</td>
						<td class="p5px"><a href="mailto:employers@abhassconsultancy.com"> employers@abhassconsultancy.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="335037">
					<input type="hidden" name="enq_type" value="2"><input type="hidden" name="vacancy_id" value="862559"><input type="hidden" name="subject" value="Applied for Quality Control Executive">
					</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-kanpur.htm" title="Jobs in Kanpur">Kanpur</a> <b class="alpha50 bn small">(64)</b></span>
										<span class="dib p5px10px c2px bdr mr7px mb7px "><a class="dif" href="jobs-in-lucknow.htm" title="Jobs in Lucknow">Lucknow</a> <b class="alpha50 bn small">(4)</b></span>
										<span class="dib p5px10px c2px bdr mr7px mb7px "><a class="dif" href="jobs-in-bulandshahr.htm" title="Jobs in Bulandshahr">Bulandshahr</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px bdr mr7px mb7px "><a class="dif" href="jobs-in-unnao.htm" title="Jobs in Unnao">Unnao</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px bdr mr7px mb7px "><a class="dif" href="jobs-in-indore.htm" title="Jobs in Indore">Indore</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px bdr mr7px mb7px "><a class="dif" href="jobs-in-jaipur.htm" title="Jobs in Jaipur">Jaipur</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px bdr mr7px mb7px "><a class="dif" href="jobs-in-patna.htm" title="Jobs in Patna">Patna</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px bdr mr7px mb7px "><a class="dif" href="jobs-in-aligarh.htm" title="Jobs in Aligarh">Aligarh</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px bdr mr7px mb7px "><a class="dif" href="jobs-in-bareilly.htm" title="Jobs in Bareilly">Bareilly</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px bdr mr7px mb7px "><a class="dif" href="jobs-in-meerut.htm" title="Jobs in Meerut">Meerut</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px bdr mr7px mb7px "><a class="dif" href="jobs-in-mirzapur.htm" title="Jobs in Mirzapur">Mirzapur</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px bdr mr7px mb7px spanlist dn"><a class="dif" href="jobs-in-moradabad.htm" title="Jobs in Moradabad">Moradabad</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px bdr mr7px mb7px spanlist dn"><a class="dif" href="jobs-in-saharanpur.htm" title="Jobs in Saharanpur">Saharanpur</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px bdr mr7px mb7px spanlist dn"><a class="dif" href="jobs-in-varanasi.htm" title="Jobs in Varanasi">Varanasi</a> <b class="alpha50 bn small">(1)</b></span>
											<span class="dib p5px10px c2px bdr mr7px mb7px spanlist dn"><a class="dif" href="jobs-in-brazil.htm" title="Jobs in Brazil">Brazil</a> <b class="alpha50 bn small">(2)</b></span>
											<span class="uu db ar"><a class="showallspan" data-target="show" href="javascript:void(0)" >View More</a></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">(16)</span><a href="jobs-in-sales-marketing-fid.htm" title="Sales/Marketing Jobs">Sales/Marketing</a></p>
										<p class="mb5px "><span class="fr">(10)</span><a href="jobs-in-manufacturing-production-fid.htm" title="Manufacturing / Production / Quality Jobs">Manufacturing / Production / Q...</a></p>
										<p class="mb5px "><span class="fr">(9)</span><a href="jobs-in-accounting-tax-fid.htm" title="Accounting / Auditing / Taxation Jobs">Accounting / Auditing / Taxati...</a></p>
										<p class="mb5px "><span class="fr">(5)</span><a href="jobs-in-medical-health-care-hospitals-fid.htm" title="Medical / Health Care / Hospitals Jobs">Medical / Health Care / Hospit...</a></p>
										<p class="mb5px "><span class="fr">(5)</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">(5)</span><a href="jobs-in-education-teaching-training-counselling-fid.htm" title="Education / Teaching / Training / Counselling / Academic Jobs">Education / Teaching / Trainin...</a></p>
										<p class="mb5px "><span class="fr">(4)</span><a href="jobs-in-banking-investment-fid.htm" title="Banking / Investments / Stock Market / Financial Services Jobs">Banking / Investments / Stock ...</a></p>
										<p class="mb5px "><span class="fr">(3)</span><a href="jobs-in-human-resources-fid.htm" title="HR / Recruitment / Administration / IR Jobs">HR / Recruitment / Administrat...</a></p>
										<p class="mb5px "><span class="fr">(3)</span><a href="jobs-in-front-office-data-entry-fid.htm" title="Front Office / Executive Assistant / Data Entry Jobs">Front Office / Executive Assis...</a></p>
										<p class="mb5px "><span class="fr">(3)</span><a href="jobs-in-export-import-merchandising-fid.htm" title="Export / Import / Merchandising Jobs">Export / Import / Merchandisin...</a></p>
										<p class="mb5px "><span class="fr">(2)</span><a href="jobs-in-corporate-planning-fid.htm" title="Corporate Planning & Strategy / Management Consulting Jobs">Corporate Planning & Strategy ...</a></p>
										<p class="mb5px spanlist dn"><span class="fr">(2)</span><a href="jobs-in-oil-gas-petroleum-fid.htm" title="Oil / Gas / Petroleum Jobs">Oil / Gas / Petroleum</a></p>
										<p class="mb5px spanlist dn"><span class="fr">(2)</span><a href="jobs-in-application-programming-fid.htm" title="IT Software - Application Programming / Maintenance Jobs">IT Software - Application Prog...</a></p>
										<p class="mb5px spanlist dn"><span class="fr">(1)</span><a href="jobs-in-computers-it-fid.htm" title="IT Hardware / Technical Support / Telecom Engineering Jobs">IT Hardware / Technical Suppor...</a></p>
										<p class="mb5px spanlist dn"><span class="fr">(1)</span><a href="jobs-in-purchase-supply-chain-fid.htm" title="Purchase / Supply Chain Jobs">Purchase / Supply Chain</a></p>
										<p class="mb5px spanlist dn"><span class="fr">(1)</span><a href="jobs-in-merchandser-fid.htm" title="Fashion Designing & Merchandising Jobs">Fashion Designing & Merchandis...</a></p>
										<p class="mb5px spanlist dn"><span class="fr">(1)</span><a href="jobs-in-call-center-medical-transcription-fid.htm" title="ITES / BPO / KPO / LPO / Customer Service / Operations Jobs">ITES / BPO / KPO / LPO / Custo...</a></p>
										<p class="mb5px spanlist dn"><span class="fr">(1)</span><a href="jobs-in-analytics-fid.htm" title="Analytic and Business Intelligence Jobs">Analytic and Business Intellig...</a></p>
										<p class="mb5px spanlist dn"><span class="fr">(1)</span><a href="jobs-in-biotech-scientist-fid.htm" title="Pharma / R&D / Biotech Jobs">Pharma / R&D / Biotech</a></p>
										<p class="mb5px spanlist dn"><span class="fr">(1)</span><a href="jobs-in-fresh-graduate-fid.htm" title="Fresher / Trainee Jobs">Fresher / Trainee</a></p>
										<span class="uu db ar"><a class="showallspan" data-target="show" href="javascript:void(0)" >View More</a></span>
									
				</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: 'RXpnMTBLWll6eENWYWd4M0t2RS94Zz09',data_type: 'RExzRmw1cmRsdlh6YkJlVUZBNnA4UT09'},
	  cache : false,
	  async: true
	  
	}).done(function(resp) {
	  //alert(resp)
	});
	</script>
	";i:1;s:73:"Job openings for quality control executive in kanpur | ABHASS CONSULTANCY";i:2;s:207:"Quality Control Executive Jobs,Quality Control Executive Jobs in Kanpur,Quality Control Executive Vacancy in Kanpur,Quality Control Executive jobs in India,Manufacturing / Production / Quality jobs in Kanpur";i:3;s:285:"Apply for Quality Control Executive Jobs in Kanpur India - Quality Control Executive Vacancy  in Manufacturing / Production / Quality field with 2 to 5 years Work Experience, Key Skills are Quality Control, quality management, Manufacturing / Production / Quality jobs in Kanpur  India";i:4;s:2666:"
		<script type="application/ld+json">
		{
		  "@context": "http://schema.org",
		  "@type": "JobPosting",
		  "title": "Quality Control Executive",
		  "baseSalary": " 90 Thousand  To  1  Lac  25 Thousand ",
		  "description": "Work in manufacturing line
 B.Sc and textile line only boys               
Minimum 2 to 5 year experience   
Job responsibilities of QC department in textile industries:
    Participate in market report/feedback discussions to understand properly what the market demands.
    Interpret market demand in terms of quality characteristics/ parameters.
    Cooperate product planning and production department in designing the production plan.
    Design quality plan i.e. design the quality parameters of basic raw materials (for example, fiber, quality for yarn, yarn quality for fabric, grey quality for fabric, grey fabric quality for finished fabrics etc).
    Make the purchase or procurement deportee aware of the quality needed for raw materials so that they can also properly demand and purchase the things exactly needed.
    Test the suppliers samples and report it to concerned department (top management, production and purchase dept. informing the deviating, if any; and also suggest for alternate.
    Design quality of intermediaries/ semi products (e.g. lap, sliver, roving etc. for yarn manufacturing; sized/colored yarn in weaving; de-sized and bleached fabrics in wet processing etc.). So, the designed product is achieved.
    Communicate the production dept. is with the plan of quality.
    Design process control chart and implement process control accordingly.
    Collect samples as per plan and standard.
    Conduct routine and non-routine tests as per recommended standard.
    Record and properly document test result.
    Interpret test results and distribute suggestion as how the concerned depts. will fight defect already generated and from being generated.
    Report to operational and maintenance in chief as soon as any quality deterioration is detected to undertake necessary action. In case serious problems, communicate top management.
    Test the packed and stocked material from time to time to avoid any damage.
    Prepare daily, weekly",
		  "educationRequirements": "B.Sc",
		  "experienceRequirements": "2 - 5 Years",
		  "industry": "Manufacturing / Production / Quality",
		  "jobLocation": {
		    "@type": "Place",
		    "address": {
		      "@type": "PostalAddress",
		      "addressLocality": "Uttar Pradesh",
		      "addressRegion": "Kanpur"
		    }
		  },
		 "qualifications": "B.Sc",
		     "skills": "Quality Control, quality management"
		  }
		</script>
		";i:5;N;}