a:6:{i:0;s:12785:"				<section id="middle">
				<div class="wrap" id="bodyFormat1">
				<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 Telecaller in Ahmedabad</h1></div>
					<p class="breadcrumb ar uu small"> <a href="https://www.placementplanet.com/">Home</a>
					
											<b class="ffv p2px">&rsaquo;</b><a href="https://www.placementplanet.com/current-jobs.htm" title="Current Jobs">Current Jobs</a>  			
											
					<b class="ffv p2px">&rsaquo;</b> Job openings for Telecaller in Ahmedabad</p>
									<div class="pt10px">
				<div class="dt w100">
				<div class="dtc">
				<div class="xxxlarge fw6 dif lh13em">Telecaller</div>
									<p class="mt7px fw6">Ahmedabad</p>
								
				</div>
				<div class="dtc w200px ar">
				<div class="ShareDropdown dib">	
				<div class="copyLinkPopup">Link Copied</div>		  
				<span class="data"><i class="fa fa-share-alt xxlarge vam"></i></span>
				<ul class="shareList data bdr0">
				<li><a target="_blank" href="https://www.facebook.com/sharer/sharer.php?u=https://www.placementplanet.com/job-openings-for-telecaller-ahmedabad-999855.htm" class="facebook" title="Facebook"><i class="fa fa-facebook-official"></i></a></li> 
				<li><a target="_blank" href="https://www.instagram.com/?url=https://www.placementplanet.com/job-openings-for-telecaller-ahmedabad-999855.htm" class="instagram" title="Instagram"><i class="fa fa-instagram"></i></a></li>
				<li><a target="_blank" href="https://wa.me/?text=https://www.placementplanet.com/job-openings-for-telecaller-ahmedabad-999855.htm" class="whatsapp" title="Whatsapp"><i class="fa fa fa-whatsapp"></i></a></li>  
				<li><a target="_blank" href="https://X.com/intent/tweet?text=Telecaller&url=https://www.placementplanet.com/job-openings-for-telecaller-ahmedabad-999855.htm" class="twitter" title="Twitter"><img src="https://catalog.wlimg.com/mobile/social-networking-img/1002.svg" alt="Twitter" style="width:22px;height:22px;vertical-align:middle;margin-right:6px;"></a></li> 
				<li><a target="_blank" href="https://www.linkedin.com/shareArticle?mini=true&url=https://www.placementplanet.com/job-openings-for-telecaller-ahmedabad-999855.htm&title=Telecaller" class="linkedin" title="Linkedin"><i class="fa fa-linkedin-square"></i></a></li>
				<li><a target="_blank" href="https://pinterest.com/pin/create/button/?url=https://www.placementplanet.com/job-openings-for-telecaller-ahmedabad-999855.htm&description=Telecaller" class="pinterest" title="Pinterest"><i class="fa fa-pinterest-square"></i></a></li>	
				<li><a href="javascript:;" title="Copy Link" class="copy" onclick="copyURL()"><i class="fa fa-clone"></i></a></li>
				</ul>
				</div>
				<script>
				$(document).ready(function(){
				$('.ShareDropdown span').click(function(){
				 $('.ShareDropdown').toggleClass("active");
				}); 
				});
				</script>
				<script>
				  function copyURL() {
				    const url = window.location.href;
					const textarea = document.createElement("textarea");
					textarea.value = url;
					textarea.style.position = "fixed";
					document.body.appendChild(textarea);
					textarea.focus();
					textarea.select();
			
					try {
					  document.execCommand("copy");
					//  alert("URL copied (fallback)!");
					  $(".copyLinkPopup").show();		 
			          setTimeout(function(){$(".copyLinkPopup").hide();}, 2000);
				      $('.ShareDropdown').removeClass("active");
					  
					} catch (err) {
					  console.error("Fallback copy failed:", err);
					}
			
					document.body.removeChild(textarea);
				  }
				</script>
				<div class="mt7px ml7px dib">
									
					<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="290338">
					<input type="hidden" name="enq_type" value="2"><input type="hidden" name="vacancy_id" value="999855"><input type="hidden" name="subject" value="Applied for Telecaller">
					</form>
			
									</div></div>
				</div>
								<div class="fo mt10px">
				<a href="https://www.placementplanet.com/vacancy_999855.rss" target="_blank" class="p5px15px dib c3px" style="background:#f8991b;color:#ffffff;"><i class="fa fa-feed"></i> RSS Feed </a>
				</div>
				<br>
				<p class="aj mt7px lh18em">As a Telecaller, you are responsible for handling sales over the phone entirely. You are also responsible for solving questions in regard to the product or service provided by the company. In addition to this, you should collect desired information from the clients and maintain healthy relations with them.</p>
				
				<table class="w100 formTable bdr0 mt20px">	
				<tr>
				<td class="w195 alpha75 p5px">Experience</td>
				<td class="p5px">0 - 2 Years</td>
				</tr>			
											<tr>
							<td class="alpha75 p5px">Salary</td>
							<td class="p5px"> 1  Lac  To  1  Lac  25 Thousand  P.A.</td>
							</tr>				
											
					<tr>
					<td class="alpha75 p5px">Industry</td>
					<td class="p5px">Real Estate / Construction</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">Good Communication</span>
														<span class="bdr dib p2px10px mr5px mt2px">Telecaller</span>
														<span class="bdr dib p2px10px mr5px mt2px">Telesales</span>
														<span class="bdr dib p2px10px mr5px mt2px">Telemarketer</span>
														<span class="bdr dib p2px10px mr5px mt2px">Telemarketing Executive</span>
														<span class="bdr dib p2px10px mr5px mt2px">Telemarketing</span>
														<span class="bdr dib p2px10px mr5px mt2px">Customer Care Associate</span>
														<span class="bdr dib p2px10px mr5px mt2px">Lead Generation Executive</span>
														<span class="bdr dib p2px10px mr5px mt2px">Business Development Executive</span>
														<span class="bdr dib p2px10px mr5px mt2px">Walk in</span>
												</td>
					</tr>
									
				</table>
				</div>
				<br>
				<div>
				<!--p class="large fw6">About Company</p-->
				<div>
				
								
				<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="290338">
					<input type="hidden" name="enq_type" value="2"><input type="hidden" name="vacancy_id" value="999855"><input type="hidden" name="subject" value="Applied for Telecaller">
					</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="https://www.placementplanet.com/jobs-in-ahmedabad.htm" title="Jobs in Ahmedabad">Ahmedabad</a> <b class="alpha50 bn small">(63)</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">(8)</span><a href="https://www.placementplanet.com/jobs-in-accounting-tax-fid.htm" title="Accounting / Auditing / Taxation Jobs">Accounting / Auditing / Taxati...</a></p>
										<p class="mb5px "><span class="fr">(7)</span><a href="https://www.placementplanet.com/jobs-in-sales-marketing-business-development-telecaller-fid.htm" title="Sales & Marketing / Business Development / Telecaller Jobs">Sales & Marketing / Business D...</a></p>
										<p class="mb5px "><span class="fr">(7)</span><a href="https://www.placementplanet.com/jobs-in-manufacturing-production-fid.htm" title="Manufacturing / Production / Quality Jobs">Manufacturing / Production / Q...</a></p>
										<p class="mb5px "><span class="fr">(6)</span><a href="https://www.placementplanet.com/jobs-in-supply-chain-purchase-procurement-fid.htm" title="Supply Chain / Purchase / Procurement Jobs">Supply Chain / Purchase / Proc...</a></p>
										<p class="mb5px "><span class="fr">(5)</span><a href="https://www.placementplanet.com/jobs-in-hr-recruitment-administration-ir-training-development-operations-fid.htm" title="HR / Recruitment / Administration / IR / Training & Development / Operations Jobs">HR / Recruitment / Administrat...</a></p>
										<p class="mb5px "><span class="fr">(4)</span><a href="https://www.placementplanet.com/jobs-in-engineering-design-rd-quality-fid.htm" title="Engineering / Engineering Design / R&D / Quality Jobs">Engineering / Engineering Desi...</a></p>
										<p class="mb5px "><span class="fr">(2)</span><a href="https://www.placementplanet.com/jobs-in-self-employed-entrepreneur-consultants-freelancers-fid.htm" title="Self Employed / Entrepreneur / Consultants / Freelancers Jobs">Self Employed / Entrepreneur /...</a></p>
										<p class="mb5px "><span class="fr">(2)</span><a href="https://www.placementplanet.com/jobs-in-ites-bpo-kpo-lpo-customer-service-fid.htm" title="ITES / BPO / KPO / LPO / Customer Service Jobs">ITES / BPO / KPO / LPO / Custo...</a></p>
										<p class="mb5px "><span class="fr">(2)</span><a href="https://www.placementplanet.com/jobs-in-front-office-reception-computer-operator-assistant-fid.htm" title="Front Office / Reception / Computer Operator / Assistant Jobs">Front Office / Reception / Com...</a></p>
										<p class="mb5px "><span class="fr">(2)</span><a href="https://www.placementplanet.com/jobs-in-computers-it-fid.htm" title="IT Hardware / Technical Support / Telecom Engineering Jobs">IT Hardware / Technical Suppor...</a></p>
										<p class="mb5px "><span class="fr">(1)</span><a href="https://www.placementplanet.com/jobs-in-property-construction-fid.htm" title="Real Estate / Construction Jobs">Real Estate / Construction</a></p>
										<p class="mb5px spanlist dn"><span class="fr">(1)</span><a href="https://www.placementplanet.com/jobs-in-corporate-planning-fid.htm" title="Corporate Planning & Strategy / Management Consulting Jobs">Corporate Planning & Strategy ...</a></p>
										<p class="mb5px spanlist dn"><span class="fr">(1)</span><a href="https://www.placementplanet.com/jobs-in-web-designing-programming-fid.htm" title="IT Software - Others Jobs">IT Software - Others</a></p>
										<p class="mb5px spanlist dn"><span class="fr">(1)</span><a href="https://www.placementplanet.com/jobs-in-education-teaching-training-counselling-fid.htm" title="Education / Teaching / Training / Counselling / Academic Jobs">Education / Teaching / Trainin...</a></p>
										<p class="mb5px spanlist dn"><span class="fr">(1)</span><a href="https://www.placementplanet.com/jobs-in-application-programming-fid.htm" title="IT Software - Application Programming / Maintenance Jobs">IT Software - Application Prog...</a></p>
										<p class="mb5px spanlist dn"><span class="fr">(1)</span><a href="https://www.placementplanet.com/jobs-in-it-hardware-networking-fid.htm" title="IT Hardware – Networking Jobs">IT Hardware – Networking</a></p>
										<span class="uu db ar"><a class="showallspan" data-target="show" href="javascript:void(0)" >View More</a></span>
									
				</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>
				
	<?php
	$source_type="";
	if (!empty($_REQUEST["utm_campaign"]) && ($_REQUEST["utm_campaign"]=="google_jobs_apply" || $_REQUEST["utm_campaign"]=="JobApplyPI")) {
		$source_type=$_REQUEST["utm_campaign"];
	}
	?>
	";i:1;s:59:"Job openings for Telecaller in Ahmedabad | Placement Planet";i:2;s:146:"Telecaller Jobs,Telecaller Jobs in Ahmedabad,Telecaller Vacancy in Ahmedabad,Telecaller jobs in India,Real Estate / Construction jobs in Ahmedabad";i:3;s:385:"Apply for Telecaller Jobs in Ahmedabad India - Telecaller Vacancy  in Real Estate / Construction field with 0 to 2 years Work Experience, Key Skills are Good Communication,Telecaller,Telesales,Telemarketer,Telemarketing Executive,Telemarketing,Customer Care Associate,Lead Generation Executive,Business Development Executive,Walk in, Real Estate / Construction jobs in Ahmedabad  India";i:4;s:2094:"
		<script type="application/ld+json">
		{
		  "@context": "http://schema.org",
		  "@type": "JobPosting",
		  "title": "Telecaller",
		  "identifier": {
	        "@type": "PropertyValue",
	        "name": "Placement Planet",
	        "value":  "999855"
	      },
		  "hiringOrganization": {
	      "@type" : "Organization",
	      "name" : "Placement Planet",
	      "description": "Placement Planet is One of the Leading Placement Agencies, Based in Ahmedabad, Gujarat. with Our Experience & Expertise, We are Able to Provide the Most Competent Manpower Solutions to the Clients. We are Engaged in Offering Manpower Recruitment Service, Placement Services, Human Resource Consultancy, Training & Development, Career Consultancy, Resume Writing Services,And Financial Services. Our Service Package is Based Entirely On Organization’s Needs & Requirements. We Offer Customized Hr Business Solutions that Vary Based Upon the Requirements of Hiring Companies and Job Seekers.",
	      "telephone" : "7433977155",
	      "email" : "placementplanet403@gmail.com"  
	       },
		  "url": "https://www.placementplanet.com/job-openings-for-telecaller-ahmedabad-999855.htm",
          "datePosted": "2022-12-22",
          
		  "baseSalary": " 1  Lac  To  1  Lac  25 Thousand ",
		  "description": "As a Telecaller, you are responsible for handling sales over the phone entirely. You are also responsible for solving questions in regard to the product or service provided by the company. In addition",
		  "educationRequirements": "Other Bachelor Degree",
		  "experienceRequirements": "0 - 2 Years",
		  "industry": "Real Estate / Construction",
		  "jobLocation": {
		    "@type": "Place",
		    "address": {
		      "@type": "PostalAddress",
		      "addressLocality": "Gujarat",
		      "addressRegion": "Ahmedabad"
		    }
		  },
		 "qualifications": "Other Bachelor Degree",
		     "skills": "Good Communication,Telecaller,Telesales,Telemarketer,Telemarketing Executive,Telemarketing,Customer Care Associate,Lead Generation Executive,Business Development Executive,Walk in"
		  }
		</script>
		";i:5;N;}