RE

Programme Officer

Fixed_term Arua, UG
Posted 2 weeks, 5 days ago 160 views 0 applications

Job Description

Here's a thinking process: 1. **Analyze User Input:** - User is acting as a job listing editor. - I receive raw scraped text from a job website. - My job: extract ONLY actual job information, return clean, readable format. - Must REMOVE: social sharing text, author bylines, "you may also like", navigation, comments, ads/promotions, cookie/subscription notices, duplicate text, category labels not part of job, stray numbers/formatting artifacts. - Must KEEP and STRUCTURE: job title, company/organisation, location, job description/responsibilities, requirements/qualifications, how to apply, salary, deadline/closing date, job ID/reference number, contract type/level. - Return ONLY the cleaned job text. No commentary, no headers like "Here is the cleaned version", no markdown formatting. Just the clean job listing text. Wait, the actual prompt I need to respond to is different. Let me re-read carefully. The user says: "You receive a plain-text job description. Your ONLY job is to format it as clean semantic HTML." Then there are rules: - Use

for introductory paragraphs and general text - Use

for section headers (e.g. Responsibilities, Qualifications, Requirements, Education, Experience, Skills, How to Apply, Key Duties, About the Role) - Use
  • for list items (duties, requirements, qualifications, skills) - No CSS classes, no inline styles, no
    s, no
    tags - Preserve ALL original content word-for-word — do not add, remove, summarise, or rephrase - If text has no clear sections, just wrap paragraphs in

    tags - Return ONLY the HTML. No markdown fences, no explanation, no preamble. Then there's a "Job description:" section with a lot of text enclosed in

    ... tags. So my task is: Take that raw text, strip out the inline styles and colors etc., but preserve ALL original content word-for-word. Format it as clean semantic HTML using

    ,

    ,
      ,
    • . No
      , no
      , no inline styles. I need to keep the text content exactly as is, just restructure into the HTML tags specified. Let me look at the job description text. It's already in

      ... format with inline styles for color, font-size, font-weight. I need to extract the text content from those spans, ignoring the span markup itself (the styles), but keeping the text. Then organize into semantic HTML. Rules say: "Preserve ALL original content word-for-word — do not add, remove, summarise, or rephrase". So I must keep every word, but I can remove the tags and their inline style attributes, because those are formatting, not content. The content inside the spans is what matters. I should not change the text words. Also: "If text has no clear sections, just wrap paragraphs in

      tags". This text has clear sections: Responsibilities, Youth civic learning and mentorship, Dialogue, service monitoring and accountability, etc. These are marked with Key responsibilities etc. I should use

      for section headers as per rules. Let me parse the structure: The text starts with:

      Programme Officer

      YIGA | West Nile

      Apply by 5th October 2026 at 5:00 PM (E.A.T)


      About Restless Development

      We have worked in Uganda since 1997...


      Our approach to safeguarding

      Restless Development considers the welfare...


      About YIGA

      Promoting Youth Inclusion...

      YIGA addresses the information gaps...


      About the Role:

      The Programme Officer will deliver YIGA activities...


      Reporting to the Programme Coordinator...


      Job title: Programme Officer

      Location: Arua - West Nile, Uganda

      Geographical coverage: Mainly West Nile: Arua, Terego and Madi-Okollo...

      Salary: UGX 47,084,760 gross per annum

      Preferred start date: As Soon As Possible

      Duration: 1 year, renewable depending on funding and performance.

      Reports to: Programme Coordinator

      Direct reports: Young Leaders

      Expected travel: Regular domestic travel, mainly within West Nile, with other programme travel as required.


      Key responsibilities

      ... then ul/li sections for responsibilities, youth civic learning, dialogue, civic media, MEL, logistics, safeguarding. The ul/li sections have text inside. I need to output clean semantic HTML. Rules: use

      for intro paragraphs and general text,

      for section headers (e.g. Responsibilities, Qualifications, Requirements, Education, Experience, Skills, How to Apply, Key Duties, About the Role),
      • for list items. No CSS classes, no inline styles, no
        s, no
        tags. Preserve ALL original content word-for-word. Important: Remove
        tags. The input has


        which I should probably just treat as paragraph breaks, but rule says no
        tags. So I should not output
        . I can just have paragraphs separated by

        tags. Also, the span tags with inline styles: I need to strip the tags but keep the text inside. However, some spans have text, some have just text. I need to extract the text content. The rule says "Preserve ALL original content word-for-word". So I should keep the exact text, but I can remove the span markup because it's not content. But wait: if I remove the span tags, the text remains. I just need to output the text in the appropriate HTML tags. Let me think about how to structure this. The job description has sections. I should use

        for section headers. The headers in the text are like "Key responsibilities", "Youth civic learning and mentorship", "Dialogue, service monitoring and accountability", "Civic media and partner collaboration", "Monitoring, reporting and learning", "Logistics and financial accountability", "Safeguarding, inclusion and responsible practice". Also "About the Role:", "About Restless Development", "About YIGA", etc. The rules say: use

        for section headers (e.g. Responsibilities, Qualifications, Requirements, Education, Experience, Skills, How to Apply, Key Duties, About the Role). So I should use

        for major section headers. But the text has various headers; I'll use

        for each section title. Also, the text has bullet points inside
        • . Those should be preserved as
          • items. I need to output ONLY the HTML. No markdown fences, no explanation, no preamble. Let me reconstruct the HTML step by step, extracting text from spans, removing span tags, removing
            , keeping all text content word-for-word. I'll go through the input text and map it: Input parsing (I'll list the content in order, stripping span tags): 1.

            Programme Officer

            ->

            Programme Officer

            ? Or just

            Programme Officer

            ? The title is a header. Rules say use

            for section headers. But "Programme Officer" is the job title. I could wrap it in

            or

            . Since it's a title, maybe

            . But the rules section headers list includes "About the Role", "Key Duties", etc. I think "Programme Officer" as title could be

            . However, the instruction says "Use

            for section headers (e.g. Responsibilities, Qualifications, Requirements, Education, Experience, Skills, How to Apply, Key Duties, About the Role)". It doesn't say job title must be

            , but it's a header. I'll use

            for job title and section headers. But I need to be careful: the output should be clean semantic HTML. I'll treat the job title as an

            , and section headers as

            . Actually, re-reading: "Use

            for section headers (e.g. Responsibilities, Qualifications, Requirements, Education, Experience, Skills, How to Apply, Key Duties, About the Role)". This implies that any section header in the job description should be marked with

            . The job title might be considered a header too. I'll use

            for all headings/job title. But wait: the rule also says "If text has no clear sections, just wrap paragraphs in

            tags". This text has clear sections. Let me list all segments in order, with their text content (without span tags): - Programme Officer (title) - YIGA | West Nile (maybe this is company/location line? Actually it's "YIGA | West Nile" under the title. I'll keep as text.) - Apply by 5th October 2026 at 5:00 PM (E.A.T) (deadline) - (blank line / br, but no
            allowed, so maybe just skip or treat as paragraph break) - About Restless Development (section header) ->

            About Restless Development

            - 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. (paragraph text) ->

            ...

            - (br) - Our approach to safeguarding (section header) ->

            Our approach to safeguarding

            - 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. We recognise that safeguarding is everyone’s responsibility and we expect all of our staff, volunteers and partners to ensure we protect the communities in which we operate from harm and abide by our Safeguarding Policy. (paragraph) ->

            ...

            - (br) - About YIGA (section header) ->

            About YIGA

            - 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. (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. (paragraph) ->

            ...

            - (br) - About the Role: (section header) ->

            About the Role:

            - The Programme Officer will deliver YIGA activities with young people, community structures and local governments in Arua, Terego and Madi-Okollo. The role will help young people understand governance, planning and budgeting, gather evidence on public services, and engage officials and elected representatives about the issues affecting their lives. (paragraph) ->

            ...

            - Reporting to the Programme Coordinator, the Officer will work with the Assistant Programme Coordinator on day-to-day delivery and provide direct support and mentorship to Young Leaders. The role will organise youth training and dialogue, support government engagement and follow-up, maintain accurate activity records, and coordinate practical inputs with MEL, Finance and Logistics, MCI and communications colleagues. The Officer will focus on inclusive participation, timely implementation and making sure that youth concerns and agreed actions are documented and followed through. (paragraph) ->

            ...

            - (br) - Job title: Programme Officer (this is duplicate? Actually earlier we had "Programme Officer" as first line. I'll keep it once. But rule says remove duplicate text if title appears multiple times, keep it once. So I should output Programme Officer only once.) - Location: Arua - West Nile, Uganda - Geographical coverage: Mainly West Nile: Arua, Terego and Madi-Okollo, with contributions to shared YIGA and national activities as required. - Salary: UGX 47,084,760 gross per annum - Preferred start date: As Soon As Possible - Duration: 1 year, renewable depending on funding and performance. - Reports to: Programme Coordinator - Direct reports: Young Leaders - Expected travel: Regular domestic travel, mainly within West Nile, with other programme travel as required. - (br) - Key responsibilities (section header) ->

            Key responsibilities

            - Then the ul/li sections under it. Now the responsibilities sections are grouped under headings like "Key responsibilities", "Youth civic learning and mentorship", "Dialogue, service monitoring and accountability", "Civic media and partner collaboration", "Monitoring, reporting and learning", "Logistics and financial accountability", "Safeguarding, inclusion and responsible practice". Each of these has a heading, followed by
            • items. I need to output these as

              followed by
              • lists. Let me extract each section's text: After "Key responsibilities" ...: Actually the structure is:

                <

    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 📝

MJC
ECHO
Your MJC Assistant

I'm ECHO, your MJC career assistant. I can help you find jobs, explore career tools, and connect with opportunities across Africa.

How was your experience with ECHO?