a:6:{i:0;s:6895:"				<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 />
<br />
We are conducting the interviews for a renowned company in Jaipur,  for the designation of Customer Service Associate (Blended/Backed/Inbound).<br />
<br />
Please Note: We Do NOT charge any kind of fees.<br />
<br />
Desired candidature is mention below.<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 />
- Comfortable 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 />
- Guest House From The Company\'s Side*<br />
- Travel Allowance*<br />
- Relocation Bonus*<br />
<br />
We hire for various industries, designations and companies across India.<br />
<br />
<br />
You can help your friends and colleagues by referring their contact if they are looking out for a job.</p>
				
				<table class="w100 formTable bdr0 mt20px">	
				<tr>
				<td class="w195 alpha75 p5px">Experience</td>
				<td class="p5px">0 - 5 Years</td>
				</tr>			
											<tr>
							<td class="alpha75 p5px">Salary</td>
							<td class="p5px"> 2  Lac  25 Thousand  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">Good Communication skill</span>
												<span class="bdr dib p2px10px mr5px mt2px"> International BPO</span>
												<span class="bdr dib p2px10px mr5px mt2px"> International Call Center</span>
												<span class="bdr dib p2px10px mr5px mt2px"> Customer Service Associate</span>
												<span class="bdr dib p2px10px mr5px mt2px"> Customer Care Executive</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">Contact Person</td>
						<td class="p5px">Sahil Saxena</td>
						</tr>					
												<tr>
						<td class="w195 alpha75 p5px">Address</td>
						<td class="p5px">Subhash Nagar</td>
						</tr>					
												<tr>
						<td class="w195 alpha75 p5px">Mobile </td>
						<td class="p5px">7599810837 </td>
						</tr>
												<tr>
						<td class="w195 alpha75 p5px">Email ID</td>
						<td class="p5px"><a href="mailto:sahil.elit@gmail.com"> sahil.elit@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="925475">
					<input type="hidden" name="enq_type" value="2"><input type="hidden" name="vacancy_id" value="958111"><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">(2)</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>
									</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">(2)</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: 'cExVTnVjTm5la1R0SkszZEE3Y1lKUT09',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:367:"Apply for International BPO Jobs in Jaipur India - International BPO Vacancy  in ITES / BPO / KPO / LPO / Customer Service field with 0 to 5 years Work Experience, Key Skills are Good Communication skill, International BPO, International Call Center, Customer Service Associate, Customer Care Executive, ITES / BPO / KPO / LPO / Customer Service jobs in Jaipur  India";i:4;s:1834:"
		<script type="application/ld+json">
		{
		  "@context": "http://schema.org",
		  "@type": "JobPosting",
		  "title": "International BPO",
		  "baseSalary": " 2  Lac  25 Thousand  To  3  Lac ",
		  "description": "Dear Candidates,

We are conducting the interviews for a renowned company in Jaipur,  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
- Comfortable 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.",
		  "educationRequirements": "Secondary School",
		  "experienceRequirements": "0 - 5 Years",
		  "industry": "ITES / BPO / KPO / LPO / Customer Service",
		  "jobLocation": {
		    "@type": "Place",
		    "address": {
		      "@type": "PostalAddress",
		      "addressLocality": "Rajasthan",
		      "addressRegion": "Jaipur"
		    }
		  },
		 "qualifications": "Secondary School",
		     "skills": "Good Communication skill, International BPO, International Call Center, Customer Service Associate, Customer Care Executive"
		  }
		</script>
		";i:5;N;}