a:6:{i:0;s:7899:"				<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 inside sales specialist in vikhroli mumbai</h1></div>
					<p class="breadcrumb ar uu small"> <a href="http://www.petrichorconsultancy.in/">Home</a>
					
											<b class="ffv p2px">&rsaquo;</b><a href="http://www.petrichorconsultancy.in/current-jobs.htm" title="Current Jobs">Current Jobs</a>  			
											
					<b class="ffv p2px">&rsaquo;</b> Job openings for inside sales specialist in vikhroli mumbai</p>
									<div class="pt10px">
				<div class="dt w100">
				<div class="dtc">
				<div class="xxxlarge fw6 dif">Inside Sales Specialist</div>
									<p class="mt7px fw6">Mumbai, Vikhroli</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="1002779">
					<input type="hidden" name="enq_type" value="2"><input type="hidden" name="vacancy_id" value="1003430"><input type="hidden" name="subject" value="Applied for Inside Sales Specialist">
					</form>
			
									</div></div>
				</div>
								
				<br>
				<p class="aj mt7px">Excellent communication (6/10) and ability to pitch<br />
Minimum of 1-5 years of experience in direct sales role in any Consumer Product / Service Industry<br />
Handle calls on leads generated for skin related services on our digital platforms. ( Leads would be provided)<br />
The initial call will be primarily a sales pitch followed by issue resolutions and query handling<br />
Describe the services and USPs of the same and try to generate maximum conversions.<br />
Continuous follow ups with Potential clients<br />
Handle skin specific queries pertaining to our services<br />
Overall Problem solving for patients and coordination as necessary<br />
Handle any operations related activities that may be required<br />
Tabulate and record responses from all channels on excels. Generate relevant reports from the same.<br />
Schedule appointments for clients and coordinate with the required therapist who shall visit the client<br />
Analyse quality of calls and strive for improvement.</p>
				
				<table class="w100 formTable bdr0 mt20px">	
				<tr>
				<td class="w195 alpha75 p5px">Experience</td>
				<td class="p5px">1 - 5 Years</td>
				</tr>			
											<tr>
							<td class="alpha75 p5px">Salary</td>
							<td class="p5px"> 4  Lac  To  6  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</span>
												<span class="bdr dib p2px10px mr5px mt2px"> Direct Sales Executive</span>
												<span class="bdr dib p2px10px mr5px mt2px"> Direct Sales</span>
												<span class="bdr dib p2px10px mr5px mt2px"> Inside Sales Specialist</span>
												<span class="bdr dib p2px10px mr5px mt2px"> Marketing Executive</span>
												<span class="bdr dib p2px10px mr5px mt2px"> Direct Marketing</span>
												<span class="bdr dib p2px10px mr5px mt2px"> Marketing coordinator</span>
												<span class="bdr dib p2px10px mr5px mt2px"></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 vat">Company Name</td>
						<td class="p5px vat"><p class="dif b">Skinnsi (Mumbai)</p></td>
						</tr>
												<tr>
						<td class="w195 alpha75 p5px vat">About Company</td>
						<td class="p5px vat">https://skinnsi.in/</td>
						</tr>
												<tr>
						<td class="w195 alpha75 p5px">Contact Person</td>
						<td class="p5px">Pritish Patil</td>
						</tr>					
												<tr>
						<td class="w195 alpha75 p5px">Mobile </td>
						<td class="p5px">9371498190 </td>
						</tr>
												<tr>
						<td class="w195 alpha75 p5px">Email ID</td>
						<td class="p5px"><a href="mailto:petrichor.technology@gmail.com"> petrichor.technology@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="1002779">
					<input type="hidden" name="enq_type" value="2"><input type="hidden" name="vacancy_id" value="1003430"><input type="hidden" name="subject" value="Applied for Inside Sales Specialist">
					</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">(3)</b></span>
										<span class="dib p5px10px c2px bdr mr7px mb7px "><a class="dif" href="jobs-in-mumbai.htm" title="Jobs in Mumbai">Mumbai</a> <b class="alpha50 bn small">(3)</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">(4)</span><a href="jobs-in-web-designing-programming-fid.htm" title="IT Software - Others Jobs">IT Software - Others</a></p>
										<p class="mb5px "><span class="fr">(2)</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: 'enZ0UkJSV01sV1BVWU83UjlRelkwdz09',data_type: 'RExzRmw1cmRsdlh6YkJlVUZBNnA4UT09'},
	  cache : false,
	  async: true
	  
	}).done(function(resp) {
	  //alert(resp)
	});
	</script>
	";i:1;s:83:"Job openings for inside sales specialist in vikhroli mumbai | Petrichor Consultancy";i:2;s:214:"Inside Sales Specialist Jobs,Inside Sales Specialist Jobs in Mumbai,Inside Sales Specialist Vacancy in Mumbai,Inside Sales Specialist jobs in India,Sales & Marketing / Business Development/telecaller jobs in Mumbai";i:3;s:407:"Apply for Inside Sales Specialist Jobs in Mumbai India - Inside Sales Specialist Vacancy  in Sales & Marketing / Business Development/telecaller field with 1 to 5 years Work Experience, Key Skills are Sales, Direct Sales Executive, Direct Sales, Inside Sales Specialist, Marketing Executive, Direct Marketing, Marketing coordinator,, Sales & Marketing / Business Development/telecaller jobs in Mumbai  India";i:4;s:2304:"
		<script type="application/ld+json">
		{
		  "@context": "http://schema.org",
		  "@type": "JobPosting",
		  "title": "Inside Sales Specialist",
		  "identifier": {
	        "@type": "PropertyValue",
	        "name": "Skinnsi (Mumbai)",
	        "value":  "1003430"
	      },
		  "hiringOrganization": {
	      "@type" : "Organization",
	      "name" : "Skinnsi (Mumbai)",
	      "description": "https://skinnsi.in/",
	      "telephone" : "9371498190",
	      "email" : "petrichor.technology@gmail.com"  
	       },
		  "url": "http://www.petrichorconsultancy.in/job-openings-for-inside-sales-specialist-vikhroli-mumbai-1003430.htm",
          "datePosted": "2021-05-27",
          
		  "baseSalary": " 4  Lac  To  6  Lac ",
		  "description": "Excellent communication (6/10) and ability to pitch
Minimum of 1-5 years of experience in direct sales role in any Consumer Product / Service Industry
Handle calls on leads generated for skin related services on our digital platforms. ( Leads would be provided)
The initial call will be primarily a sales pitch followed by issue resolutions and query handling
Describe the services and USPs of the same and try to generate maximum conversions.
Continuous follow ups with Potential clients
Handle skin specific queries pertaining to our services
Overall Problem solving for patients and coordination as necessary
Handle any operations related activities that may be required
Tabulate and record responses from all channels on excels. Generate relevant reports from the same.
Schedule appointments for clients and coordinate with the required therapist who shall visit the client
Analyse quality of calls and strive for improvement.",
		  "educationRequirements": "Other Bachelor Degree",
		  "experienceRequirements": "1 - 5 Years",
		  "industry": "Sales & Marketing / Business Development/telecaller",
		  "jobLocation": {
		    "@type": "Place",
		    "address": {
		      "@type": "PostalAddress",
		      "addressLocality": "Maharashtra",
		      "addressRegion": "Mumbai, Vikhroli"
		    }
		  },
		 "qualifications": "Other Bachelor Degree",
		     "skills": "Sales, Direct Sales Executive, Direct Sales, Inside Sales Specialist, Marketing Executive, Direct Marketing, Marketing coordinator,"
		  }
		</script>
		";i:5;N;}