a:6:{i:0;s:5628:"					<div id="append2PageTittle">
    				<div class="page-title-inner bread-right head-inner fo">
    				<div id="breadcrumb">
					<div class="h1"><h1>Job openings for pattern master in dadra nagar haveli</h1></div>
					<p class="breadcrumb ar uu small"><a href="https://www.oviyaan.in/" title="Home">Home</a>
					
											<b class="ffv p2px">&rsaquo;</b><a href="https://www.oviyaan.in/current-jobs.htm" title="Current Jobs">Current Jobs</a>
																
					<b class="ffv p2px">&rsaquo;</b> Job openings for pattern master in dadra nagar haveli</p>
					</div>
					</div>
					</div>
					<script>jQuery('#breadcrumbA').append(jQuery('#append2PageTittle').html());jQuery('#append2PageTittle').remove()</script>
									<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="pt10px">
				<div class="dt w100">
				<div class="dtc">
				<div class="xxxlarge fw6 dif">Pattern Master</div>
									<p class="mt7px fw6">Dadra</p>
								
				</div>
				<div class="dtc w125px"><div class="mt7px">
									
					<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="953703">
					<input type="hidden" name="enq_type" value="2"><input type="hidden" name="vacancy_id" value="941509"><input type="hidden" name="subject" value="Applied for Pattern Master">
					</form>
			
									</div></div>
				</div>
								
				<br>
				<p class="aj mt7px">NEED PATTERN AND CUTTING MASTER FOR MALES GARMENTS AS WELL AS WOMENS WESTERN WEAR. WE MAKE SHIRT, PANT, TUNICS, KURTI, TOPS, SALWAR AND  CLIENT ORDERS ALSO</p>
				
				<table class="w100 formTable bdr0 mt20px">	
				<tr>
				<td class="w195 alpha75 p5px">Experience</td>
				<td class="p5px">5 - 10 Years</td>
				</tr>			
											<tr>
							<td class="alpha75 p5px">Salary</td>
							<td class="p5px"> 2  Lac  To  3  Lac  P.A.</td>
							</tr>				
											
					<tr>
					<td class="alpha75 p5px">Industry</td>
					<td class="p5px">Fashion Designing & Merchandising</td>
					</tr>
									
									<tr>
					<td class="alpha75 p5px">Qualification</td>
					<td class="p5px">Higher Secondary</td>
					</tr>					
										<tr>
					<td class="alpha75 p5px">Key Skills</td>
					<td class="p5px">
											<span class="bdr dib p2px10px mr5px mt2px">Cutting Master</span>
												<span class="bdr dib p2px10px mr5px mt2px"> Pattern Designer</span>
												<span class="bdr dib p2px10px mr5px mt2px"> Stitching</span>
											</td>
					</tr>
									
				</table>
				</div>
				<br>
				<div class="pt20px">
				<p class="large fw6">About Company</p>
				<div class="mt10px">
				
								
				<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="953703">
					<input type="hidden" name="enq_type" value="2"><input type="hidden" name="vacancy_id" value="941509"><input type="hidden" name="subject" value="Applied for Pattern Master">
					</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-dadra.htm" title="Jobs in Dadra">Dadra</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="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">(1)</span><a href="jobs-in-merchandser-fid.htm" title="Fashion Designing & Merchandising Jobs">Fashion Designing & Merchandis...</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: 'cDlUYUQ2UkpqVVdCb05aSExFT2grQT09',data_type: 'RExzRmw1cmRsdlh6YkJlVUZBNnA4UT09'},
	  cache : false,
	  async: true
	  
	}).done(function(resp) {
	  //alert(resp)
	});
	</script>
	";i:1;s:84:"Job openings for pattern master in dadra nagar haveli | oviyaan apearl & accessories";i:2;s:157:"Pattern Master Jobs,Pattern Master Jobs in Dadra,Pattern Master Vacancy in Dadra,Pattern Master jobs in India,Fashion Designing & Merchandising jobs in Dadra";i:3;s:264:"Apply for Pattern Master Jobs in Dadra India - Pattern Master Vacancy  in Fashion Designing & Merchandising field with 5 to 10 years Work Experience, Key Skills are Cutting Master, Pattern Designer, Stitching, Fashion Designing & Merchandising jobs in Dadra  India";i:4;s:1292:"
		<script type="application/ld+json">
		{
		  "@context": "http://schema.org",
		  "@type": "JobPosting",
		  "title": "Pattern Master",
		  "identifier": {
	        "@type": "PropertyValue",
	        "name": "",
	        "value":  "941509"
	      },
		  "hiringOrganization": {
	      "@type" : "Organization",
	      "name" : "",
	      "description": "",
	      "telephone" : "",
	      "email" : ""  
	       },
		  "url": "https://www.oviyaan.in/job-openings-for-pattern-master-dadra-nagar-haveli-941509.htm",
          "datePosted": "0000-00-00",
          
		  "baseSalary": " 2  Lac  To  3  Lac ",
		  "description": "NEED PATTERN AND CUTTING MASTER FOR MALES GARMENTS AS WELL AS WOMENS WESTERN WEAR. WE MAKE SHIRT, PANT, TUNICS, KURTI, TOPS, SALWAR AND  CLIENT ORDERS ALSO",
		  "educationRequirements": "Higher Secondary",
		  "experienceRequirements": "5 - 10 Years",
		  "industry": "Fashion Designing & Merchandising",
		  "jobLocation": {
		    "@type": "Place",
		    "address": {
		      "@type": "PostalAddress",
		      "addressLocality": "Dadra & Nagar Haveli",
		      "addressRegion": "Dadra"
		    }
		  },
		 "qualifications": "Higher Secondary",
		     "skills": "Cutting Master, Pattern Designer, Stitching"
		  }
		</script>
		";i:5;N;}