a:6:{i:0;s:8459:"					<div id="append2PageTittle">
    				<div class="page-title-inner bread-right head-inner fo">
    				<div id="breadcrumb">
					<div class="h1"><h1>Job openings for telemarketer in delhi ncr</h1></div>
					<p class="breadcrumb ar uu small"><a href="https://www.adihrconsulting.com/" title="Home">Home</a>
					
											<b class="ffv p2px">&rsaquo;</b><a href="https://www.adihrconsulting.com/current-jobs.htm" title="Current Jobs">Current Jobs</a>
																
					<b class="ffv p2px">&rsaquo;</b> Job openings for telemarketer in delhi ncr</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-->
				
								<div class="pt10px">
				<div class="xxxlarge fw6 dif">Telemarketer</div>
								
				<br>
				<p class="aj mt7px">We are looking for a self-driven Telemarketer to join our Sales team! As a Telemarketer, you will be responsible for managing calls of potential customers with the main goal to achieve your sales quota. (Both Inbound & Outbound calls)<br />
<br />
As a Telemarketer, we are expecting you to be an outstanding communicator and listener with the professional, but friendly approach. <br />
<br />
Responsibilities-<br />
<br />
Initiating sales with potential customers over the phone.<br />
Manage & convert in-bound sales calls (Leads).<br />
Contacts businesses and private individuals to solicit sales.<br />
Gathering and documenting customer information, payment methods, purchases, and reactions to product.<br />
Keeping up to date on all products and informing customers of new products.<br />
Answering customers' questions on the product.<br />
Meeting sales quotas.<br />
 <br />
Requirements-<br />
<br />
Excellent communication skills.<br />
Ability to engage customers in conversation.<br />
Good sales ability.<br />
Working knowledge of relevant computer software.<br />
Excellent interpersonal and problem solving skills.<br />
 <br />
Additional Information<br />
Company Name: 3R Scientific Pvt Ltd</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  75 Thousand  To  2  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, Other Bachelor Degree</td>
					</tr>					
										<tr>
					<td class="alpha75 p5px">Key Skills</td>
					<td class="p5px">
											<span class="bdr dib p2px10px mr5px mt2px">sales & marketing</span>
												<span class="bdr dib p2px10px mr5px mt2px"> inbound tele sales</span>
												<span class="bdr dib p2px10px mr5px mt2px"> tele - marketing</span>
												<span class="bdr dib p2px10px mr5px mt2px"> tele sales</span>
												<span class="bdr dib p2px10px mr5px mt2px"> inside sales</span>
												<span class="bdr dib p2px10px mr5px mt2px"> outbound telesales</span>
												<span class="bdr dib p2px10px mr5px mt2px"> result - oriented</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">3R Scientific Pvt Ltd.</p></td>
						</tr>
												<tr>
						<td class="w195 alpha75 p5px vat">About Company</td>
						<td class="p5px vat">The company's name is 3R Scientific Pvt Ltd. and their flagship product is COVICOAT™ which is rapidly growing. In the Media | COVICOAT™ is an Antimicrobial Self Disinfecting Surface Protection Coating made up of EPA certified agents which can protect practically any surface against viruses, bacteria, molds, fungus or other microbial growths for a period of 100 days.</td>
						</tr>
												<tr>
						<td class="w195 alpha75 p5px">Email ID</td>
						<td class="p5px"><a href="mailto:hiring@adihrconsulting.com"> hiring@adihrconsulting.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="754737">
					<input type="hidden" name="enq_type" value="2"><input type="hidden" name="vacancy_id" value="915377"><input type="hidden" name="subject" value="Applied for Telemarketer">
					</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-gurgaon.htm" title="Jobs in Gurgaon">Gurgaon</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px bdr mr7px mb7px "><a class="dif" href="jobs-in-kochi.htm" title="Jobs in Kochi">Kochi</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px bdr mr7px mb7px "><a class="dif" href="jobs-in-bangalore.htm" title="Jobs in Bangalore">Bangalore</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">(4)</span><a href="jobs-in-application-programming-fid.htm" title="IT Software - Application Programming / Maintenance Jobs">IT Software - Application Prog...</a></p>
										<p class="mb5px "><span class="fr">(1)</span><a href="jobs-in-sales-marketing-fid.htm" title="Sales/Marketing Jobs">Sales/Marketing</a></p>
										<p class="mb5px "><span class="fr">(1)</span><a href="jobs-in-legal-services-fid.htm" title="Legal / Law Services / Judiciary Jobs">Legal / Law Services / Judicia...</a></p>
										<p class="mb5px "><span class="fr">(1)</span><a href="jobs-in-erp-crm-edp-software-fid.htm" title="IT Software- ERP / CRM / EDP / MIS Jobs">IT Software- ERP / CRM / EDP /...</a></p>
										<p class="mb5px "><span class="fr">(1)</span><a href="jobs-in-computers-it-fid.htm" title="IT Hardware / Technical Support / Telecom Engineering Jobs">IT Hardware / Technical Suppor...</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: 'UTBwUlIweS94NUt0c3RUTTBDajhXdz09',data_type: 'RExzRmw1cmRsdlh6YkJlVUZBNnA4UT09'},
	  cache : false,
	  async: true
	  
	}).done(function(resp) {
	  //alert(resp)
	});
	</script>
	";i:1;s:64:"Job openings for telemarketer in delhi ncr | ADI HR & Consulting";i:2;s:116:"Telemarketer Jobs,Telemarketer Jobs in ,Telemarketer Vacancy in ,Telemarketer jobs in India,Sales/Marketing jobs in ";i:3;s:290:"Apply for Telemarketer Jobs in  India - Telemarketer Vacancy  in Sales/Marketing field with 0 to 2 years Work Experience, Key Skills are sales & marketing, inbound tele sales, tele - marketing, tele sales, inside sales, outbound telesales, result - oriented, Sales/Marketing jobs in   India";i:4;s:1886:"
		<script type="application/ld+json">
		{
		  "@context": "http://schema.org",
		  "@type": "JobPosting",
		  "title": "Telemarketer",
		  "baseSalary": " 1  Lac  75 Thousand  To  2  Lac  50 Thousand ",
		  "description": "We are looking for a self-driven Telemarketer to join our Sales team! As a Telemarketer, you will be responsible for managing calls of potential customers with the main goal to achieve your sales quota. (Both Inbound & Outbound calls)

As a Telemarketer, we are expecting you to be an outstanding communicator and listener with the professional, but friendly approach. 

Responsibilities-

Initiating sales with potential customers over the phone.
Manage & convert in-bound sales calls (Leads).
Contacts businesses and private individuals to solicit sales.
Gathering and documenting customer information, payment methods, purchases, and reactions to product.
Keeping up to date on all products and informing customers of new products.
Answering customers' questions on the product.
Meeting sales quotas.
 
Requirements-

Excellent communication skills.
Ability to engage customers in conversation.
Good sales ability.
Working knowledge of relevant computer software.
Excellent interpersonal and problem solving skills.
 
Additional Information
Company Name: 3R Scientific Pvt Ltd",
		  "educationRequirements": "Higher Secondary, Other Bachelor Degree",
		  "experienceRequirements": "0 - 2 Years",
		  "industry": "Sales/Marketing",
		  "jobLocation": {
		    "@type": "Place",
		    "address": {
		      "@type": "PostalAddress",
		      "addressLocality": "Delhi/NCR",
		      "addressRegion": ""
		    }
		  },
		 "qualifications": "Higher Secondary, Other Bachelor Degree",
		     "skills": "sales & marketing, inbound tele sales, tele - marketing, tele sales, inside sales, outbound telesales, result - oriented"
		  }
		</script>
		";i:5;N;}