Use this resume builder editor to prepare a clear CV for Gulf job applications. First, add your details and review the live preview. Then, choose a template and download PDF or Word when you are ready.

Gulf Career Group · Resume Studio

Resume builder editor

First, add your details and review the live preview. Then, choose a template and download PDF or Word when your CV is ready for Gulf job applications.

Gulf Career GroupRESUME STUDIO
Preparing editor…
STEP 1 OF 6

Let’s start with the basics.

Make it easy for employers to contact you.

Keep it accurate. Include experience and qualifications you can support.

Start inspired

Choose a professional resume layout

Get a head start with layouts you can customise. Sample previews stay fixed. Choosing one updates only your live preview.

A HEAD START

Bring your existing resume.

Paste text from your resume, open a UTF-8 TXT file, or restore a Resume Studio backup.

For PDF or Word, copy its text and paste it above. AI import requires sign-in and sends the pasted text to OpenAI. Imported details are shown for review before replacing your draft.

WRITING ASSISTANT

Improve with AI

AI suggestions use the information you provide. Review all facts before applying.

READY FOR YOUR NEXT STEP

Download your resume.

Backups contain your personal information. Store them privately. PDF pagination can differ from the on-screen preview.

GULF CAREER RESUME STUDIO

How do you want to start?

Build a professional resume for Gulf jobs — step by step, or let AI organise an existing CV.

');w.document.close();w.opener=null;setTimeout(()=>{try{w.focus();w.print()}catch{}},350); } } function writingContext(){const out=C.normalize(data);delete out.template;delete out.photo;['name','email','phone','city','country','linkedin'].forEach(k=>out[k]='');return out;} function startAI(kind,index=null){ if(kind==='import'&&q('#rs-import-text').value.trim().length<40){alert('Paste at least 40 characters of resume text.');return;} if(kind==='experience'&&data.experience[index].bullets.trim().length<15){status('Write a few factual responsibilities first, then use AI to improve the wording.');return;} if((kind==='summary'||kind==='improve')&&C.toText(writingContext()).trim().length<40){status('Add your role, skills and some experience or education before asking AI to write.');return;} if(q('#rs-import-dialog').open)q('#rs-import-dialog').close(); aiTask={kind,index};aiResult=null; q('#rs-ai-title').textContent={summary:'Shape your professional summary.',experience:'Strengthen your experience bullets.',improve:'Polish your resume wording.',import:'Organise your existing resume.'}[kind]; q('#rs-ai-description').textContent='Review the generated draft before applying it. Your current resume will stay unchanged until you choose Apply.'; q('#rs-ai-result').hidden=true;q('#rs-ai-message').textContent='';q('#rs-ai-consent').checked=false;q('#rs-ai-apply').hidden=true;q('#rs-ai-generate').hidden=false;q('#rs-ai-generate').disabled=false; const allowed=bootstrap.loggedIn&&bootstrap.aiReady&&!cfg.preview; q('#rs-ai-consent-area').hidden=!allowed;q('#rs-ai-generate').hidden=!allowed;q('#rs-ai-access').hidden=allowed; if(!allowed){q('#rs-ai-access').innerHTML=cfg.preview?'

This is the design preview. Install the WordPress plugin and configure your API key to enable AI.

':!bootstrap.loggedIn?'

Please sign in to use AI writing assistance. Manual editing and downloads are available without signing in.

Sign in to continue':'

AI writing is not configured yet. Please contact the site administrator. You can continue editing and exporting manually.

';} openDialog('#rs-ai-dialog'); } async function generate(){ if(!q('#rs-ai-consent').checked){q('#rs-ai-message').textContent='Please confirm that you agree to send this text to OpenAI.';return;} const task=aiTask,serial=++aiSerial;let payload; if(task.kind==='import')payload={text:q('#rs-import-text').value.trim()}; else if(task.kind==='experience')payload={experience:data.experience[task.index]}; else payload=writingContext(); const encoded=JSON.stringify(payload);if(new TextEncoder().encode(encoded).length>36000){q('#rs-ai-message').textContent='This draft is too long for one AI request. Shorten it or improve individual sections.';return;} aiController=new AbortController();const timer=setTimeout(()=>aiController?.abort(),65000); q('#rs-ai-generate').disabled=true;q('#rs-ai-message').textContent='Preparing your suggestion…';q('#rs-ai-result').hidden=true;q('#rs-ai-apply').hidden=true; try{ const form=new URLSearchParams({action:'gcgrs_ai',nonce:bootstrap.nonce,kind:task.kind,consent:'yes',payload:encoded}); const r=await fetch(cfg.ajaxUrl,{method:'POST',credentials:'same-origin',cache:'no-store',headers:{'Content-Type':'application/x-www-form-urlencoded'},body:form.toString(),signal:aiController.signal}); let j;try{j=await r.json()}catch{throw Error('The server returned an unreadable response. Your resume is unchanged.');} if(!r.ok||!j.success)throw Error(j.data?.message||'AI could not complete the request.'); if(serial!==aiSerial||!q('#rs-ai-dialog').open)return; aiResult=j.data;q('#rs-ai-result').hidden=false;q('#rs-ai-apply').hidden=false;q('#rs-ai-generate').hidden=true;q('#rs-ai-message').textContent='Suggestion ready. Check the facts before applying.'; const full=['import','improve'].includes(task.kind); q('#rs-ai-text').hidden=full;q('#rs-suggestion-label').hidden=full;q('#rs-ai-resume').hidden=!full; if(full){aiResult.resume=C.normalize(aiResult.resume);aiResult.resume.template=data.template;aiResult.resume.accent=data.accent;aiResult.resume.photo=data.photo||'';if(task.kind==='improve'){['name','email','phone','city','country','linkedin'].forEach(k=>aiResult.resume[k]=data[k]);}q('#rs-ai-resume').innerHTML=C.render(aiResult.resume);} else q('#rs-ai-text').value=typeof aiResult.text==='string'?aiResult.text:''; q('#rs-ai-notes').innerHTML=(Array.isArray(aiResult.notes)?aiResult.notes:[]).slice(0,5).map(n=>'
  • '+e(n)+'
  • ').join(''); }catch(err){if(serial===aiSerial)q('#rs-ai-message').textContent=err.name==='AbortError'?'The request timed out or was cancelled. Your original resume has not changed.':err.message;} finally{clearTimeout(timer);if(serial===aiSerial){q('#rs-ai-generate').disabled=false;aiController=null;}} } function applyAI(){ if(!aiResult||!aiTask)return;checkpoint(); if(aiTask.kind==='summary')data.summary=q('#rs-ai-text').value.slice(0,6000); else if(aiTask.kind==='experience')data.experience[aiTask.index].bullets=q('#rs-ai-text').value.slice(0,6000); else {const photo=data.photo;data=C.normalize(aiResult.resume);if(!data.photo)data.photo=photo;step=0;} q('#rs-ai-dialog').close();persist();render();status('AI suggestion applied. Review your details before downloading. You can undo this change.'); } const sample={name:'Noor Ahmad',role:'Operations Coordinator',email:'noor@example.com',phone:'+974 0000 0000',city:'Doha',country:'Qatar',linkedin:'linkedin.com/in/example',photo:cfg.samplePhoto||'',summary:'Operations coordinator with experience organising daily service schedules, maintaining records and supporting communication between site teams and customers. Focused on clear reporting, reliable follow-up and practical problem-solving.',skills:'Service scheduling, Excel, Reporting, Customer coordination, Team updates, Record keeping, Shift planning, Follow-up',languages:'English, Arabic',certifications:'Workplace safety awareness — Example Training Centre, 2023',projects:'Service log cleanup — organised weekly records for the operations supervisor.',experience:[{role:'Operations Coordinator',company:'Example Services Company',location:'Doha, Qatar',start:'Jan 2022',end:'Present',bullets:'Coordinate daily service schedules and share updates with site teams.\nMaintain service records and prepare weekly activity reports.\nFollow up on customer requests and communicate outstanding actions.\nSupport handover notes so the next shift starts with a clear status.'},{role:'Service Assistant',company:'Example Support Office',location:'Doha, Qatar',start:'Jun 2019',end:'Dec 2021',bullets:'Supported daily scheduling and kept visitor and service logs up to date.\nPrepared simple status notes for the operations supervisor.\nAnswered routine requests and passed urgent items to the right colleague.'},{role:'Office Assistant',company:'Example Admin Desk',location:'Doha, Qatar',start:'Feb 2017',end:'May 2019',bullets:'Filed daily paperwork and kept shared trackers current.\nHelped prepare meeting notes and simple activity summaries.'}],education:[{qualification:'Diploma in Business Administration',institution:'Example Institute',location:'Doha',year:'2021'}]}; root.addEventListener('change',ev=>{if(ev.target.matches('[data-catalog]'))renderShowcase();}); root.addEventListener('focusin',ev=>{if(!cfg.galleryOnly&&ev.target.matches('[data-path]'))checkpoint();}); root.addEventListener('input',ev=>{if(!cfg.galleryOnly&&ev.target.matches('[data-path]')){setPath(ev.target.dataset.path,ev.target.value);preview();saveSoon();}}); if(!cfg.galleryOnly)q('#rs-editor-form').addEventListener('submit',ev=>ev.preventDefault()); root.addEventListener('click',ev=>{ const b=ev.target.closest('button,[data-action="choose-template"]');if(!b||!root.contains(b)||b.disabled)return; if(b.hasAttribute('data-close')){b.closest('dialog').close();return;} if(b.dataset.step!==undefined){go(+b.dataset.step);return;} if(b.dataset.view){switchView(b.dataset.view);return;} const action=b.dataset.action,type=b.dataset.type,i=Number(b.dataset.index); if(action==='next'){if(step===5)openDialog('#rs-download-dialog');else go(step+1);} if(action==='back')go(step-1); if(action==='design'){go(5);q('#rs-showcase')?.scrollIntoView({behavior:'smooth',block:'start'});} if(action==='import'||action==='start-upload'){if(q('#rs-start-dialog').open)q('#rs-start-dialog').close();openDialog('#rs-import-dialog');} if(action==='start-new'){if(q('#rs-start-dialog').open)q('#rs-start-dialog').close();go(0);status('Add your contact details to begin.');} if(action==='ai-build'){if(C.toText(writingContext()).trim().length>=40)startAI('improve');else{if(q('#rs-start-dialog').open)q('#rs-start-dialog').close();openDialog('#rs-import-dialog');}} if(action==='download')openDialog('#rs-download-dialog'); if(['pdf','docx','txt','backup'].includes(action))exportResume(action); if(action==='template'||action==='choose-template'){ const next=b.dataset.template;if(!next)return; const picked=TEMPLATES.find(t=>t.id===next); if(next!==data.template||(action==='choose-template'&&picked&&data.accent!==picked.accent)){ checkpoint(); data.template=next; if(picked&&picked.accent)data.accent=picked.accent; else if(action==='choose-template')data.accent=galleryAccent; render();saveSoon(); status('Template applied to your live preview only. Sample gallery templates stay unchanged.'); } else {preview();} if(action==='choose-template'){gcgCleanEditorUrl();switchView('preview');q('#rs-preview')?.scrollIntoView({behavior:'smooth',block:'center'});} } if(action==='accent'){checkpoint();data.accent=b.dataset.accent;galleryAccent=data.accent;render();saveSoon();status('Colour updated in your live preview.');} if(action==='catalog-reset'){qa('[data-catalog]').forEach(s=>{s.value='';});renderShowcase();} if(action==='gallery-accent'){hueFilter=hueFilter===b.dataset.hue?'':b.dataset.hue;renderShowcase();} if(action==='tpl-filter'){tplFilter=b.dataset.filter;if(step===5)renderFields();renderShowcase();} if(action==='add'&&['experience','education'].includes(type)&&data[type].length<12){checkpoint();const item=type==='experience'?{role:'',company:'',location:'',start:'',end:'',bullets:''}:{qualification:'',institution:'',location:'',year:''};data[type].push(item);renderFields();saveSoon();const inputs=qa('[data-path^="'+type+'.'+(data[type].length-1)+'."]');inputs[0]?.focus();} if(action==='remove'&&['experience','education'].includes(type)){if(Object.values(data[type][i]).some(Boolean)&&!confirm('Remove this '+type+' entry?'))return;checkpoint();data[type].splice(i,1);render();saveSoon();} if(action==='move'&&['experience','education'].includes(type)){const j=i+Number(b.dataset.direction);if(j<0||j>=data[type].length)return;checkpoint();[data[type][i],data[type][j]]=[data[type][j],data[type][i]];render();saveSoon();} if(action==='undo'&&undo.length){data=C.normalize(JSON.parse(undo.pop()));q('#rs-undo').disabled=!undo.length;render();saveSoon();status('Previous draft restored.');} if(action==='reset'){if(!confirm('Clear this resume and its saved copy in this tab/device? Download a backup first if you need it.'))return;clearTimeout(saveTimer);data=C.normalize({});undo=[];q('#rs-undo').disabled=true;step=0;try{sessionStorage.removeItem(storageBase);localStorage.removeItem(storageBase);localStorage.removeItem(storageBase+'.remember')}catch{}remember=false;render();persist();status('A new blank resume is ready.');} if(action==='example'){if(C.toText(data).trim()&&!confirm('Replace your current draft with a fictional sample? You can undo this.'))return;checkpoint();data=C.normalize(sample);render();saveSoon();status('Fictional example loaded. Replace every detail before using it.');} if(action==='clear-photo'){checkpoint();data.photo='';renderFields();preview();saveSoon();} if(action==='ai-summary')startAI('summary');if(action==='ai-experience')startAI('experience',i);if(action==='ai-improve')startAI('improve');if(action==='parse-import')startAI('import'); }); if(!cfg.galleryOnly){ q('#rs-ai-generate').addEventListener('click',generate);q('#rs-ai-apply').addEventListener('click',applyAI); q('#rs-ai-dialog').addEventListener('close',()=>{aiSerial++;aiController?.abort();aiController=null;aiResult=null;}); q('#rs-remember').addEventListener('change',ev=>{remember=ev.target.checked;try{if(!remember){localStorage.removeItem(storageBase);localStorage.removeItem(storageBase+'.remember');}}catch{status('Your browser blocked storage changes. You may need to clear this site’s browser data.');}persist();}); root.addEventListener('change',ev=>{ if(ev.target.id!=='rs-photo-file')return; const file=ev.target.files&&ev.target.files[0]; if(!file)return; if(!/^image\/(jpeg|png|webp)$/.test(file.type)||file.size>8000000){status('Use a JPG, PNG or WebP photo under 8 MB.');ev.target.value='';return;} const url=URL.createObjectURL(file),img=new Image(); img.onload=()=>{const size=360,canvas=document.createElement('canvas');canvas.width=size;canvas.height=size;const ctx=canvas.getContext('2d');const scale=Math.max(size/img.width,size/img.height);const w=img.width*scale,h=img.height*scale;ctx.drawImage(img,(size-w)/2,(size-h)/2,w,h);URL.revokeObjectURL(url);checkpoint();data.photo=canvas.toDataURL('image/jpeg',0.82);renderFields();preview();saveSoon();status('');}; img.onerror=()=>{URL.revokeObjectURL(url);status('That image could not be read.');}; img.src=url; }); q('#rs-import-file').addEventListener('change',async ev=>{ const file=ev.target.files[0];if(!file)return; try{ if(file.size>262144)throw Error('Choose a file smaller than 256 KB.'); const text=await file.text(); if(/\.json$/i.test(file.name)){const next=C.parseBackup(text);if(!confirm('Replace the current draft with this backup? You can undo this.'))return;checkpoint();data=next;step=0;q('#rs-import-dialog').close();render();persist();status('Backup restored. Review your details.');} else if(/\.txt$/i.test(file.name)){if(text.length>24000)throw Error('TXT imports must be 24,000 characters or fewer.');q('#rs-import-text').value=text;} else throw Error('Choose a TXT file or a Resume Studio JSON backup.'); }catch(err){alert(err.message)}finally{ev.target.value='';} }); } let widthFrame=0; function fullWidth(){root.style.setProperty('--rs-shift','0px');root.style.setProperty('--rs-viewport',document.documentElement.clientWidth+'px');root.style.setProperty('--rs-shift',(-root.getBoundingClientRect().left)+'px');} function resize(){cancelAnimationFrame(widthFrame);widthFrame=requestAnimationFrame(fullWidth);} if(!cfg.embed){window.addEventListener('resize',resize,{passive:true});if('ResizeObserver'in window&&root.parentElement)new ResizeObserver(resize).observe(root.parentElement);if(document.fonts)document.fonts.ready.then(resize);resize();} window.addEventListener('pagehide',()=>{clearTimeout(saveTimer);persist();}); async function init(){ render();root.inert=true; try{ if(cfg.preview){bootstrap={loggedIn:false,aiReady:false,nonce:'',storageId:'preview'};} else { const controller=new AbortController(),timer=setTimeout(()=>controller.abort(),10000);let r; try{r=await fetch(cfg.ajaxUrl,{method:'POST',credentials:'same-origin',cache:'no-store',headers:{'Content-Type':'application/x-www-form-urlencoded'},body:'action=gcgrs_bootstrap',signal:controller.signal});const j=await r.json();if(!r.ok||!j.success)throw Error('Session unavailable');bootstrap=j.data;}finally{clearTimeout(timer);} } storageBase='gcgrs:v1:'+bootstrap.storageId; remember=safeGet(localStorage,storageBase+'.remember')==='yes'; const saved=safeGet(sessionStorage,storageBase)||(remember?safeGet(localStorage,storageBase):null); if(saved){try{data=C.parseBackup(saved)}catch{status('An old draft could not be restored. Import a backup if you have one.');}} if(cfg.preview&&!saved){data=C.normalize(sample);status('Interactive design preview with fictional sample details. AI is enabled in the installed WordPress plugin after setup.');} if(bootstrap.loggedIn&&!saved){ const guest=safeGet(sessionStorage,'gcgrs:v1:guest'); if(guest&&confirm('Continue the guest draft from this browser tab in your signed-in editor?')){ try{data=C.parseBackup(guest);sessionStorage.removeItem('gcgrs:v1:guest');localStorage.removeItem('gcgrs:v1:guest');localStorage.removeItem('gcgrs:v1:guest.remember');}catch{status('The guest draft could not be restored. Import a backup if you have one.');} } } }catch{storageBase='gcgrs:v1:offline:'+Date.now();status('Your sign-in session could not be checked. Manual editing works; reload to use AI or restore earlier browser drafts.');} finally{ root.inert=false; const params=new URLSearchParams(location.search); const tplParam=params.get('template'); const accentParam=params.get('accent'); if(tplParam&&TEMPLATES.some(t=>t.id===tplParam))data.template=tplParam; if(accentParam&&/^#[0-9a-fA-F]{6}$/.test(accentParam))data.accent=accentParam; gcgCleanEditorUrl();galleryAccent=data.accent||'#bd2636'; render();persist(); q('[data-home]').href=cfg.homeUrl||'/resume-builder/'; const mode=params.get('mode'); if(mode==='import')openDialog('#rs-import-dialog'); else if(mode==='new'){/*skip*/} else if(!C.toText(data).trim()&&!tplParam)openDialog('#rs-start-dialog'); } } if(cfg.galleryOnly)renderShowcase(); else init(); })();
    Application tips

    Resume builder editor tips for Gulf applications

    Keep every detail honest. First, match your target title to roles you can apply for. Also, leave private documents out of the CV.

    01

    Stay accurate

    Do not invent titles, dates or results. Instead, describe only the work, study and skills you can discuss.

    02

    Protect private details

    For example, leave passport numbers, bank details and ID document numbers off the resume.

    03

    Check before you send

    First, save an editable backup. Then, use the live preview to catch missing dates or unclear bullets.

    Prepare a clearer CV with the resume builder editor

    Keep your draft in the resume builder editor

    Choosing a layout changes only the live preview. However, sample cards keep their own example wording. As a result, trying a design does not replace the name, dates or jobs you already typed.

    Colour stays an accent

    A swatch changes heading colour. However, it does not rewrite your sentences. Therefore, pick a shade that still prints clearly. Also, keep the same facts when you try another colour.

    Details Gulf readers expect

    First, use a phone number with its country code, plus your current city and country. If a vacancy asks for a licence, name the one you hold and the issuer. However, leave identity numbers and bank details off the CV.

    One master, then a tailored copy

    First, keep your full history in the draft. Then, move the most relevant roles and skills higher for a specific advert, and shorten the rest. However, do not alter dates or job titles to match the posting.

    Review AI suggestions in the resume builder editor

    Signed-in AI help can improve a summary or bullet using facts already in the draft. However, it must not invent an employer, a number or a qualification. Therefore, keep only lines you can explain in an interview.

    Check the exported file

    After you download, open the file on your device. Next, confirm the email, phone and page breaks. Also, copy a paragraph out to check that the reading order is still clear.

    Continue in the editor

    Advice for your CV from Gulf career experts

    Practical career advice articles on resume writing, job applications, interviews and Gulf hiring — so you can improve your CV with clear, honest guidance.

    Build a clear CV with the resume builder editor

    A strong application starts with accurate information. First, complete your contact section. Then add recent experience and education. After that, list skills you can discuss in an interview. Finally, choose a professional layout and export your file.

    Resume builder editor: professional CV preparation for Gulf jobs
    Prepare a clean, accurate CV before you apply for roles in Qatar, the UAE, Saudi Arabia and across the Gulf.

    What you can do in the resume builder editor

    • Create a new draft — Fill guided sections with a live preview on the right.
    • Import an existing CV — Paste text or open a TXT / JSON backup, then review the result.
    • Improve wording with AI — Available after sign-in. You approve every change before it is applied.
    • Pick a professional format — Classic, two-column, executive and ATS-friendly templates with colour options.
    • Download your file — Export PDF through print, or download editable Word, plain text and a private backup.
    Six clear steps

    How to use the resume builder editor, step by step

    Follow the steps in order so your draft stays easy to check. In addition, keep each entry short and accurate so recruiters can scan it easily.

    01

    Contact

    Add your name, target role, email, phone and city. For example, include your phone’s country code.

    02

    Experience

    List real jobs with dates and clear responsibility bullets. For example, explain a task you handled and the tools you used.

    03

    Education

    List the qualifications you completed. For example, name your diploma, institution and graduation year.

    04

    Skills

    Tools, languages and certificates you can support.

    05

    Summary

    A short introduction based on your own facts.

    06

    Finish

    Template, colour, final review and download.

    Frequently Asked Questions

    10 frequently asked questions about your CV

    Clear answers before you finalise your CV for Gulf job applications.

    How do I start using the resume builder editor?

    Open the editor, then complete Contact, Experience, Education, Skills and Summary. Review the live preview, choose a template, and download PDF or Word when you are ready.

    Is a CV different from a resume?

    Employers may use either term for a document that summarises your qualifications and experience. Follow the vacancy instructions for length, sections and file type.

    What should I include in a resume for Gulf jobs?

    Include contact details, a clear professional summary, recent work experience, education and skills. Add genuine certifications, languages or licences when they matter to the role.

    Should I add a photograph or personal information?

    Check the application instructions. Do not assume every Gulf employer requires a photograph or personal status details. Keep identity documents out of the CV itself.

    Can a template guarantee that I pass an ATS?

    No. Applicant tracking systems vary. A clear structure and accurate wording help, but no template guarantees an ATS result, interview or job offer.

    Should I submit a PDF or a Word document?

    Use the file type requested in the job advertisement. Open the exported file and check page breaks, contact details and text order before you apply.

    How long should my resume be?

    Use the length that explains relevant experience clearly. One page can work for early-career applicants; two pages may suit a longer work history. Avoid shrinking text only to force a page count.

    Do I need a different resume for every application?

    Keep a master copy, then adapt the summary, skills and strongest examples for each role. Tailor the evidence — do not invent qualifications.

    How can career advice articles help my CV?

    CV-related career advice explains common mistakes, clearer wording and Gulf hiring expectations. Read recent guides, then apply only the tips that match your real experience.

    Where can I find more CV and career guidance?

    Use View more to open the Career Advice section. You can also browse resume templates and resume examples, then return to the resume builder editor to update your draft.