a:6:{i:0;s:5993:"					<section class="headBg theme2 ">
					<div class="wrap">
					<div class="page-title-inner fo"> 
					<div class="h1"><h1>Job openings for sales executive in kullu manali kullu</h1></div>
					<p class="breadcrumb ar uu small"><a href="http://www.westernhimalayanholidays.in/" title="Home">Home</a>
					
											<b class="ffv p2px">&rsaquo;</b><a href="http://www.westernhimalayanholidays.in/career-with-us.htm" title="Career with Us">Career with Us</a>
																
					<b class="ffv p2px">&rsaquo;</b> Job openings for sales executive in kullu manali kullu</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-->
				
								<div class="pt10px">
				<div class="xxxlarge fw6 dif">Sales Executive</div>
									<p class="mt7px fw6">Kullu, Kullu Manali</p>
									
				<br>
				<p class="aj mt7px">Need female candidates for tele calling and sales of tour packages. Excellent communication and convincing skills with basic knowledge of computers. Job will include selling tour packages to clients located across the country and meet your target on monthly basis. Maintain your daily call report and take part in other office activities. Should be willing to work long hours in case of surge in inquiries or during the peak season time. There will be attractive incentive scheme and monthly RnR program for top performers. Desired job location is in Aleo, Manali, Distt. Kullu, Himachal Pradesh.</p>
				
				<table class="w100 formTable bdr0 mt20px">	
				<tr>
				<td class="w195 alpha75 p5px">Experience</td>
				<td class="p5px">2 - 10 Years</td>
				</tr>			
											<tr>
							<td class="alpha75 p5px">Salary</td>
							<td class="p5px"> 90 Thousand  To  1  Lac  50 Thousand  P.A.</td>
							</tr>				
											
					<tr>
					<td class="alpha75 p5px">Industry</td>
					<td class="p5px">Sales/Marketing</td>
					</tr>
									
									<tr>
					<td class="alpha75 p5px">Qualification</td>
					<td class="p5px">Higher Secondary, Diploma, B.A</td>
					</tr>					
										<tr>
					<td class="alpha75 p5px">Key Skills</td>
					<td class="p5px">
											<span class="bdr dib p2px10px mr5px mt2px">sales</span>
												<span class="bdr dib p2px10px mr5px mt2px"> marketing</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">Mr. Ritesh Thakur</td>
						</tr>					
												<tr>
						<td class="w195 alpha75 p5px">Address</td>
						<td class="p5px">Near Hotel Mohan Palace, Aleo, New Manali, Distt Kullu, H. P. 175131</td>
						</tr>					
												<tr>
						<td class="w195 alpha75 p5px">Mobile </td>
						<td class="p5px">9967388055 </td>
						</tr>
												<tr>
						<td class="w195 alpha75 p5px">Email ID</td>
						<td class="p5px"><a href="mailto:westernhimalayanholidays@gmail.com"> westernhimalayanholidays@gmail.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="823919">
					<input type="hidden" name="enq_type" value="2"><input type="hidden" name="vacancy_id" value="815411"><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="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-kullu.htm" title="Jobs in Kullu">Kullu</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-sales-marketing-fid.htm" title="Sales/Marketing Jobs">Sales/Marketing</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: 'NXY3ZVg3bjU5M0ZvbVZsQkFXRW9FZz09',data_type: 'RExzRmw1cmRsdlh6YkJlVUZBNnA4UT09'},
	  cache : false,
	  async: true
	  
	}).done(function(resp) {
	  //alert(resp)
	});
	</script>
	";i:1;s:83:"Job openings for sales executive in kullu manali kullu | Western Himalayan Holidays";i:2;s:143:"Sales Executive Jobs,Sales Executive Jobs in Kullu,Sales Executive Vacancy in Kullu,Sales Executive jobs in India,Sales/Marketing jobs in Kullu";i:3;s:203:"Apply for Sales Executive Jobs in Kullu India - Sales Executive Vacancy  in Sales/Marketing field with 2 to 10 years Work Experience, Key Skills are sales, marketing, Sales/Marketing jobs in Kullu  India";i:4;s:1303:"
		<script type="application/ld+json">
		{
		  "@context": "http://schema.org",
		  "@type": "JobPosting",
		  "title": "Sales Executive",
		  "baseSalary": " 90 Thousand  To  1  Lac  50 Thousand ",
		  "description": "Need female candidates for tele calling and sales of tour packages. Excellent communication and convincing skills with basic knowledge of computers. Job will include selling tour packages to clients located across the country and meet your target on monthly basis. Maintain your daily call report and take part in other office activities. Should be willing to work long hours in case of surge in inquiries or during the peak season time. There will be attractive incentive scheme and monthly RnR program for top performers. Desired job location is in Aleo, Manali, Distt. Kullu, Himachal Pradesh.",
		  "educationRequirements": "Higher Secondary, Diploma, B.A",
		  "experienceRequirements": "2 - 10 Years",
		  "industry": "Sales/Marketing",
		  "jobLocation": {
		    "@type": "Place",
		    "address": {
		      "@type": "PostalAddress",
		      "addressLocality": "Himachal Pradesh",
		      "addressRegion": "Kullu, Kullu Manali"
		    }
		  },
		 "qualifications": "Higher Secondary, Diploma, B.A",
		     "skills": "sales, marketing"
		  }
		</script>
		";i:5;N;}