a:6:{i:0;s:12042:"					<section class="headBg theme2 ">
					<div class="wrap">
					<div class="page-title-inner fo"> 
					<div class="h1"><h1>Job openings for accounts head in rajkot</h1></div>
					<p class="breadcrumb ar uu small"><a href="http://www.hbstaffingservices.com/" title="Home">Home</a>
					
											<b class="ffv p2px">&rsaquo;</b><a href="http://www.hbstaffingservices.com/current-jobs.htm" title="Current Jobs">Current Jobs</a>
																
					<b class="ffv p2px">&rsaquo;</b> Job openings for accounts head in rajkot</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">Group C.F.O (Accounts & Finance)</div>
									<p class="mt7px fw6">Rajkot</p>
									
				<br>
				<p class="aj mt7px">Responsibilities:<br />
 Monitor and direct the implementation of strategic business plans in consultation with promoters & business head.<br />
 Develop financial ( procurement , Utilization & growth ) ( tax planning strategies – part of head F&A )<br />
 Manage the capital budget in consultation with promoters<br />
 Define / Develop Company’s performance measures. Provide periodical performance achievements to business<br />
 heads. Take up corrective measures with promoters & business heads<br />
 Develops organization prospects by studying economic trends and revenue opportunities; projecting / facilitating<br />
 financial business tie ups and expansion prospects;<br />
 Monitor cost reduction and systems enhancement initiatives of the function<br />
 Accumulating capital to fund expansion – all project finance related activities<br />
 Maximizes return on Company’s invested funds<br />
 Oversee & Control financial information as provided by Head F&A<br />
 Advice action on risk issues to audit committee of the BOD<br />
 Be a part of strategic think tank of the promoters, working on future financial & growth plans of the company<br />
 Reports financial status by developing forecasts; reporting results; analyzing variances; developing improvements<br />
 Construct and monitor reliable control systems.<br />
 Maintain appropriate insurance coverage.<br />
 Report risk issues to the audit committee of the board of directors.<br />
 Maintain banking relationships. Represent the company with investments and top management and investors.<br />
 Implements best practices as prevalent in the industry<br />
 Act as a performance coach for various teams, and provide effective solutions during a crisis<br />
Skills:<br />
 Proficient knowledge of MS Excel, PowerPoint, Word software.<br />
 Excellent written and verbal communication skills.<br />
 Problem Solving or Analysis skill.<br />
 Should be Accurate and responsible</p>
				
				<table class="w100 formTable bdr0 mt20px">	
				<tr>
				<td class="w195 alpha75 p5px">Experience</td>
				<td class="p5px">10 - 20 Years</td>
				</tr>			
											<tr>
							<td class="alpha75 p5px">Salary</td>
							<td class="p5px"> 15  Lac  To   30 Lac  P.A.</td>
							</tr>				
											
					<tr>
					<td class="alpha75 p5px">Industry</td>
					<td class="p5px">Financial Services / Banking, Investments / Insurance / stock market / Loan</td>
					</tr>
									
									<tr>
					<td class="alpha75 p5px">Qualification</td>
					<td class="p5px">CA</td>
					</tr>					
										<tr>
					<td class="alpha75 p5px">Key Skills</td>
					<td class="p5px">
											<span class="bdr dib p2px10px mr5px mt2px">Accounts Head</span>
												<span class="bdr dib p2px10px mr5px mt2px"> Senior Accountant</span>
												<span class="bdr dib p2px10px mr5px mt2px"> Accountant</span>
												<span class="bdr dib p2px10px mr5px mt2px"> Account Analyst</span>
												<span class="bdr dib p2px10px mr5px mt2px"></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">Email ID</td>
						<td class="p5px"><a href="mailto:hbstaffing1@yahoo.com"> hbstaffing1@yahoo.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="707845">
					<input type="hidden" name="enq_type" value="2"><input type="hidden" name="vacancy_id" value="926453"><input type="hidden" name="subject" value="Applied for Group C.F.O (Accounts & Finance)">
					</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-ahmedabad.htm" title="Jobs in Ahmedabad">Ahmedabad</a> <b class="alpha50 bn small">(34)</b></span>
										<span class="dib p5px10px c2px bdr mr7px mb7px "><a class="dif" href="jobs-in-vadodara.htm" title="Jobs in Vadodara">Vadodara</a> <b class="alpha50 bn small">(16)</b></span>
										<span class="dib p5px10px c2px bdr mr7px mb7px "><a class="dif" href="jobs-in-gandhinagar.htm" title="Jobs in Gandhinagar">Gandhinagar</a> <b class="alpha50 bn small">(6)</b></span>
										<span class="dib p5px10px c2px bdr mr7px mb7px "><a class="dif" href="jobs-in-rajkot.htm" title="Jobs in Rajkot">Rajkot</a> <b class="alpha50 bn small">(6)</b></span>
										<span class="dib p5px10px c2px bdr mr7px mb7px "><a class="dif" href="jobs-in-anand.htm" title="Jobs in Anand">Anand</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px bdr mr7px mb7px "><a class="dif" href="jobs-in-surat.htm" title="Jobs in Surat">Surat</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px bdr mr7px mb7px "><a class="dif" href="jobs-in-bhuj.htm" title="Jobs in Bhuj">Bhuj</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px bdr mr7px mb7px "><a class="dif" href="jobs-in-delhi.htm" title="Jobs in Delhi">Delhi</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px bdr mr7px mb7px "><a class="dif" href="jobs-in-meerut.htm" title="Jobs in Meerut">Meerut</a> <b class="alpha50 bn small">(1)</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>
											<span class="dib p5px10px c2px bdr mr7px mb7px "><a class="dif" href="jobs-in-uganda.htm" title="Jobs in Uganda">Uganda</a> <b class="alpha50 bn small">(2)</b></span>
											<span class="uu db ar"><a class="showallspan" data-target="show" href="javascript:void(0)" >View More</a></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">(21)</span><a href="jobs-in-financial-services-banking-investments-insurance-stock-market-loan-fid.htm" title="Financial Services / Banking, Investments / Insurance / stock market / Loan Jobs">Financial Services / Banking, ...</a></p>
										<p class="mb5px "><span class="fr">(9)</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">(5)</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">(4)</span><a href="jobs-in-sales-marketing-business-development-telecaller-fid.htm" title="Sales & Marketing / Business Development/telecaller Jobs">Sales & Marketing / Business D...</a></p>
										<p class="mb5px "><span class="fr">(4)</span><a href="jobs-in-manufacturing-production-fid.htm" title="Manufacturing / Production / Quality Jobs">Manufacturing / Production / Q...</a></p>
										<p class="mb5px "><span class="fr">(2)</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-client-server-fid.htm" title="IT Software - Client Server Jobs">IT Software - Client Server</a></p>
										<p class="mb5px "><span class="fr">(2)</span><a href="jobs-in-front-office-reception-computer-operator-assistant-fid.htm" title="Front Office / Reception/Computer Operator/Assistant Jobs">Front Office / Reception/Compu...</a></p>
										<p class="mb5px "><span class="fr">(1)</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-ecommerce-internet-marketing-fid.htm" title="IT Software - Ecommerce / Internet Technologies Jobs">IT Software - Ecommerce / Inte...</a></p>
										<p class="mb5px "><span class="fr">(1)</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>
										<p class="mb5px spanlist dn"><span class="fr">(1)</span><a href="jobs-in-education-teaching-training-counselling-fid.htm" title="Education / Teaching / Training / Counselling / Academic Jobs">Education / Teaching / Trainin...</a></p>
										<p class="mb5px spanlist dn"><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>
										<span class="uu db ar"><a class="showallspan" data-target="show" href="javascript:void(0)" >View More</a></span>
									
				</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: 'NkEycnMvYytYeEhQSGZqZmNaS2tUZz09',data_type: 'RExzRmw1cmRsdlh6YkJlVUZBNnA4UT09'},
	  cache : false,
	  async: true
	  
	}).done(function(resp) {
	  //alert(resp)
	});
	</script>
	";i:1;s:63:"Job openings for accounts head in rajkot | HB Staffing Services";i:2;s:274:"Group C.F.O (Accounts & Finance) Jobs,Group C.F.O (Accounts & Finance) Jobs in Rajkot,Group C.F.O (Accounts & Finance) Vacancy in Rajkot,Group C.F.O (Accounts & Finance) jobs in India,Financial Services / Banking, Investments / Insurance / stock market / Loan jobs in Rajkot";i:3;s:406:"Apply for Group C.F.O (Accounts & Finance) Jobs in Rajkot India - Group C.F.O (Accounts & Finance) Vacancy  in Financial Services / Banking, Investments / Insurance / stock market / Loan field with 10 to 20 years Work Experience, Key Skills are Accounts Head, Senior Accountant, Accountant, Account Analyst,, Financial Services / Banking, Investments / Insurance / stock market / Loan jobs in Rajkot  India";i:4;s:2619:"
		<script type="application/ld+json">
		{
		  "@context": "http://schema.org",
		  "@type": "JobPosting",
		  "title": "Group C.F.O (Accounts & Finance)",
		  "baseSalary": " 15  Lac  To   30 Lac ",
		  "description": "Responsibilities:
 Monitor and direct the implementation of strategic business plans in consultation with promoters & business head.
 Develop financial ( procurement , Utilization & growth ) ( tax planning strategies – part of head F&A )
 Manage the capital budget in consultation with promoters
 Define / Develop Company’s performance measures. Provide periodical performance achievements to business
 heads. Take up corrective measures with promoters & business heads
 Develops organization prospects by studying economic trends and revenue opportunities; projecting / facilitating
 financial business tie ups and expansion prospects;
 Monitor cost reduction and systems enhancement initiatives of the function
 Accumulating capital to fund expansion – all project finance related activities
 Maximizes return on Company’s invested funds
 Oversee & Control financial information as provided by Head F&A
 Advice action on risk issues to audit committee of the BOD
 Be a part of strategic think tank of the promoters, working on future financial & growth plans of the company
 Reports financial status by developing forecasts; reporting results; analyzing variances; developing improvements
 Construct and monitor reliable control systems.
 Maintain appropriate insurance coverage.
 Report risk issues to the audit committee of the board of directors.
 Maintain banking relationships. Represent the company with investments and top management and investors.
 Implements best practices as prevalent in the industry
 Act as a performance coach for various teams, and provide effective solutions during a crisis
Skills:
 Proficient knowledge of MS Excel, PowerPoint, Word software.
 Excellent written and verbal communication skills.
 Problem Solving or Analysis skill.
 Should be Accurate and responsible",
		  "educationRequirements": "CA",
		  "experienceRequirements": "10 - 20 Years",
		  "industry": "Financial Services / Banking, Investments / Insurance / stock market / Loan",
		  "jobLocation": {
		    "@type": "Place",
		    "address": {
		      "@type": "PostalAddress",
		      "addressLocality": "Gujarat",
		      "addressRegion": "Rajkot"
		    }
		  },
		 "qualifications": "CA",
		     "skills": "Accounts Head, Senior Accountant, Accountant, Account Analyst,"
		  }
		</script>
		";i:5;N;}