a:6:{i:0;s:7921:"					<section class="headBg theme2 ">
					<div class="wrap">
					<div class="page-title-inner fo"> 
					<div class="h1"><h1>Job openings for accounting in andhra pradesh karnataka kerala</h1></div>
					<p class="breadcrumb ar uu small"><a href="https://www.parasperfect.in/" title="Home">Home</a>
					
											<b class="ffv p2px">&rsaquo;</b><a href="https://www.parasperfect.in/current-jobs.htm" title="Current Jobs">Current Jobs</a>
																
					<b class="ffv p2px">&rsaquo;</b> Job openings for accounting in andhra pradesh karnataka kerala</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">Accounting</div>
								
				<br>
				<p class="aj mt7px">As an accountant you will be responsible for preparing accounts, budgeting and managing financial information. You could also be advising and helping clients, whether that’s individuals or international companies, on financial situations.<br />
<br />
Accountants core responsibilities are typically to prepare and examine financial records, assuring information is up to date and accurate. However, you could specialize in particular areas such as forensic accounting or taxation or focus on more specific areas of a company's financial department.<br />
Duties of an accountant<br />
Preparing accounts and tax returns<br />
Monitoring spending and budgets<br />
Auditing and analysing financial performance<br />
Financial forecasting and risk analysis<br />
Advising on how to reduce costs and increase profits<br />
Compiling and presenting financial and budget reports<br />
Ensure that financial statements and records comply with laws and regulations<br />
Keeping account books and systems up to date.</p>
				
				<table class="w100 formTable bdr0 mt20px">	
				<tr>
				<td class="w195 alpha75 p5px">Experience</td>
				<td class="p5px">0 - 6 Years</td>
				</tr>			
											<tr>
							<td class="alpha75 p5px">Salary</td>
							<td class="p5px"> 3  Lac  To  5  Lac  50 Thousand  P.A.</td>
							</tr>				
											
					<tr>
					<td class="alpha75 p5px">Industry</td>
					<td class="p5px">Accounting / Auditing / Taxation</td>
					</tr>
									
									<tr>
					<td class="alpha75 p5px">Qualification</td>
					<td class="p5px">Vocational Course, Diploma, Professional Degree, B.C.A, B.B.A, B.Com, M.C.A, M.B.A/PGDM, M.Com</td>
					</tr>					
										<tr>
					<td class="alpha75 p5px">Key Skills</td>
					<td class="p5px">
											<span class="bdr dib p2px10px mr5px mt2px">Accounts Officer</span>
												<span class="bdr dib p2px10px mr5px mt2px"> TDS</span>
												<span class="bdr dib p2px10px mr5px mt2px"> Accounts Head</span>
												<span class="bdr dib p2px10px mr5px mt2px"> Accounts Officer</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">Contact Person</td>
						<td class="p5px">Akhila jhon</td>
						</tr>					
												<tr>
						<td class="w195 alpha75 p5px">Address</td>
						<td class="p5px">715/31, Ashoka Enclave, Near Kanishka Tower,sector-31,</td>
						</tr>					
												<tr>
						<td class="w195 alpha75 p5px">Mobile </td>
						<td class="p5px">7080467689 </td>
						</tr>
												<tr>
						<td class="w195 alpha75 p5px">Email ID</td>
						<td class="p5px"><a href="mailto:johnakhila745@gmail.com"> johnakhila745@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="879518">
					<input type="hidden" name="enq_type" value="2"><input type="hidden" name="vacancy_id" value="1000874"><input type="hidden" name="subject" value="Applied for Accounting">
					</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-tirupur.htm" title="Jobs in Tirupur">Tirupur</a> <b class="alpha50 bn small">(11)</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">(3)</span><a href="jobs-in-health-care-pharmaceuticals-medical-fid.htm" title="Health Care / Pharmaceuticals / Medical Jobs">Health Care / Pharmaceuticals ...</a></p>
										<p class="mb5px "><span class="fr">(3)</span><a href="jobs-in-hotel-restaurants-travel-airlines-fid.htm" title="Hotel / Restaurants /Travel / Airlines Jobs">Hotel / Restaurants /Travel / ...</a></p>
										<p class="mb5px "><span class="fr">(2)</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">(2)</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">(1)</span><a href="jobs-in-biotech-scientist-fid.htm" title="Pharma / R&D / Biotech Jobs">Pharma / R&D / Biotech</a></p>
										<p class="mb5px "><span class="fr">(1)</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">(1)</span><a href="jobs-in-computers-it-fid.htm" title="IT Hardware / Technical Support / Telecom Engineering Jobs">IT Hardware / Technical Suppor...</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: 'NU83cnQ3ZzNnczZPRVRITjFOeWlSZz09',data_type: 'RExzRmw1cmRsdlh6YkJlVUZBNnA4UT09'},
	  cache : false,
	  async: true
	  
	}).done(function(resp) {
	  //alert(resp)
	});
	</script>
	";i:1;s:81:"Job openings for accounting in andhra pradesh karnataka kerala | Addison Services";i:2;s:125:"Accounting Jobs,Accounting Jobs in ,Accounting Vacancy in ,Accounting jobs in India,Accounting / Auditing / Taxation jobs in ";i:3;s:255:"Apply for Accounting Jobs in  India - Accounting Vacancy  in Accounting / Auditing / Taxation field with 0 to 6 years Work Experience, Key Skills are Accounts Officer, TDS, Accounts Head, Accounts Officer,, Accounting / Auditing / Taxation jobs in   India";i:4;s:2338:"
		<script type="application/ld+json">
		{
		  "@context": "http://schema.org",
		  "@type": "JobPosting",
		  "title": "Accounting",
		  "identifier": {
	        "@type": "PropertyValue",
	        "name": "",
	        "value":  "1000874"
	      },
		  "hiringOrganization": {
	      "@type" : "Organization",
	      "name" : "",
	      "description": "",
	      "telephone" : "7080467689",
	      "email" : "johnakhila745@gmail.com"  
	       },
		  "url": "https://www.parasperfect.in/job-openings-for-accounting-andhra-pradesh-karnataka-kerala-1000874.htm",
          "datePosted": "2021-10-07",
          
		  "baseSalary": " 3  Lac  To  5  Lac  50 Thousand ",
		  "description": "As an accountant you will be responsible for preparing accounts, budgeting and managing financial information. You could also be advising and helping clients, whether that’s individuals or international companies, on financial situations.

Accountants core responsibilities are typically to prepare and examine financial records, assuring information is up to date and accurate. However, you could specialize in particular areas such as forensic accounting or taxation or focus on more specific areas of a company's financial department.
Duties of an accountant
Preparing accounts and tax returns
Monitoring spending and budgets
Auditing and analysing financial performance
Financial forecasting and risk analysis
Advising on how to reduce costs and increase profits
Compiling and presenting financial and budget reports
Ensure that financial statements and records comply with laws and regulations
Keeping account books and systems up to date.",
		  "educationRequirements": "Vocational Course, Diploma, Professional Degree, B.C.A, B.B.A, B.Com, M.C.A, M.B.A/PGDM, M.Com",
		  "experienceRequirements": "0 - 6 Years",
		  "industry": "Accounting / Auditing / Taxation",
		  "jobLocation": {
		    "@type": "Place",
		    "address": {
		      "@type": "PostalAddress",
		      "addressLocality": "Andhra Pradesh, Karnataka, Kerala, Tamil Nadu, Telangana",
		      "addressRegion": ""
		    }
		  },
		 "qualifications": "Vocational Course, Diploma, Professional Degree, B.C.A, B.B.A, B.Com, M.C.A, M.B.A/PGDM, M.Com",
		     "skills": "Accounts Officer, TDS, Accounts Head, Accounts Officer,"
		  }
		</script>
		";i:5;N;}