a:6:{i:0;s:6673:"					<div class="h1"><h1>Content Executive / Content Manager</h1></div>
					<p class="breadcrumb ar uu small"> <a href="http://www.stepuprecruiters.in/">Home</a>
					
											<b class="ffv p2px">&rsaquo;</b><a href="http://www.stepuprecruiters.in/current-jobs.htm" title="Current Jobs">Current Jobs</a>  			
											
					<b class="ffv p2px">&rsaquo;</b> Content Executive / Content Manager</p>
					<br />				
									
				<div class="h headVr large p7px"><b class="b1"></b><h2> <b>VACANCY DETAILS</b></h2></div>
				<table class="w100 formTable">
				<tr>
				<td class="w30 p5px data b">Job Title </td>
				<td class="w70 p5px">Content Executive / Content Manager</td>
				</tr>
				
									<tr>
					<td class="p5px data b"> Gender Preference </td>
					<td class="p5px">Any</td>
					</tr>
										<tr>
					<td class="p5px data b"> Number Of Vacancy </td>
					<td class="p5px">6</td>
					</tr>
										<tr>
					<td class="p5px data b"> Industry Area </td>
					<td class="p5px">Media / Entertainment </td>
					</tr>
										<tr>
					<td class="p5px data b"> Key Skills </td>
					<td class="p5px">content executive,content manager </td>
					</tr>
										<tr>
					<td class="p5px data b"> Qualification </td>
					<td class="p5px">Diploma, Advanced/Higher Diploma, Professional Degree, Other Bachelor Degree,  </td>
					</tr>
												<tr>
							<td class="p5px data b"> Salary (Per Annum) </td>
							<td class="p5px"> 2  Lac  50 Thousand  To  4  Lac  75 Thousand  </td>
							</tr>
							
											<tr>
				<td class="p5px data b"> Work Experience </td>
				<td class="p5px">0 - 4 Years</td>
				</tr>
									<tr>
					<td class="p5px data b"> Job Requirement </td>
					<td class="p5px">Research the viability of topics. Identifying and examining industry trends and issues.<br />
Invitation, confirmation and management of ongoing relations with senior executives<br />
Budgetary control to achieve an annual portfolio target.<br />
Negotiating fees and expenses and staying within budget guidelines set down by the Divisional Manager<br />
Researching in detail the program and putting together a complete draft program.<br />
Creation of engaging sales copy & content for the brochure, EDM, website and promotional pieces<br />
Building a network of subject-matter experts to consult and advise on industry research.<br />
Identifying and recruiting industry leaders to the speaker faculty. Develop industry specialization and supporting external contact networks <br />
Working as part of a project management team, including marketing, sales, operations. Brief & support sponsorship and sales teams<br />
Contacting the target market through desk research and social media to determine what subjects are needed by the market<br />
Maintain appropriate records and files for each project and produce these in accordance with set deadlines<br />
Meet all KPIs for the role, including revenue targets, production targets and deadlines<br />
Good Degree holder in a relevant discipline â?? Journalism /Communications/Psychology<br />
The role requires excellent written and verbal English communication skills to create and curate event contents.<br />
Resourcefulness and hunger for new knowledge<br />
Relevant experience in research, or in a related profession, such as (content writing, journalism and communication) Or Commercial experience, preferably in a B2B business environment<br />
Proven ability to drive end-to-end project, from its conceptualization to the delivery and follow-up post-event<br />
Strong multitasking abilities and able to meet the demands of tight timelines working in a fast-paced environment. Ability to work independently<br />
Creative thinker, problem solver. Positive attitude, Cheerful and Confident. </td>
					</tr>
									
				</table>
				<br />
				<br />
				<div class="h headVr large p7px"><b class="b1"></b><h2> <b>JOB LOCATION</b></h2></div>
				<table class="w100 formTable">
				
									<tr>
					<td class="w30 p5px data b">Job Country </td>
					<td class="w70 p5px">India</td>
					</tr>
										<tr>
					<td class="w30 p5px data b">Job State / U.T.</td>
					<td class="p5px">Delhi/NCR</td>
					</tr>
										<tr>
					<td class="w30 p5px data b">Job City</td>
					<td class="p5px">Delhi, South Delhi</td>
					</tr>
									
				</table>
				
								
					<br />
					<br />
					<div class="h headVr large p7px"><b class="b1"></b><h2> <b>COMPANY PROFILE</b></h2></div>
					<table class="w100 formTable">
					
											<tr>
						<td class="w30 p5px data b">Company Name</td>
						<td class="w70 p5px">client of StepUp Recruiters</td>
						</tr>
												<tr>
						<td class="w30 p5px data b">Company Website</td>
						<td class="p5px">www.stepuprecruiters.in</td>
						</tr>
												<tr>
						<td class="w30 p5px data b">About Company</td>
						<td class="p5px">Our client is a global communications software and services company and  is one of the world’s leading communications software and services firms, providing integrated communications
solutions for approximately 75 percent of the Fortune Global 500. Their solutions unify multiple networks, devices and
applications into one easy-to-use platform that allows teams to engage in rich and meaningful conversations.</td>
						</tr>
											</table>
				
									<br />
				<br />
				<div class="h headVr large p7px"><b class="b1"></b><h2> <b>CONTACT DETAILS</b></h2></div>
				<table class="w100 formTable">
				
									<tr>
					<td class="w30 p5px data b">Email ID </td>
					<td class="p5px"><a href="mailto:stepup.recruiter@gmail.com"> stepup.recruiter@gmail.com </a> </td>
					</tr>
									
				</table>
				
									
					<div class="p10px ac">
					<form name="frmvacdetail" method="post" action="enquiry-form-10009.htm">
					<input class="button p5px10px b" type="submit" value="APPLY NOW !" />
					<input type="hidden" name="catalog_mi" value="338838">
					<input type="hidden" name="enq_type" value="2"><input type="hidden" name="vacancy_id" value="386571"><input type="hidden" name="subject" value="Applied for Content Executive / Content Manager">
					</form>
					</div>
			
						<script>
	$.ajax({
	  url: "https://www.placementindia.com/job_posting_view.php",
	  type: "POST",
	  dataType: 'html',
	  data: {job_view_id: 'dzV3WCtFM0VjblRxYndQMmRqNTZYQT09',data_type: 'RExzRmw1cmRsdlh6YkJlVUZBNnA4UT09'},
	  cache : false,
	  async: true
	  
	}).done(function(resp) {
	  //alert(resp)
	});
	</script>
	";i:1;s:84:"Content Executive / Content Manager Jobs in Delhi - Vacancy in Media / Entertainment";i:2;s:229:"Content Executive / Content Manager Jobs,Content Executive / Content Manager Jobs in Delhi,Content Executive / Content Manager Vacancy in Delhi,Content Executive / Content Manager jobs in India,Media / Entertainment jobs in Delhi";i:3;s:271:"Apply for Content Executive / Content Manager Jobs in Delhi India - Content Executive / Content Manager Vacancy  in Media / Entertainment field with 0 to 4 years Work Experience, Key Skills are content executive,content manager, Media / Entertainment jobs in Delhi  India";i:4;s:2809:"
		<script type="application/ld+json">
		{
		  "@context": "http://schema.org",
		  "@type": "JobPosting",
		  "title": "Content Executive / Content Manager",
		  "baseSalary": " 2  Lac  50 Thousand  To  4  Lac  75 Thousand ",
		  "description": "Research the viability of topics. Identifying and examining industry trends and issues.
Invitation, confirmation and management of ongoing relations with senior executives
Budgetary control to achieve an annual portfolio target.
Negotiating fees and expenses and staying within budget guidelines set down by the Divisional Manager
Researching in detail the program and putting together a complete draft program.
Creation of engaging sales copy & content for the brochure, EDM, website and promotional pieces
Building a network of subject-matter experts to consult and advise on industry research.
Identifying and recruiting industry leaders to the speaker faculty. Develop industry specialization and supporting external contact networks 
Working as part of a project management team, including marketing, sales, operations. Brief & support sponsorship and sales teams
Contacting the target market through desk research and social media to determine what subjects are needed by the market
Maintain appropriate records and files for each project and produce these in accordance with set deadlines
Meet all KPIs for the role, including revenue targets, production targets and deadlines
Good Degree holder in a relevant discipline â?? Journalism /Communications/Psychology
The role requires excellent written and verbal English communication skills to create and curate event contents.
Resourcefulness and hunger for new knowledge
Relevant experience in research, or in a related profession, such as (content writing, journalism and communication) Or Commercial experience, preferably in a B2B business environment
Proven ability to drive end-to-end project, from its conceptualization to the delivery and follow-up post-event
Strong multitasking abilities and able to meet the demands of tight timelines working in a fast-paced environment. Ability to work independently
Creative thinker, problem solver. Positive attitude, Cheerful and Confident.",
		  "educationRequirements": "Diploma, Advanced/Higher Diploma, Professional Degree, Other Bachelor Degree, ",
		  "experienceRequirements": "0 - 4 Years",
		  "industry": "Media / Entertainment",
		  "jobLocation": {
		    "@type": "Place",
		    "address": {
		      "@type": "PostalAddress",
		      "addressLocality": "Delhi/NCR",
		      "addressRegion": "Delhi, South Delhi"
		    }
		  },
		 "qualifications": "Diploma, Advanced/Higher Diploma, Professional Degree, Other Bachelor Degree, ",
		     "skills": "content executive,content manager"
		  }
		</script>
		";i:5;N;}