a:6:{i:0;s:7022:"				<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 international bpo in jaipur</h1></div>
					<p class="breadcrumb ar uu small"> <a href="http://www.elitebusinessolution.in/">Home</a>
					
											<b class="ffv p2px">&rsaquo;</b><a href="http://www.elitebusinessolution.in/current-jobs.htm" title="Current Jobs">Current Jobs</a>  			
											
					<b class="ffv p2px">&rsaquo;</b> Job openings for international bpo in jaipur</p>
									<div class="pt10px">
				<div class="xxxlarge fw6 dif">International BPO</div>
									<p class="mt7px fw6">Jaipur</p>
									
				<br>
				<p class="aj mt7px">Dear Candidates,<br />
We are conducting the interviews for a renowned company in Jaipur, Indore, Mohali and Gurgaon for the designation of Customer Service Associate (Blended/Backed/Inbound). <br />
Please Note: We Do NOT charge any kind of fees.<br />
<br />
Desired candidature is mention below.<br />
<br />
<br />
Key responsibilities required:<br />
<br />
- Technical and Customer Support Executive<br />
- Need to have Good comm. skills in English-Verbal<br />
- Excellent Understanding about customer service<br />
- Comfortble for a Rotational Shift & Rotational offs.<br />
- International Clients.<br />
- Technical Process.<br />
- Financial Process.<br />
-?Voice / Non voice / Inbound / Outbound / Blended<br />
- Salary - Best In Industry<br />
- High growth opportunities.<br />
- Guest House Facility<br />
- Friendly environment with dynamic exposure.<br />
- Immediate Joining<br />
- Any undergraduate / Graduate <br />
<br />
Benefits: <br />
<br />
- Guest House From The Company's Side*<br />
<br />
- Travel Allowance*<br />
<br />
- Relocation Bonus*<br />
<br />
<br />
We hire for various industries, designations and companies across India.<br />
<br />
You can help your friends and colleagues by referring their contact if they are looking out for a job.<br />
Regards,<br />
Sahil Saxena<br />
HR Recruiter<br />
.</p>
				
				<table class="w100 formTable bdr0 mt20px">	
				<tr>
				<td class="w195 alpha75 p5px">Experience</td>
				<td class="p5px">0 - 3 Years</td>
				</tr>			
											<tr>
							<td class="alpha75 p5px">Salary</td>
							<td class="p5px"> 1  Lac  To  3  Lac  P.A.</td>
							</tr>				
											
					<tr>
					<td class="alpha75 p5px">Industry</td>
					<td class="p5px">ITES / BPO / KPO / LPO / Customer Service</td>
					</tr>
									
									<tr>
					<td class="alpha75 p5px">Qualification</td>
					<td class="p5px">Secondary School</td>
					</tr>					
										<tr>
					<td class="alpha75 p5px">Key Skills</td>
					<td class="p5px">
											<span class="bdr dib p2px10px mr5px mt2px">Customer Support Associate</span>
												<span class="bdr dib p2px10px mr5px mt2px"> Customer care</span>
												<span class="bdr dib p2px10px mr5px mt2px"> international BPO</span>
												<span class="bdr dib p2px10px mr5px mt2px"> international call center</span>
											</td>
					</tr>
									
				</table>
				</div>
				<br>
				<div class="pt20px">
				<p class="large fw6">About Company</p>
				<div class="mt10px">
				
				Elite Business Solutions is an emerging name in the placement sector of Bareilly. We are actively engaged in offering the best-in-class placement services and manpower recruitment services. With the support of a team of meticulous professionals, we have been able to cater to various placement and recruitment requirements of candidates and organizations respectively. Our team members are highly qualified and possess rich knowledge of their respective domains. Moreover, we keep them updated by the use of advanced technology to match their skills with current prevailing trends in the industry.				
				<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="925475">
					<input type="hidden" name="enq_type" value="2"><input type="hidden" name="vacancy_id" value="915138"><input type="hidden" name="subject" value="Applied for International BPO">
					</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-jaipur.htm" title="Jobs in Jaipur">Jaipur</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px bdr mr7px mb7px "><a class="dif" href="jobs-in-mohali.htm" title="Jobs in Mohali">Mohali</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px bdr mr7px mb7px "><a class="dif" href="jobs-in-lucknow.htm" title="Jobs in Lucknow">Lucknow</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">(5)</span><a href="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>
									
				</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: 'VU5iSnhMekQvZzBpc3l6K0gvNTFhdz09',data_type: 'RExzRmw1cmRsdlh6YkJlVUZBNnA4UT09'},
	  cache : false,
	  async: true
	  
	}).done(function(resp) {
	  //alert(resp)
	});
	</script>
	";i:1;s:69:"Job openings for international bpo in jaipur | Elite Busines Solution";i:2;s:180:"International BPO Jobs,International BPO Jobs in Jaipur,International BPO Vacancy in Jaipur,International BPO jobs in India,ITES / BPO / KPO / LPO / Customer Service jobs in Jaipur";i:3;s:331:"Apply for International BPO Jobs in Jaipur India - International BPO Vacancy  in ITES / BPO / KPO / LPO / Customer Service field with 0 to 3 years Work Experience, Key Skills are Customer Support Associate, Customer care, international BPO, international call center, ITES / BPO / KPO / LPO / Customer Service jobs in Jaipur  India";i:4;s:1851:"
		<script type="application/ld+json">
		{
		  "@context": "http://schema.org",
		  "@type": "JobPosting",
		  "title": "International BPO",
		  "baseSalary": " 1  Lac  To  3  Lac ",
		  "description": "Dear Candidates,
We are conducting the interviews for a renowned company in Jaipur, Indore, Mohali and Gurgaon for the designation of Customer Service Associate (Blended/Backed/Inbound). 
Please Note: We Do NOT charge any kind of fees.

Desired candidature is mention below.


Key responsibilities required:

- Technical and Customer Support Executive
- Need to have Good comm. skills in English-Verbal
- Excellent Understanding about customer service
- Comfortble for a Rotational Shift & Rotational offs.
- International Clients.
- Technical Process.
- Financial Process.
-?Voice / Non voice / Inbound / Outbound / Blended
- Salary - Best In Industry
- High growth opportunities.
- Guest House Facility
- Friendly environment with dynamic exposure.
- Immediate Joining
- Any undergraduate / Graduate 

Benefits: 

- Guest House From The Company's Side*

- Travel Allowance*

- Relocation Bonus*


We hire for various industries, designations and companies across India.

You can help your friends and colleagues by referring their contact if they are looking out for a job.
Regards,
Sahil Saxena
HR Recruiter
.",
		  "educationRequirements": "Secondary School",
		  "experienceRequirements": "0 - 3 Years",
		  "industry": "ITES / BPO / KPO / LPO / Customer Service",
		  "jobLocation": {
		    "@type": "Place",
		    "address": {
		      "@type": "PostalAddress",
		      "addressLocality": "Rajasthan",
		      "addressRegion": "Jaipur"
		    }
		  },
		 "qualifications": "Secondary School",
		     "skills": "Customer Support Associate, Customer care, international BPO, international call center"
		  }
		</script>
		";i:5;N;}