a:6:{i:0;s:7518:"					<section class="headBg theme2 ">
					<div class="wrap">
					<div class="page-title-inner fo"> 
					<div class="h1"><h1>Job openings for hr executive female in bhopal</h1></div>
					<p class="breadcrumb ar uu small"><a href="http://www.talentleads.in/" title="Home">Home</a>
					
															
					<b class="ffv p2px">&rsaquo;</b> Job openings for hr executive female in bhopal</p>
					</div>
					</div>
					</section>
									<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">Hr Executive (Female) For A Executive Search Firm In Bhopal</div>
									<p class="mt7px fw6">Bhopal</p>
									
				<br>
				<p class="aj mt7px">Job Title/Designation:<br />
<br />
Hr Executive (female) for a Executive Search firm in Bhopal<br />
Job Description:<br />
<br />
Job Responsibilities:-<br />
<br />
To understand different companies businesses and its manpower requirements<br />
<br />
To Source and screen the candidates to build a pool of interested candidates through Job Portals, data Bank, Head Hunting, References in given time frame.<br />
<br />
To coordinate with shortlisted candidates for interviews & follow up for their feedback from clients<br />
<br />
To coordinate with candidates for offer and joining of the candidates<br />
<br />
To coordinate with clients over phone and email for feedback and open positions<br />
<br />
To prepare daily MIS and Tracker in excel format<br />
<br />
To analyze talent market with respect to positions and company<br />
<br />
To coordinate with clients for fulfillment of the manpower requirements.<br />
<br />
Candidate Profile:<br />
<br />
MBA HR Fresher/ Experienced (Female candidate)<br />
<br />
Excellent English communication skills / written or verbal English should be excellent<br />
<br />
Understanding of Recruitment/ HR fundamentals<br />
<br />
Career oriented with learning attitude<br />
<br />
Able to Handle Pressure<br />
<br />
Sincere and creative thinker<br />
<br />
Experience: 0 to 2 years</p>
				
				<table class="w100 formTable bdr0 mt20px">	
				<tr>
				<td class="w195 alpha75 p5px">Experience</td>
				<td class="p5px">0 - 1 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">HR / Recruitment / Administration / IR</td>
					</tr>
									
									<tr>
					<td class="alpha75 p5px">Qualification</td>
					<td class="p5px">M.B.A/PGDM</td>
					</tr>					
										<tr>
					<td class="alpha75 p5px">Key Skills</td>
					<td class="p5px">
											<span class="bdr dib p2px10px mr5px mt2px">Recruiter</span>
												<span class="bdr dib p2px10px mr5px mt2px">fresher</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">HR</td>
						</tr>					
												<tr>
						<td class="w195 alpha75 p5px">Address</td>
						<td class="p5px">Minal Complex, J K Road, Govindpura</td>
						</tr>					
												<tr>
						<td class="w195 alpha75 p5px">Mobile </td>
						<td class="p5px">8827392102 </td>
						</tr>
												<tr>
						<td class="w195 alpha75 p5px">Email ID</td>
						<td class="p5px"><a href="mailto:shailendra.saini@talentleads.co.in"> shailendra.saini@talentleads.co.in </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="333396">
					<input type="hidden" name="enq_type" value="2"><input type="hidden" name="vacancy_id" value="820432"><input type="hidden" name="subject" value="Applied for Hr Executive (Female) for a Executive search firm in Bhopal">
					</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-yamunanagar.htm" title="Jobs in Yamunanagar">Yamunanagar</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px bdr mr7px mb7px "><a class="dif" href="jobs-in-bhopal.htm" title="Jobs in Bhopal">Bhopal</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px bdr mr7px mb7px "><a class="dif" href="jobs-in-noida.htm" title="Jobs in Noida">Noida</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-engineering-technical-rd-fid.htm" title="Engineering / Technical / R&D Jobs">Engineering / Technical / R&D</a></p>
										<p class="mb5px "><span class="fr">(1)</span><a href="jobs-in-human-resources-fid.htm" title="HR / Recruitment / Administration / IR Jobs">HR / Recruitment / Administrat...</a></p>
										<p class="mb5px "><span class="fr">(1)</span><a href="jobs-in-accounting-tax-fid.htm" title="Accounting / Auditing / Taxation Jobs">Accounting / Auditing / Taxati...</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>
									
				</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: 'VkVNVmYxRDJ0OEdQb2hlNTZaTTcxUT09',data_type: 'RExzRmw1cmRsdlh6YkJlVUZBNnA4UT09'},
	  cache : false,
	  async: true
	  
	}).done(function(resp) {
	  //alert(resp)
	});
	</script>
	";i:1;s:82:"Job openings for hr executive female in bhopal | Talent Leads Hr Solutions Pvt Ltd";i:2;s:345:"Hr Executive (Female) for a Executive search firm in Bhopal Jobs,Hr Executive (Female) for a Executive search firm in Bhopal Jobs in Bhopal,Hr Executive (Female) for a Executive search firm in Bhopal Vacancy in Bhopal,Hr Executive (Female) for a Executive search firm in Bhopal jobs in India,HR / Recruitment / Administration / IR jobs in Bhopal";i:3;s:339:"Apply for Hr Executive (Female) for a Executive search firm in Bhopal Jobs in Bhopal India - Hr Executive (Female) for a Executive search firm in Bhopal Vacancy  in HR / Recruitment / Administration / IR field with 0 to 1 years Work Experience, Key Skills are Recruiter,fresher, HR / Recruitment / Administration / IR jobs in Bhopal  India";i:4;s:1836:"
		<script type="application/ld+json">
		{
		  "@context": "http://schema.org",
		  "@type": "JobPosting",
		  "title": "Hr Executive (Female) for a Executive search firm in Bhopal",
		  "baseSalary": " 1  Lac  To  1  Lac  25 Thousand ",
		  "description": "Job Title/Designation:

Hr Executive (female) for a Executive Search firm in Bhopal
Job Description:

Job Responsibilities:-

To understand different companies businesses and its manpower requirements

To Source and screen the candidates to build a pool of interested candidates through Job Portals, data Bank, Head Hunting, References in given time frame.

To coordinate with shortlisted candidates for interviews & follow up for their feedback from clients

To coordinate with candidates for offer and joining of the candidates

To coordinate with clients over phone and email for feedback and open positions

To prepare daily MIS and Tracker in excel format

To analyze talent market with respect to positions and company

To coordinate with clients for fulfillment of the manpower requirements.

Candidate Profile:

MBA HR Fresher/ Experienced (Female candidate)

Excellent English communication skills / written or verbal English should be excellent

Understanding of Recruitment/ HR fundamentals

Career oriented with learning attitude

Able to Handle Pressure

Sincere and creative thinker

Experience: 0 to 2 years",
		  "educationRequirements": "M.B.A/PGDM",
		  "experienceRequirements": "0 - 1 Years",
		  "industry": "HR / Recruitment / Administration / IR",
		  "jobLocation": {
		    "@type": "Place",
		    "address": {
		      "@type": "PostalAddress",
		      "addressLocality": "Madhya Pradesh",
		      "addressRegion": "Bhopal"
		    }
		  },
		 "qualifications": "M.B.A/PGDM",
		     "skills": "Recruiter,fresher"
		  }
		</script>
		";i:5;N;}