Job Description
,
, - . No CSS classes, no inline styles, no , no
. Must preserve all original content word-for-word, no addition, removal, summarising, rephrase. So we need to extract the text content from the given HTML (which includes many spans with styles). We need to strip those tags and keep the text. Then we need to structure using headings for sections: The original has headings like "About Restless Development", "Our approach to safeguarding", "About YIGA", "About the Role:", then a block with job details (Job title, Location, etc.) then "Key responsibilities" with subheadings (Programme Documentation and Storytelling, Communication of Results and Youth Voice, Digital Communications and Programme Visibility, Media and Partner Coordination, Communications Planning and Coordination, Ethical, Inclusive and Safe Communications, Other responsibilities). Then "Qualifications and Experience" with "Essential" list.
We must use for section headers. So each heading becomes Heading
. Paragraphs become
. Lists become
- items.
We must preserve all original content word-for-word. That means we cannot change wording, punctuation, etc. Must keep line breaks? We'll just output as HTML; line breaks inside
are not needed.
We must not add any extra content. Must not omit any content. Must not add any explanation.
We need to parse the given input and produce HTML.
Let's extract the text content from the given HTML.
I'll go through the input step by step.
Input starts:
Communications Officer
That's the job title line. The text: "Communications Officer". There's a non-breaking space after? We'll keep as "Communications Officer". Probably just that.
Next line:
Apply by 5th October 2026 at 5:00 PM (E.A.T)
Text: "Apply by 5th October 2026 at 5:00 PM (E.A.T)"
Then
(empty line) - we can ignore? It's a blank line; we could output an empty ? But we should preserve content; a
inside a p is just a line break. Since we cannot use
tags, we need to represent that as maybe an empty paragraph? The instruction: preserve ALL original content word-for-word — do not add, remove, summarise, or rephrase. If we drop the
we are removing content. However we cannot use
tags. The rules say: No
tags. So we must not output
. But we must preserve content. How to represent a line break without
? Possibly we can just treat it as a paragraph break: an empty would represent a blank line. That might be acceptable as preserving the blank line. The original had a
which is a paragraph containing a line break, effectively a blank line. If we output an empty , that's a blank line. That seems okay.
But we must not add any extra content; an empty is not adding content, it's representing the blank line. It's not adding text. It's okay.
Proceed.
Next:
About Restless Development
Text: "About Restless Development"
Then paragraph:
We have worked in Uganda since 1997, guided by four goals shaped by young people: Voice and Democracy, Education and Livelihoods, Gender and Sexual Health, and Climate Justice. We support young people to influence decisions, access quality education and sustainable livelihood opportunities, advance sexual and reproductive health and rights, promote gender equality, and lead action towards a just and sustainable future. We currently work in 26 districts across Northern, North-Eastern, Central and Eastern Uganda, with offices in Kampala, Jinja, Moroto and West Nile.
Text: that sentence.
Then
blank line.
Next:
Our approach to safeguarding
Text: "Our approach to safeguarding"
Paragraph:
Restless Development considers the welfare and protection of children, young people and vulnerable adults to be an organisational imperative with primacy over the success of programmes or strategic objectives.
Text.
Then
blank.
Next:
About YIGA
Text: "About YIGA"
Paragraph:
Promoting Youth Inclusion in Governance and Decision-making in Uganda (YIGA) is supported by the Royal Danish Embassy under PACER and runs through December 2027. Restless Development leads the consortium with Media Challenge Initiative (MCI) and Karamoja Youth Effort to Save the Environment (KAYESE). Building on implementation in Karamoja, the project is expanding to Arua, Terego and Madi-Okollo in West Nile, alongside activities that bring regional youth priorities into national discussions.
Then another paragraph:
YIGA addresses the information gaps, limited opportunities and institutional barriers that prevent young people from influencing decisions about their communities. It helps young people understand local government planning and budgeting, gather evidence on public services, and raise their priorities with elected representatives, officials and community leaders. At the same time, it helps these leaders involve young people in decisions and respond to their concerns through practical action plans and regular follow-up.
Then another paragraph:
In West Nile, this includes training Youth Accountability Advocates and youth councillors, supporting community barazas and Youth Leader Connect meetings, and monitoring service delivery with local governments. MCI's Youth Information Hub+ combines a physical hub in Arua and Karamoja, mobile and digital engagement approaches and digital resources with civic films, radio, storytelling and media literacy activities. Evidence from both regions will inform the State of Youth Civil Society in Uganda report and National Youth Working Group discussions. Throughout, YIGA seeks to turn informed youth participation into decisions and services that better reflect young people's needs.
Then
blank.
Next:
About the Role:
Text: "About the Role:"
Paragraph:
The Communications Officer will lead and coordinate communications and documentation for Restless Development’s contribution to YIGA, with particular responsibility for implementation in West Nile while supporting consistent programme messaging across West Nile, Karamoja and relevant national engagement.
Paragraph:
The role will ensure that programme activities, results, youth perspectives, evidence, learning and stories of change are captured in real time and translated into high-quality communications for young people, partners, donors, government stakeholders and wider audiences.The Communications Officer will work closely with the Communications Coordinator, Programme Manager, Assistant Programme Coordinator, Programme Officer, MEL Coordinator, Advocacy Officer and other Restless Development teams.
Paragraph:
The Officer will also work closely with MCI’s Communications Officer, Production Officers, Graphic Designer, Civic News Reporters and Training Officer. The Communications Officer will primarily provide programme-level communications coordination, documentation, messaging, visibility, quality assurance and linkage between programme evidence and communications, while MCI provides specialised civic-media production, digital dissemination and technical media support. This distinction will ensure complementary rather than duplicated communications functions across the consortium.
Then
(two line breaks). That's a paragraph with two
tags. We cannot use
. We could represent as two consecutive empty ? Actually a with two
yields a paragraph with line breaks but no text; effectively two blank lines. We could output two empty
to represent those blank lines. That seems okay.
Next:
Job title: Communications Officer
Text: "Job title: Communications Officer"
Note there is a space before Communications Officer? The second span starts with a space. We'll keep that space.
Next:
Location: Arua – West Nile, Uganda
Text: "Location: Arua – West Nile, Uganda"
Next:
Project coverage: West Nile, with coordination across Karamoja and relevant national programme activities
Text: "Project coverage: West Nile, with coordination across Karamoja and relevant national programme activities"
Next:
YIGA Level of Effort: 50%
Text: "YIGA Level of Effort: 50%"
Next:
Salary: UGX 23,542,380 Gross Per Annum
Text: "Salary: UGX 23,542,380 Gross Per Annum" plus maybe a non-breaking space after. We'll keep as is.
Next:
Preferred start date: As Soon As Possible
Text: "Preferred start date: As Soon As Possible"
Next:
Duration: 1 year, renewable depending on funding and performance
Text: "Duration: 1 year, renewable depending on funding and performance"
Next:
Reports to: Communications Coordinator
Text: "Reports to: Communications Coordinator"
Next:
Direct Reports: Young Leaders, where applicable
Text: "Direct Reports: Young Leaders, where applicable"
Next:
Expected travel: Regular domestic travel, particularly within West Nile and to other programme locations as required
Text: "Expected travel: Regular domestic travel, particularly within West Nile and to other programme locations as required" plus maybe NBSP.
Then
blank.
Next:
Key responsibilities
Text: "Key responsibilities" includes underline tags. We need to preserve the underline? The original includes tags. We cannot use because we are only allowed ,
, - . No other tags. But we must preserve content word-for-word. However the instruction says: Return ONLY the cleaned job text. In the first task we removed formatting. In this second task, we need to format as clean semantic HTML, preserving ALL original content word-for-word. But we cannot use because it's not allowed per rules: only
,
, - . No CSS classes, no inline styles, no s, no
tags. It doesn't explicitly forbid , but says use for introductory paragraphs and general text,
for section headers, - for list items. It doesn't say we cannot use other tags, but the implied expectation is to use only those tags. However the instruction: "Use
for introductory paragraphs and general text. Use
for section headers ... Use - for list items ... No CSS classes, no inline styles, no s, no
tags". It doesn't say we cannot use other tags like , , etc. But to be safe, we should avoid any tags not listed. However we must preserve content word-for-word, including the underline markup. If we drop the we are altering content. The instruction says preserve ALL original content word-for-word — do not add, remove, summarise, or rephrase. That includes markup? The original content includes the tags. So we must keep them. But the rules for this task say we should format as clean semantic HTML using only those tags. There's a conflict.
We need to interpret: The task is to format the job description as clean semantic HTML. The original content includes formatting like bold, underline, etc. We are to strip those and represent using semantic tags: headings for section headers, paragraphs for text, lists for list items. The underline on "Key responsibilities" is just formatting; we can represent it as a heading () maybe. The original had Key responsibilities inside a
with bold and color. The semantic meaning is a section header. So we can treat it as a heading. That would be preserving the meaning, not the exact markup. But the instruction says preserve ALL original content word-for-word. However earlier in the first task we were to remove formatting etc. In this second task, we are to format as clean semantic HTML, preserving ALL original content word-for-word. I think they mean preserve the textual content, not the formatting markup. Because they ask to use semantic tags, which implies we replace formatting with appropriate tags. So we should treat "Key responsibilities" as a section header (
). The underline can be ignored as formatting.
Thus we will output Key responsibilities
.
Similarly, other bolded section headers like "Programme Documentation and Storytelling", etc. Those are bolded lines that are not list items but headings for groups of responsibilities. In the original they are bolded lines followed by . Those should be as well.
Also "Qualifications and Experience" and "Essential" maybe headings.
We need to decide which lines are section headers. The original uses bold for headings. We'll treat each bold line that is not part of a paragraph as a heading (). However some bold lines are within paragraphs like "Job title:" etc. Those are labels inside a paragraph; they are not separate headings. In the original they are inside a
with two spans: bold label and regular value. That's essentially a key-value pair. We should keep them as a paragraph, not a heading. So we need to differentiate.
Thus we will parse the original and produce HTML with:
- Headings (
) for section titles: About Restless Development, Our approach to safeguarding, About YIGA, About the Role:, Key responsibilities, Programme Documentation and Storytelling, Communication of Results and Youth Voice, Digital Communications and Programme Visibility, Media and Partner Coordination, Communications Planning and Coordination, Ethical, Inclusive and Safe Communications, Other responsibilities, Qualifications and Experience, Essential (maybe). Also maybe "About the Role:" includes colon; we keep as is.
- Paragraphs (
) for explanatory text.
- Lists (
- ) for each bullet point.
We must preserve all textual content exactly, including punctuation, spaces.
We must not add any extra text.
We must not omit any content.
We must not add any extra tags besides
,
, , - . Also we need to close tags properly.
We must not use
. For blank lines we can output empty to represent them.
Now let's extract all textual content in order, ignoring formatting tags, but preserving whitespace? We'll just output as we go.
I'll go through the original and produce the HTML.
I
Apply Now ↗
How well do you match?
Get an instant AI match score for this role — free, takes 3 minutes.
Tailor your CV for this role
The concierge rewrites your whole CV and writes a matching cover letter for this job — opens right here, nothing to paste.
Tailor My CV to This Job ✍️
Free cover letter for this job
Upload your CV and get a tailored cover letter in seconds — free, no account needed.
Generate a Cover Letter 📝
. Must preserve all original content word-for-word, no addition, removal, summarising, rephrase. So we need to extract the text content from the given HTML (which includes many spans with styles). We need to strip those tags and keep the text. Then we need to structure using headings for sections: The original has headings like "About Restless Development", "Our approach to safeguarding", "About YIGA", "About the Role:", then a block with job details (Job title, Location, etc.) then "Key responsibilities" with subheadings (Programme Documentation and Storytelling, Communication of Results and Youth Voice, Digital Communications and Programme Visibility, Media and Partner Coordination, Communications Planning and Coordination, Ethical, Inclusive and Safe Communications, Other responsibilities). Then "Qualifications and Experience" with "Essential" list. We must use
for section headers. So each heading becomes Heading
. Paragraphs become
. Lists become
- items.
We must preserve all original content word-for-word. That means we cannot change wording, punctuation, etc. Must keep line breaks? We'll just output as HTML; line breaks inside
are not needed. We must not add any extra content. Must not omit any content. Must not add any explanation. We need to parse the given input and produce HTML. Let's extract the text content from the given HTML. I'll go through the input step by step. Input starts:
Communications Officer
That's the job title line. The text: "Communications Officer". There's a non-breaking space after? We'll keep as "Communications Officer". Probably just that. Next line:Apply by 5th October 2026 at 5:00 PM (E.A.T)
Text: "Apply by 5th October 2026 at 5:00 PM (E.A.T)" Then
(empty line) - we can ignore? It's a blank line; we could output an empty ? But we should preserve content; a
inside a p is just a line break. Since we cannot use
tags, we need to represent that as maybe an empty paragraph? The instruction: preserve ALL original content word-for-word — do not add, remove, summarise, or rephrase. If we drop the
we are removing content. However we cannot use
tags. The rules say: No
tags. So we must not output
. But we must preserve content. How to represent a line break without
? Possibly we can just treat it as a paragraph break: an empty would represent a blank line. That might be acceptable as preserving the blank line. The original had a
which is a paragraph containing a line break, effectively a blank line. If we output an empty , that's a blank line. That seems okay. But we must not add any extra content; an empty is not adding content, it's representing the blank line. It's not adding text. It's okay. Proceed. Next:About Restless Development
Text: "About Restless Development" Then paragraph:We have worked in Uganda since 1997, guided by four goals shaped by young people: Voice and Democracy, Education and Livelihoods, Gender and Sexual Health, and Climate Justice. We support young people to influence decisions, access quality education and sustainable livelihood opportunities, advance sexual and reproductive health and rights, promote gender equality, and lead action towards a just and sustainable future. We currently work in 26 districts across Northern, North-Eastern, Central and Eastern Uganda, with offices in Kampala, Jinja, Moroto and West Nile.
Text: that sentence. Then
blank line. Next:Our approach to safeguarding
Text: "Our approach to safeguarding" Paragraph:Restless Development considers the welfare and protection of children, young people and vulnerable adults to be an organisational imperative with primacy over the success of programmes or strategic objectives.
Text. Then
blank. Next:About YIGA
Text: "About YIGA" Paragraph:Promoting Youth Inclusion in Governance and Decision-making in Uganda (YIGA) is supported by the Royal Danish Embassy under PACER and runs through December 2027. Restless Development leads the consortium with Media Challenge Initiative (MCI) and Karamoja Youth Effort to Save the Environment (KAYESE). Building on implementation in Karamoja, the project is expanding to Arua, Terego and Madi-Okollo in West Nile, alongside activities that bring regional youth priorities into national discussions.
Then another paragraph:YIGA addresses the information gaps, limited opportunities and institutional barriers that prevent young people from influencing decisions about their communities. It helps young people understand local government planning and budgeting, gather evidence on public services, and raise their priorities with elected representatives, officials and community leaders. At the same time, it helps these leaders involve young people in decisions and respond to their concerns through practical action plans and regular follow-up.
Then another paragraph:In West Nile, this includes training Youth Accountability Advocates and youth councillors, supporting community barazas and Youth Leader Connect meetings, and monitoring service delivery with local governments. MCI's Youth Information Hub+ combines a physical hub in Arua and Karamoja, mobile and digital engagement approaches and digital resources with civic films, radio, storytelling and media literacy activities. Evidence from both regions will inform the State of Youth Civil Society in Uganda report and National Youth Working Group discussions. Throughout, YIGA seeks to turn informed youth participation into decisions and services that better reflect young people's needs.
Then
blank. Next:About the Role:
Text: "About the Role:" Paragraph:The Communications Officer will lead and coordinate communications and documentation for Restless Development’s contribution to YIGA, with particular responsibility for implementation in West Nile while supporting consistent programme messaging across West Nile, Karamoja and relevant national engagement.
Paragraph:The role will ensure that programme activities, results, youth perspectives, evidence, learning and stories of change are captured in real time and translated into high-quality communications for young people, partners, donors, government stakeholders and wider audiences.The Communications Officer will work closely with the Communications Coordinator, Programme Manager, Assistant Programme Coordinator, Programme Officer, MEL Coordinator, Advocacy Officer and other Restless Development teams.
Paragraph:The Officer will also work closely with MCI’s Communications Officer, Production Officers, Graphic Designer, Civic News Reporters and Training Officer. The Communications Officer will primarily provide programme-level communications coordination, documentation, messaging, visibility, quality assurance and linkage between programme evidence and communications, while MCI provides specialised civic-media production, digital dissemination and technical media support. This distinction will ensure complementary rather than duplicated communications functions across the consortium.
Then
(two line breaks). That's a paragraph with two
tags. We cannot use
. We could represent as two consecutive empty ? Actually awith two
to represent those blank lines. That seems okay. Next:
yields a paragraph with line breaks but no text; effectively two blank lines. We could output two emptyJob title: Communications Officer
Text: "Job title: Communications Officer" Note there is a space before Communications Officer? The second span starts with a space. We'll keep that space. Next:Location: Arua – West Nile, Uganda
Text: "Location: Arua – West Nile, Uganda" Next:Project coverage: West Nile, with coordination across Karamoja and relevant national programme activities
Text: "Project coverage: West Nile, with coordination across Karamoja and relevant national programme activities" Next:YIGA Level of Effort: 50%
Text: "YIGA Level of Effort: 50%" Next:Salary: UGX 23,542,380 Gross Per Annum
Text: "Salary: UGX 23,542,380 Gross Per Annum" plus maybe a non-breaking space after. We'll keep as is. Next:Preferred start date: As Soon As Possible
Text: "Preferred start date: As Soon As Possible" Next:Duration: 1 year, renewable depending on funding and performance
Text: "Duration: 1 year, renewable depending on funding and performance" Next:Reports to: Communications Coordinator
Text: "Reports to: Communications Coordinator" Next:Direct Reports: Young Leaders, where applicable
Text: "Direct Reports: Young Leaders, where applicable" Next:Expected travel: Regular domestic travel, particularly within West Nile and to other programme locations as required
Text: "Expected travel: Regular domestic travel, particularly within West Nile and to other programme locations as required" plus maybe NBSP. Then
blank. Next:Key responsibilities
Text: "Key responsibilities" includes underline tags. We need to preserve the underline? The original includes tags. We cannot use because we are only allowed,
,
- . No other tags. But we must preserve content word-for-word. However the instruction says: Return ONLY the cleaned job text. In the first task we removed formatting. In this second task, we need to format as clean semantic HTML, preserving ALL original content word-for-word. But we cannot use because it's not allowed per rules: only
,
,
- . No CSS classes, no inline styles, no s, no
tags. It doesn't explicitly forbid , but says usefor introductory paragraphs and general text,
for section headers,
- for list items. It doesn't say we cannot use other tags, but the implied expectation is to use only those tags. However the instruction: "Use
for introductory paragraphs and general text. Use
for section headers ... Use
- for list items ... No CSS classes, no inline styles, no s, no
tags". It doesn't say we cannot use other tags like , , etc. But to be safe, we should avoid any tags not listed. However we must preserve content word-for-word, including the underline markup. If we drop the we are altering content. The instruction says preserve ALL original content word-for-word — do not add, remove, summarise, or rephrase. That includes markup? The original content includes the tags. So we must keep them. But the rules for this task say we should format as clean semantic HTML using only those tags. There's a conflict. We need to interpret: The task is to format the job description as clean semantic HTML. The original content includes formatting like bold, underline, etc. We are to strip those and represent using semantic tags: headings for section headers, paragraphs for text, lists for list items. The underline on "Key responsibilities" is just formatting; we can represent it as a heading () maybe. The original had Key responsibilities inside a
with bold and color. The semantic meaning is a section header. So we can treat it as a heading. That would be preserving the meaning, not the exact markup. But the instruction says preserve ALL original content word-for-word. However earlier in the first task we were to remove formatting etc. In this second task, we are to format as clean semantic HTML, preserving ALL original content word-for-word. I think they mean preserve the textual content, not the formatting markup. Because they ask to use semantic tags, which implies we replace formatting with appropriate tags. So we should treat "Key responsibilities" as a section header (
). The underline can be ignored as formatting. Thus we will output
Key responsibilities
. Similarly, other bolded section headers like "Programme Documentation and Storytelling", etc. Those are bolded lines that are not list items but headings for groups of responsibilities. In the original they are bolded lines followed by- . Those should be
- ) for each bullet point.
We must preserve all textual content exactly, including punctuation, spaces.
We must not add any extra text.
We must not omit any content.
We must not add any extra tags besides
,
,
- ,
- . Also we need to close tags properly.
We must not use
. For blank lines we can output empty to represent them. Now let's extract all textual content in order, ignoring formatting tags, but preserving whitespace? We'll just output as we go. I'll go through the original and produce the HTML. I
- . Also we need to close tags properly.
We must not use
as well. Also "Qualifications and Experience" and "Essential" maybe headings. We need to decide which lines are section headers. The original uses bold for headings. We'll treat each bold line that is not part of a paragraph as a heading (
). However some bold lines are within paragraphs like "Job title:" etc. Those are labels inside a paragraph; they are not separate headings. In the original they are inside a
with two spans: bold label and regular value. That's essentially a key-value pair. We should keep them as a paragraph, not a heading. So we need to differentiate. Thus we will parse the original and produce HTML with: - Headings (
) for section titles: About Restless Development, Our approach to safeguarding, About YIGA, About the Role:, Key responsibilities, Programme Documentation and Storytelling, Communication of Results and Youth Voice, Digital Communications and Programme Visibility, Media and Partner Coordination, Communications Planning and Coordination, Ethical, Inclusive and Safe Communications, Other responsibilities, Qualifications and Experience, Essential (maybe). Also maybe "About the Role:" includes colon; we keep as is. - Paragraphs (
) for explanatory text. - Lists (
- ) for each bullet point.
We must preserve all textual content exactly, including punctuation, spaces.
We must not add any extra text.
We must not omit any content.
We must not add any extra tags besides
- for list items ... No CSS classes, no inline styles, no
- for list items. It doesn't say we cannot use other tags, but the implied expectation is to use only those tags. However the instruction: "Use
- . No CSS classes, no inline styles, no
- . No other tags. But we must preserve content word-for-word. However the instruction says: Return ONLY the cleaned job text. In the first task we removed formatting. In this second task, we need to format as clean semantic HTML, preserving ALL original content word-for-word. But we cannot use because it's not allowed per rules: only
How well do you match?
Get an instant AI match score for this role — free, takes 3 minutes.
Tailor your CV for this role
The concierge rewrites your whole CV and writes a matching cover letter for this job — opens right here, nothing to paste.
Tailor My CV to This Job ✍️Free cover letter for this job
Upload your CV and get a tailored cover letter in seconds — free, no account needed.
Generate a Cover Letter 📝Let jobs find you
Leave your email and our AI matches you to new jobs across 24 African markets — free. You wait for the call.
Add your CV for real matches
Upload your CV and we score every new job against your real experience — only strong matches reach your inbox. Optional, but it makes your matches far sharper.
You're in.
We'll email you the moment a job matches your profile. Check your inbox for a welcome from My Job Concierge.
I'm ECHO, your MJC career assistant. I can help you find jobs, explore career tools, and connect with opportunities across Africa.