HR jobs
in the Middle East
Whether you’re looking for a new opportunity within human resources, seeking to navigate a career change, or looking to move up the career ladder, we’re here to help.
Our recruitment experience in human resources jobs
HR professionals are an integral part of every organisation - they shape positive employee experience, develop recruitment and retention strategies, rollout learning and development opportunities and champion diverse and inclusive cultures. We understand this, which is why we’re here to help you take your career to the next level.
Our experienced HR recruitment team has over 18 years’ experience in placing professionals with leading employers across the Middle East. We recruit across a wide range of HR jobs, including generalist roles, compensation and benefits, talent acquisition, learning and development, DE&I, HR technology and change roles, plus many more positions in HR.
We’re more than your average HR recruitment business - we're here as a lifelong partner, helping you deliver your professional responsibilities and achieve your personal ambitions.
Take a look at our available human resources roles.
We’re proud to work with leading organisations of all sizes within the human resources sector throughout the Middle East. Across the private and public sector, we work to find you opportunities with local and international companies.
The following has evaluated to null or missing: ==> haysJobsLocalService.getjobs(keyword, null, null,"3", ucmLocale) [in template "20115#20151#T-HAYS-JOBS-BY-KEYWORD-WEB2" at line 26, column 36] ---- Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: #assign jobsResults = haysJobsLocalSe... [in template "20115#20151#T-HAYS-JOBS-BY-KEYWORD-WEB2" at line 26, column 13] ----
1<div class="py-16">
2
3<#assign haysJobsLocalService = serviceLocator.findService("com.hays.jobs.service.HaysJobsService")>
4<#assign ucmLocaleKey = themeDisplay.getLocale()+"."+siteType+"."+"ucmLocale">
5<#assign mobileUrlKey = themeDisplay.getLocale()+"."+siteType+"."+"WEB2_Mobile_Hostname">
6<#assign jobURLKey = themeDisplay.getLocale()+"."+siteType+"."+"WEB2_JobSearch">
7<#assign jobSearchUrl = propsUtil.get(jobURLKey)!"">
8<#assign ucmLocale = propsUtil.get(ucmLocaleKey)!"">
9<#assign mobilePortalUrl = propsUtil.get(mobileUrlKey) !"">
10<#assign langId = themeDisplay.getLanguageId() />
11<#assign currency = staticUtil["java.util.Currency"]>
12<#assign textFormatter = staticUtil["java.net.URLEncoder"]>
13
14<#assign index = 3 />
15<#assign jobCardTitle = ""/>
16<#assign portalSearchURL = "" />
17<#assign jobFriendlyUrl = "" />
18<#assign jobCardSalaryDescription = ""/>
19<#assign jobCardLocationDescription = ""/>
20
21<#if JobsByKewords.getSiblings()?has_content>
22 <#list JobsByKewords.getSiblings() as cur_JobsByKeword>
23 <#assign keyword = cur_JobsByKeword.Keyword.getData()>
24 <#assign encodedKeyword = textFormatter.encode(keyword, "UTF-8")>
25 <#if keyword?? && keyword?has_content>
26 <#assign jobsResults = haysJobsLocalService.getjobs(keyword, null, null,"3", ucmLocale)>
27 <#assign portalSearchURL = mobilePortalUrl + "/" + jobSearchUrl + "?q=${encodedKeyword}" />
28
29 <#if !jobsResults.getJSONObject("result").isNull("jobs")>
30 <div>
31
32 <div class="d-flex justify-content-between align-items-end container-content flex-wrap mb-9">
33 <#if cur_JobsByKeword.Title.getData()?has_content>
34 <h2 class="text-brand-blue font-weight-light mb-0 fs-700 fs-lg-800 mb-0 section-heading">
35 ${cur_JobsByKeword.Title.getData()?keep_before(" ")}
36 <span class="font-weight-semibold">${cur_JobsByKeword.Title.getData()?keep_after(" ")}</span>
37 </h2>
38 </#if>
39 <#if cur_JobsByKeword.CTA.getData()?has_content>
40 <a class="button button--arrow button--no-style-teal-dark" href=${portalSearchURL}>${cur_JobsByKeword.CTA.getData()}</a>
41 </#if>
42 </div>
43
44 <#assign resultJobs = jobsResults.getJSONObject("result").getJSONArray("jobs")>
45 <#assign jobsResultsLength = resultJobs.length() />
46 <#assign index = (jobsResultsLength > 3)?then(3, jobsResultsLength) />
47
48 <div class="carousel">
49 <ul class="container-content grid grid-3 grid-gap-16 grid-gap-lg-32 grid-lg-3">
50 <#list 0..index-1 as i>
51 <#if jobsResultsLength != 0>
52 <#if resultJobs.getJSONObject(i).has("nonFilterableCustomFields")>
53 <#if resultJobs.getJSONObject(i).getJSONObject("nonFilterableCustomFields").has("JobTitle")>
54 <#assign jobCardTitle = resultJobs.getJSONObject(i).getJSONObject("nonFilterableCustomFields").getJSONObject("JobTitle").getJSONArray("values")?replace("\"", "")?replace("]", "")?replace("[", "")/>
55 <#assign jobCardTitle = jobCardTitle?replace("\\\\u(....)", "&#x$1;", "r")/>
56 </#if>
57 <#if resultJobs.getJSONObject(i).getJSONObject("nonFilterableCustomFields").has("xLocationDescription")>
58 <#assign jobCardLocationDescription = resultJobs.getJSONObject(i).getJSONObject("nonFilterableCustomFields").getJSONObject("xLocationDescription").getJSONArray("values")?replace("\"", "")?replace("]", "")?replace("[", "")/>
59 <#assign jobCardLocationDescription = jobCardLocationDescription?replace("\\\\u(....)", "&#x$1;", "r")/>
60 </#if>
61 <#if resultJobs.getJSONObject(i).getJSONObject("nonFilterableCustomFields").has("xSalaryDescription")>
62 <#assign jobCardSalaryDescription = resultJobs.getJSONObject(i).getJSONObject("nonFilterableCustomFields").getJSONObject("xSalaryDescription").getJSONArray("values")?replace("\"", "")?replace("]", "")?replace("[", "")/>
63 <#assign jobCardSalaryDescription = jobCardSalaryDescription?replace("\\\\u(....)", "&#x$1;", "r")/>
64 </#if>
65 <#if resultJobs.getJSONObject(i).getJSONObject("nonFilterableCustomFields").has("xLocaleRecordID")>
66 <#assign url = resultJobs.getJSONObject(i).getJSONObject("nonFilterableCustomFields").getJSONObject("xLocaleRecordID").getJSONArray("values")?replace("\"", "")?replace("]", "")?replace("[", "")/>
67 <#assign jobUrl = url?keep_after("//")?keep_after("/") />
68 <#assign jobFriendlyUrl = mobilePortalUrl + "/" + jobUrl + "?jobSource=HaysGCJ" />
69 </#if>
70 </#if>
71 </#if>
72
73 <li class="carousel-slide">
74 <a href="${jobFriendlyUrl}" class="job-card job-card--grid-teal is-active d-block rounded-lg border border-borders py-7 pb-lg-6 pt-lg-5 px-6 d-flex">
75 <h4 class="text-black lh-title fs-500 fs-lg-600 font-weight-bold mb-4">
76 ${jobCardTitle}
77 </h4>
78 <ul class="font-weight-light mb-4 mb-lg-4 fs-400 fs-lg-400">
79 <li class="d-flex mb-3">
80 <svg class="feather-icon mr-3 mr-lg-5">
81 <path d="M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z"></path>
82 <circle cx="12" cy="10" r="3"></circle>
83 </svg>
84 <span class="job-card-label font-weight-normal">${jobCardLocationDescription}</span>
85 </li>
86 <li class="d-flex align-items-start">
87 <div class="group-center mr-3 mr-lg-5">
88 <svg class="feather-icon">
89 <circle cx="12" cy="12" r="10"></circle>
90 </svg>
91 <span>
92 <#if langId == "en_AE" || langId == "en_CZ" || langId == "en_PL">
93 <svg class="feather-icon" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" style="width:13px;height:13px">
94 <path d="M13 5C13 6.10457 10.5376 7 7.5 7C4.46243 7 2 6.10457 2 5M13 5C13 3.89543 10.5376 3 7.5 3C4.46243 3 2 3.89543 2 5M13 5V9.45715C11.7785 9.82398 11 10.3789 11 11M2 5V17C2 18.1046 4.46243 19 7.5 19C8.82963 19 10.0491 18.8284 11 18.5429V11M2 9C2 10.1046 4.46243 11 7.5 11C8.82963 11 10.0491 10.8284 11 10.5429M2 13C2 14.1046 4.46243 15 7.5 15C8.82963 15 10.0491 14.8284 11 14.5429M22 11C22 12.1046 19.5376 13 16.5 13C13.4624 13 11 12.1046 11 11M22 11C22 9.89543 19.5376 9 16.5 9C13.4624 9 11 9.89543 11 11M22 11V19C22 20.1046 19.5376 21 16.5 21C13.4624 21 11 20.1046 11 19V11M22 15C22 16.1046 19.5376 17 16.5 17C13.4624 17 11 16.1046 11 15" stroke="" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
95 </svg>
96 <#else>
97 ${currency.getInstance(themeDisplay.getLocale()).getSymbol(themeDisplay.getLocale())}
98 </#if>
99 </span>
100 </div>
101 <span class="job-card-label font-weight-normal">${jobCardSalaryDescription}</span>
102 </li>
103 </ul>
104
105 <div class="job-card__action">
106 <#if (JobDetailText.getData())??>
107 <button onClick="location.href='${jobFriendlyUrl}'" class="button button--small button--teal-dark button--arrow">
108 ${JobDetailText.getData()}
109 </button>
110 </#if>
111 </div>
112
113 </a>
114 </li>
115 </#list>
116 </ul>
117 </div>
118 </div>
119 <br/>
120 </#if>
121 </#if>
122 </#list>
123</#if>
124</div>
Our recruitment process
Benefit from our latest insights into your new world of world.
We listen and provide impartial career advice to place you in the right job, with the right organisation.
Your application goes directly to your very own dedicated consultant.
Your dedicated consultant will meet you virtually or in an office near you.
We´ll stay in touch and continue to share opportunities that fit your long-term ambitions.
Human resource jobs FAQs
We have jobs spanning mid-level to senior leadership and director positions. On our website, you’ll find roles including HR business partner, reward manager, talent acquisition specialist, learning and development partner, DE&I specialist, and more.
Soft skills that employers look for include communication and interpersonal skills, the ability to implement change, flexibility and adaptability, problem-solving and critical thinking.
Technical skills employers desire include experience working with talent management systems and databases, interviewing, and onboarding and offboarding.
Compensation can vary depending on the level of experience you have and the skills you can offer, the organisation type and location, and the sector in which you work. Take a look at our latest Salary Guides to see the most up to date salary data.
While there are no specific qualifications required to work in the human resources profession, most employers will look for a combination of practical experience and a professional accreditation such as those offered by the Chartered Institute of Personnel and Development (CIPD). A higher education qualification to the equivalent of degree level is also often required for those entering the profession. Some organisations run their own training programmes or placement schemes.