a:6:{i:0;s:8475:"					<section class="headBg theme2 ">
					<div class="wrap">
					<div class="page-title-inner fo"> 
					<div class="h1"><h1>Job openings for crew manager in mumbai navi mumbai</h1></div>
					<p class="breadcrumb ar uu small"><a href="http://www.singhbusinessservices.com/" title="Home">Home</a>
					
											<b class="ffv p2px">&rsaquo;</b><a href="http://www.singhbusinessservices.com/current-jobs.htm" title="Current Jobs">Current Jobs</a>
																
					<b class="ffv p2px">&rsaquo;</b> Job openings for crew manager in mumbai navi mumbai</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">Crew Manager</div>
									<p class="mt7px fw6">Mumbai, Navi Mumbai</p>
									
				<br>
				<p class="aj mt7px">Manager Ratings Male candidate only<br />
<br />
Location – Seawoods<br />
<br />
Minimum experience – 08 to 09 Year (Shipping main fleet in crewing department with excellent communication and good computer skills).<br />
<br />
Wages –  Depend on interview and experience<br />
<br />
Education – Graduate in any stream<br />
<br />
 <br />
<br />
RESPONSIBILITIES<br />
<br />
      Manage the coordination with sourcing department for selection of officers and ensure timely delivery of qualified applicants.<br />
<br />
      Liaise with manning agents and Marine Operations Manager for crew change arrangement<br />
<br />
      Implementing manning decisions made by the Top Management.<br />
<br />
      Monitoring available ex-hands and schedule deployment, anticipating future Company’s needs for recruitment<br />
<br />
      Manpower Planning<br />
<br />
      Verifying that the qualifications and experience of new recruits are genuine.<br />
<br />
      Checking application forms and previous Company's records for each seagoing personnel prior to engagement.<br />
<br />
      Update & maintain crew database on a daily basis<br />
<br />
      Ensure having organized - documentation for all crewing matters<br />
<br />
      Monitor of documents and licenses validity for officers.<br />
<br />
      Validate completeness and validity of crew documents against company requirement and regulations<br />
<br />
      Manage the process of personnel mobilization and demobilization (travel arrangement, visa, hotel accommodation, etc).<br />
<br />
      Ensure the correct numbers and suitable personnel arrive on time.<br />
<br />
      Ensure company policies and procedures are disseminated and complied by all employees<br />
<br />
      Handle the new crew needs and logistics (safety, services, compensation, benefits, personnel, accommodation, etc).</p>
				
				<table class="w100 formTable bdr0 mt20px">	
				<tr>
				<td class="w195 alpha75 p5px">Experience</td>
				<td class="p5px">8 - 12 Years</td>
				</tr>			
											<tr>
							<td class="alpha75 p5px">Salary</td>
							<td class="p5px"> 6  Lac  To  12  Lac  P.A.</td>
							</tr>				
											
					<tr>
					<td class="alpha75 p5px">Industry</td>
					<td class="p5px">HR / Recruitment / Administration / IR / Training & Development / Operations</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">Crew Manager</span>
												<span class="bdr dib p2px10px mr5px mt2px"> Crew Management</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">Gurdeep Singh</td>
						</tr>					
												<tr>
						<td class="w195 alpha75 p5px">Address</td>
						<td class="p5px">Glomax Mall, S-41, Sector 2, Second Floor, Kharghar</td>
						</tr>					
												<tr>
						<td class="w195 alpha75 p5px">Mobile </td>
						<td class="p5px">7021106920 </td>
						</tr>
												<tr>
						<td class="w195 alpha75 p5px">Email ID</td>
						<td class="p5px"><a href="mailto:gurdeep@singhbusinessservices.com"> gurdeep@singhbusinessservices.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="822750">
					<input type="hidden" name="enq_type" value="2"><input type="hidden" name="vacancy_id" value="871004"><input type="hidden" name="subject" value="Applied for Crew Manager">
					</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-mumbai.htm" title="Jobs in Mumbai">Mumbai</a> <b class="alpha50 bn small">(11)</b></span>
										<span class="dib p5px10px c2px bdr mr7px mb7px "><a class="dif" href="jobs-in-navi-mumbai.htm" title="Jobs in Navi Mumbai">Navi Mumbai</a> <b class="alpha50 bn small">(4)</b></span>
										<span class="dib p5px10px c2px bdr mr7px mb7px "><a class="dif" href="jobs-in-thane.htm" title="Jobs in Thane">Thane</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">(7)</span><a href="jobs-in-cargo-freight-transportation-packaging-shipping-logistic-fid.htm" title="Cargo / Freight / Transportation / Packaging / Shipping/Logistic Jobs">Cargo / Freight / Transportati...</a></p>
										<p class="mb5px "><span class="fr">(2)</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">(2)</span><a href="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">(1)</span><a href="jobs-in-hotel-restaurants-travel-airlines-fid.htm" title="Hotel / Restaurants /Travel / Airlines Jobs">Hotel / Restaurants /Travel / ...</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: 'R3gxalVZR0hURmZUMmxPdmE0eGdWZz09',data_type: 'RExzRmw1cmRsdlh6YkJlVUZBNnA4UT09'},
	  cache : false,
	  async: true
	  
	}).done(function(resp) {
	  //alert(resp)
	});
	</script>
	";i:1;s:77:"Job openings for crew manager in mumbai navi mumbai | Singh Business Services";i:2;s:234:"Crew Manager Jobs,Crew Manager Jobs in Mumbai, Navi Mumbai,Crew Manager Vacancy in Mumbai, Navi Mumbai,Crew Manager jobs in India,HR / Recruitment / Administration / IR / Training & Development / Operations jobs in Mumbai, Navi Mumbai";i:3;s:360:"Apply for Crew Manager Jobs in Mumbai, Navi Mumbai India - Crew Manager Vacancy  in HR / Recruitment / Administration / IR / Training & Development / Operations field with 8 to 12 years Work Experience, Key Skills are Crew Manager, Crew Management, HR / Recruitment / Administration / IR / Training & Development / Operations jobs in Mumbai, Navi Mumbai  India";i:4;s:2379:"
		<script type="application/ld+json">
		{
		  "@context": "http://schema.org",
		  "@type": "JobPosting",
		  "title": "Crew Manager",
		  "baseSalary": " 6  Lac  To  12  Lac ",
		  "description": "Manager Ratings Male candidate only

Location – Seawoods

Minimum experience – 08 to 09 Year (Shipping main fleet in crewing department with excellent communication and good computer skills).

Wages –  Depend on interview and experience

Education – Graduate in any stream

 

RESPONSIBILITIES

      Manage the coordination with sourcing department for selection of officers and ensure timely delivery of qualified applicants.

      Liaise with manning agents and Marine Operations Manager for crew change arrangement

      Implementing manning decisions made by the Top Management.

      Monitoring available ex-hands and schedule deployment, anticipating future Company’s needs for recruitment

      Manpower Planning

      Verifying that the qualifications and experience of new recruits are genuine.

      Checking application forms and previous Company's records for each seagoing personnel prior to engagement.

      Update & maintain crew database on a daily basis

      Ensure having organized - documentation for all crewing matters

      Monitor of documents and licenses validity for officers.

      Validate completeness and validity of crew documents against company requirement and regulations

      Manage the process of personnel mobilization and demobilization (travel arrangement, visa, hotel accommodation, etc).

      Ensure the correct numbers and suitable personnel arrive on time.

      Ensure company policies and procedures are disseminated and complied by all employees

      Handle the new crew needs and logistics (safety, services, compensation, benefits, personnel, accommodation, etc).",
		  "educationRequirements": "Other Bachelor Degree",
		  "experienceRequirements": "8 - 12 Years",
		  "industry": "HR / Recruitment / Administration / IR / Training & Development / Operations",
		  "jobLocation": {
		    "@type": "Place",
		    "address": {
		      "@type": "PostalAddress",
		      "addressLocality": "Maharashtra",
		      "addressRegion": "Mumbai, Navi Mumbai"
		    }
		  },
		 "qualifications": "Other Bachelor Degree",
		     "skills": "Crew Manager, Crew Management"
		  }
		</script>
		";i:5;N;}