a:6:{i:0;s:7308:"					<section class="headBg theme2 ">
					<div class="wrap">
					<div class="page-title-inner fo"> 
					<div class="h1"><h1>Job openings for sales executive in pune</h1></div>
					<p class="breadcrumb ar uu small"><a href="https://www.indomax-multitrades.com/" title="Home">Home</a>
					
											<b class="ffv p2px">&rsaquo;</b><a href="https://www.indomax-multitrades.com/current-jobs.htm" title="Current Jobs">Current Jobs</a>
																
					<b class="ffv p2px">&rsaquo;</b> Job openings for sales executive in pune</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">Pune</p>
									
				<br>
				<p class="aj mt7px">We are hiring, young, enthusiastic, dynamic, smart and experienced individual to be a part of our expanding marketing chain of Casey Food division. If you have –<br />
<br />
• A Bachelor’s degree, with sales as your core dream.<br />
<br />
• Proven Sales Experience.<br />
<br />
• Fantastic track record of meeting sales target.<br />
<br />
• A passion towards multitasking and team building.<br />
<br />
• Ability to work under pressure.<br />
<br />
• Strong problem-solving, organizational and management skills.<br />
<br />
• Excellent negotiation, convincing and consultative sales expertise.<br />
<br />
• Effective communication skills.<br />
<br />
• Exceptional customer orientation knowledge.<br />
<br />
Then you are the one to whom we are searching for. Being the Sales head of a district, you will dispose the following job responsibilities:<br />
<br />
• Manage sales operations in assigned district to achieve revenue goals.<br />
<br />
• Supervise sales team members; the BSMs, on daily basis and provide guidance whenever needed.<br />
<br />
• Identify skill gaps and conduct trainings to sales team.<br />
<br />
• Work with team to implement new sales techniques to obtain profits.<br />
<br />
• Assist in employee recruitment, promotion, retention and termination activities.<br />
<br />
• Conduct employee performance evaluation and provide feedback for improvements.<br />
<br />
• Contact potential customers and identify new business opportunities.<br />
<br />
• Stay abreast with customer needs, market trends and competitors.<br />
<br />
• Maintain clear and complete sales reports for management review.<br />
<br />
• Build strong relationships with customers for business growth.<br />
<br />
• Analyze sales performances and recommend improvements.<br />
<br />
• Ensure that sales team follows company policies and procedures at all times.<br />
<br />
• Develop promotional programs to increase sales and revenue.<br />
<br />
• Plan and coordinate sales activities for assigned projects.<br />
<br />
• Provide outstanding services and ensure customer satisfaction.<br />
<br />
We are looking the following skill sets within a prospective candidate –<br />
<br />
• Strong verbal and written communication skills.<br />
<br />
• A versatile personality with above average organizational</p>
				
				<table class="w100 formTable bdr0 mt20px">	
				<tr>
				<td class="w195 alpha75 p5px">Experience</td>
				<td class="p5px">3 - 5 Years</td>
				</tr>			
											<tr>
							<td class="alpha75 p5px">Salary</td>
							<td class="p5px"> 1  Lac  75 Thousand  To  3  Lac  P.A.</td>
							</tr>				
											
					<tr>
					<td class="alpha75 p5px">Industry</td>
					<td class="p5px">Sales & Marketing / Business Development/telecaller</td>
					</tr>
									
									<tr>
					<td class="alpha75 p5px">Qualification</td>
					<td class="p5px">Other Bachelor Degree</td>
					</tr>					
										<tr>
					<td class="alpha75 p5px">Key Skills</td>
					<td class="p5px">
											<span class="bdr dib p2px10px mr5px mt2px">Sales Experience</span>
												<span class="bdr dib p2px10px mr5px mt2px"> meeting sales target</span>
												<span class="bdr dib p2px10px mr5px mt2px"> management skills</span>
												<span class="bdr dib p2px10px mr5px mt2px">customer orientation knowledge</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="917468">
					<input type="hidden" name="enq_type" value="2"><input type="hidden" name="vacancy_id" value="909678"><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-pune.htm" title="Jobs in Pune">Pune</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-business-development-telecaller-fid.htm" title="Sales & Marketing / Business Development/telecaller Jobs">Sales & Marketing / Business D...</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: 'M0FkcENjRENQM2kvSkYycDluY04zUT09',data_type: 'RExzRmw1cmRsdlh6YkJlVUZBNnA4UT09'},
	  cache : false,
	  async: true
	  
	}).done(function(resp) {
	  //alert(resp)
	});
	</script>
	";i:1;s:63:"Job openings for sales executive in pune | Indomax Multi Trades";i:2;s:176:"Sales Executive Jobs,Sales Executive Jobs in Pune,Sales Executive Vacancy in Pune,Sales Executive jobs in India,Sales & Marketing / Business Development/telecaller jobs in Pune";i:3;s:344:"Apply for Sales Executive Jobs in Pune India - Sales Executive Vacancy  in Sales & Marketing / Business Development/telecaller field with 3 to 5 years Work Experience, Key Skills are Sales Experience, meeting sales target, management skills,customer orientation knowledge, Sales & Marketing / Business Development/telecaller jobs in Pune  India";i:4;s:2828:"
		<script type="application/ld+json">
		{
		  "@context": "http://schema.org",
		  "@type": "JobPosting",
		  "title": "Sales Executive",
		  "baseSalary": " 1  Lac  75 Thousand  To  3  Lac ",
		  "description": "We are hiring, young, enthusiastic, dynamic, smart and experienced individual to be a part of our expanding marketing chain of Casey Food division. If you have –

• A Bachelor’s degree, with sales as your core dream.

• Proven Sales Experience.

• Fantastic track record of meeting sales target.

• A passion towards multitasking and team building.

• Ability to work under pressure.

• Strong problem-solving, organizational and management skills.

• Excellent negotiation, convincing and consultative sales expertise.

• Effective communication skills.

• Exceptional customer orientation knowledge.

Then you are the one to whom we are searching for. Being the Sales head of a district, you will dispose the following job responsibilities:

• Manage sales operations in assigned district to achieve revenue goals.

• Supervise sales team members; the BSMs, on daily basis and provide guidance whenever needed.

• Identify skill gaps and conduct trainings to sales team.

• Work with team to implement new sales techniques to obtain profits.

• Assist in employee recruitment, promotion, retention and termination activities.

• Conduct employee performance evaluation and provide feedback for improvements.

• Contact potential customers and identify new business opportunities.

• Stay abreast with customer needs, market trends and competitors.

• Maintain clear and complete sales reports for management review.

• Build strong relationships with customers for business growth.

• Analyze sales performances and recommend improvements.

• Ensure that sales team follows company policies and procedures at all times.

• Develop promotional programs to increase sales and revenue.

• Plan and coordinate sales activities for assigned projects.

• Provide outstanding services and ensure customer satisfaction.

We are looking the following skill sets within a prospective candidate –

• Strong verbal and written communication skills.

• A versatile personality with above average organizational",
		  "educationRequirements": "Other Bachelor Degree",
		  "experienceRequirements": "3 - 5 Years",
		  "industry": "Sales & Marketing / Business Development/telecaller",
		  "jobLocation": {
		    "@type": "Place",
		    "address": {
		      "@type": "PostalAddress",
		      "addressLocality": "Maharashtra",
		      "addressRegion": "Pune"
		    }
		  },
		 "qualifications": "Other Bachelor Degree",
		     "skills": "Sales Experience, meeting sales target, management skills,customer orientation knowledge"
		  }
		</script>
		";i:5;N;}