a:6:{i:0;s:6053:"					<div id="append2PageTittle">
    				<div class="page-title-inner bread-right head-inner fo">
    				<div id="breadcrumb">
					<div class="h1"><h1>Sales Executive</h1></div>
					<p class="breadcrumb ar uu small"><a href="http://www.multico.co.in/" title="Home">Home</a>
					
											<b class="ffv p2px">&rsaquo;</b><a href="http://www.multico.co.in/current-jobs.htm" title="Current Jobs">Current Jobs</a>
																
					<b class="ffv p2px">&rsaquo;</b> Sales Executive</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-->
				
								<p class="mb5px"><i class="fa fa-briefcase mr7px fl w15px alpha50"></i> 1 - 5 Years</p>
				
									<p class="mb10px"><i class="fa fa-map-marker mr7px fl pl1px w15px alpha50"></i>Patna</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="866411">
					<input type="hidden" name="enq_type" value="2"><input type="hidden" name="vacancy_id" value="904237"><input type="hidden" name="subject" value="Applied for Sales Executive">
					</form>
					</div>
			
						
				
				<br>
				<div class="bdrT pt20px">
				<p class="xlarge b">Job Description</p>
				<p class="aj mt10px">Knowledge of Modular Furniture, Steel Furniture and Chairs<br />
good Relations with Architects, Interior Contractors and Offices Etc.<br />
should Manage Sales, Follow-up with Customer<br />
should have Good Personality& Communication Skills, Energetic & Convincing Nature.<br />
should Be Able to Handle High-end Customer<br />
maintains Quality Service By Establishing and Enforcing Organisation Standard</p>
				
				<table class="w100 formTable bdr0 mt10px">				
											<tr>
							<td class="w22 alpha75 p5px">Salary</td>
							<td class="p5px"> 1  Lac  To  3  Lac  P.A.</td>
							</tr>				
											
					<tr>
					<td class="w22 alpha75 p5px">Industry</td>
					<td class="p5px">Sales/Marketing</td>
					</tr>
									<tr>
				<td class="w22 alpha75 p5px">Work Experience</td>
				<td class="p5px">1 - 5 Years</td>
				</tr>
									<tr>
					<td class="w22 alpha75 p5px">Qualification</td>
					<td class="p5px">Diploma, Advanced/Higher Diploma, Professional Degree, Other Bachelor Degree</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">marketing</span>
												<span class="bn dib p5px10px c2px headVr mr7px mb7px"> business development</span>
												<span class="bn dib p5px10px c2px headVr mr7px mb7px"> sales</span>
											</div>
									</div>
				
				
				<br>
				<div class="bdrT pt20px">
				<p class="xlarge b">Company Profile</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="866411">
					<input type="hidden" name="enq_type" value="2"><input type="hidden" name="vacancy_id" value="904237"><input type="hidden" name="subject" value="Applied for Sales 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="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-patna.htm" title="Jobs in Patna">Patna</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-sales-marketing-fid.htm" title="Sales/Marketing Jobs">Sales/Marketing</a> <b class="alpha50 bn small">(1)</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: 'TDFsV1AvVlR2LzV4TmpzV2R1V1FPZz09',data_type: 'RExzRmw1cmRsdlh6YkJlVUZBNnA4UT09'},
	  cache : false,
	  async: true
	  
	}).done(function(resp) {
	  //alert(resp)
	});
	</script>
	";i:1;s:58:"Sales Executive Jobs in Patna - Vacancy in Sales/Marketing";i:2;s:143:"Sales Executive Jobs,Sales Executive Jobs in Patna,Sales Executive Vacancy in Patna,Sales Executive jobs in India,Sales/Marketing jobs in Patna";i:3;s:224:"Apply for Sales Executive Jobs in Patna India - Sales Executive Vacancy  in Sales/Marketing field with 1 to 5 years Work Experience, Key Skills are marketing, business development, sales, Sales/Marketing jobs in Patna  India";i:4;s:1154:"
		<script type="application/ld+json">
		{
		  "@context": "http://schema.org",
		  "@type": "JobPosting",
		  "title": "Sales Executive",
		  "baseSalary": " 1  Lac  To  3  Lac ",
		  "description": "Knowledge of Modular Furniture, Steel Furniture and Chairs
good Relations with Architects, Interior Contractors and Offices Etc.
should Manage Sales, Follow-up with Customer
should have Good Personality& Communication Skills, Energetic & Convincing Nature.
should Be Able to Handle High-end Customer
maintains Quality Service By Establishing and Enforcing Organisation Standard",
		  "educationRequirements": "Diploma, Advanced/Higher Diploma, Professional Degree, Other Bachelor Degree",
		  "experienceRequirements": "1 - 5 Years",
		  "industry": "Sales/Marketing",
		  "jobLocation": {
		    "@type": "Place",
		    "address": {
		      "@type": "PostalAddress",
		      "addressLocality": "Bihar",
		      "addressRegion": "Patna"
		    }
		  },
		 "qualifications": "Diploma, Advanced/Higher Diploma, Professional Degree, Other Bachelor Degree",
		     "skills": "marketing, business development, sales"
		  }
		</script>
		";i:5;N;}