a:6:{i:0;s:6945:"					<section class="headBg theme2 ">
					<div class="wrap">
					<div class="page-title-inner fo"> 
					<div class="h1"><h1>Job openings for accounts assistant 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 accounts assistant 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">Accounts Assistant</div>
								
				<br>
				<p class="aj mt7px">We are searching for a motivated Accounting Assistant who is an excellent multitasker with exceptional communication and time management skills. Accounting Assistants can expect to assist the Accounting department with data entry, processing, and recording transactions, updating the ledger, assisting with audits or fact-checking, and preparing budgets and reports. You should be thorough, accurate, and honest with good bookkeeping skills.<br />
<br />
To be a successful Accounting Assistant, you should have an understanding of basic Accounting principles and proficiency with computers and software, such as MS Excel or Quickbooks. You should be trustworthy, efficient, and organized.<br />
<br />
Accounting Assistant Responsibilities:<br />
Providing support to the Accounting Department.<br />
Performing basic office tasks, such as filing, data entry, answering phones, processing the mail, etc.<br />
Handling communications with clients and vendors via phone, email, and in-person.<br />
Processing transactions, issuing checks, and updating ledgers, budgets, etc.<br />
Preparing financial reports.<br />
Assisting with audits, fact checks, and resolving discrepancies.</p>
				
				<table class="w100 formTable bdr0 mt20px">	
				<tr>
				<td class="w195 alpha75 p5px">Experience</td>
				<td class="p5px">0 - 2 Years</td>
				</tr>			
											<tr>
							<td class="alpha75 p5px">Salary</td>
							<td class="p5px"> 2  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</td>
					</tr>					
										<tr>
					<td class="alpha75 p5px">Key Skills</td>
					<td class="p5px">
											<span class="bdr dib p2px10px mr5px mt2px">Accounts Assistant</span>
												<span class="bdr dib p2px10px mr5px mt2px"> Accountant</span>
												<span class="bdr dib p2px10px mr5px mt2px"> Account Executive</span>
												<span class="bdr dib p2px10px mr5px mt2px"> Taxation</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">Ritika Joy</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">7429678575 </td>
						</tr>
												<tr>
						<td class="w195 alpha75 p5px">Email ID</td>
						<td class="p5px"><a href="mailto:ritikajoy123@gmail.com"> ritikajoy123@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="983814"><input type="hidden" name="subject" value="Applied for Accounts Assistant">
					</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">
								</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-hotel-restaurants-travel-airlines-fid.htm" title="Hotel / Restaurants /Travel / Airlines Jobs">Hotel / Restaurants /Travel / ...</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-accounting-tax-fid.htm" title="Accounting / Auditing / Taxation Jobs">Accounting / Auditing / Taxati...</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: 'alpJY0w5UVU0aU1VVUxvaEZPTnhmZz09',data_type: 'RExzRmw1cmRsdlh6YkJlVUZBNnA4UT09'},
	  cache : false,
	  async: true
	  
	}).done(function(resp) {
	  //alert(resp)
	});
	</script>
	";i:1;s:89:"Job openings for accounts assistant in andhra pradesh karnataka kerala | Addison Services";i:2;s:157:"Accounts Assistant Jobs,Accounts Assistant Jobs in ,Accounts Assistant Vacancy in ,Accounts Assistant jobs in India,Accounting / Auditing / Taxation jobs in ";i:3;s:275:"Apply for Accounts Assistant Jobs in  India - Accounts Assistant Vacancy  in Accounting / Auditing / Taxation field with 0 to 2 years Work Experience, Key Skills are Accounts Assistant, Accountant, Account Executive, Taxation, Accounting / Auditing / Taxation jobs in   India";i:4;s:1898:"
		<script type="application/ld+json">
		{
		  "@context": "http://schema.org",
		  "@type": "JobPosting",
		  "title": "Accounts Assistant",
		  "baseSalary": " 2  Lac  To  5  Lac  50 Thousand ",
		  "description": "We are searching for a motivated Accounting Assistant who is an excellent multitasker with exceptional communication and time management skills. Accounting Assistants can expect to assist the Accounting department with data entry, processing, and recording transactions, updating the ledger, assisting with audits or fact-checking, and preparing budgets and reports. You should be thorough, accurate, and honest with good bookkeeping skills.

To be a successful Accounting Assistant, you should have an understanding of basic Accounting principles and proficiency with computers and software, such as MS Excel or Quickbooks. You should be trustworthy, efficient, and organized.

Accounting Assistant Responsibilities:
Providing support to the Accounting Department.
Performing basic office tasks, such as filing, data entry, answering phones, processing the mail, etc.
Handling communications with clients and vendors via phone, email, and in-person.
Processing transactions, issuing checks, and updating ledgers, budgets, etc.
Preparing financial reports.
Assisting with audits, fact checks, and resolving discrepancies.",
		  "educationRequirements": "Vocational Course, Diploma",
		  "experienceRequirements": "0 - 2 Years",
		  "industry": "Accounting / Auditing / Taxation",
		  "jobLocation": {
		    "@type": "Place",
		    "address": {
		      "@type": "PostalAddress",
		      "addressLocality": "Andhra Pradesh, Karnataka, Kerala, Tamil Nadu, Telangana",
		      "addressRegion": ""
		    }
		  },
		 "qualifications": "Vocational Course, Diploma",
		     "skills": "Accounts Assistant, Accountant, Account Executive, Taxation"
		  }
		</script>
		";i:5;N;}