An automated web scraping pipeline that extracts job postings from MyJobMag, processes them in R, and displays real-time insights through an interactive Shiny dashboard with filtering, trend analysis, and visualization tools.
An end-to-end digital Monitoring & Evaluation system built using KoBoToolbox, R, and Shiny to automate data collection, scoring, reporting, and real-time program monitoring for NGOs and CBOs.
An applied labor economics and behavioral data science case study modeling the psychological and structural drivers behind "Job Hugging."
An R package for automated data validation, quality assurance, and reporting in public health and research workflows.
Geospatial analysis of Community Health Promoter coverage and household distribution using KoboToolbox, R, and Leaflet.
Project Type: Web Scraping & Interactive Dashboard
Status: π’ Live Demonstration Project
Tools & Technologies: R, rvest, tidyverse, lubridate, Shiny, shinydashboard, highcharter, DT, plotly, wordcloud, tm, waiter, shinyapps.io, GitHub
Job seekers often spend hours manually refreshing job websites, scrolling through cluttered pages, and trying to identify new opportunities. Websites like MyJobMag don't always display vacancies in clear chronological order, and the interface is filled with advertisements that make navigation difficult. This results in wasted time, missed opportunities, and a frustrating job search experience.
I built an automated web scraping pipeline that extracts job postings from MyJobMag, processes them in R, and displays the results through an interactive Shiny dashboard.
The system scrapes job titles, companies, dates, and links from multiple pages, cleans and structures the data, filters jobs by date range and company, visualizes hiring trends, and provides a clean, ad-free interface for job searching.
The scraper performs the following steps:
Data Collected:
Key Metrics:
Visualizations:
Interactive Filters:
Data Export:
Scraping Logic:
myjobmag_jobs <- function(base_url, max_pages = 7, days_back = 7) {
# Automated scraping with pagination and error handling
# Returns cleaned, deduplicated job data as a tibble
}
Title Parsing:
# Extract company from "Job Title at Company Name"
if (str_detect(title, " at ")) {
parts <- str_split(title, " at ", simplify = TRUE)
job_title <- str_trim(parts[1])
company <- str_trim(parts[2])
}
Key Views:
Project Type: Digital Monitoring & Evaluation System
Status: π’ Live Demonstration Project
Tools & Technologies: KoBoToolbox, KoBo API, R, robotoolbox, tidyverse, dplyr, Shiny, shinyapps.io, GitHub
Small NGOs and community-based organizations often rely on disconnected spreadsheets, manual reporting processes, and limited technical infrastructure. These challenges result in delayed reporting, duplicate records, poor data quality, and limited visibility into program performance.
I designed and deployed an automated Monitoring & Evaluation ecosystem that connects data collection, storage, processing, analysis, and reporting into a single reproducible workflow.
The system eliminates manual data downloads by pulling submissions directly from KoBoToolbox through its API, processing data in R, and displaying real-time insights through an interactive Shiny dashboard.
The project uses three integrated KoBoToolbox forms:
Data entered through the forms is automatically synchronized and processed without requiring manual exports.
Project Type: Applied Labor Economics & Behavioral Data Science Case Study
Status: π‘ Data Collection & Modeling in Progress | π’ Infrastructure Complete
Tools & Technologies: R (tidyverse, psych, stats, ggplot2), R Shiny, KoboToolbox API, World Bank & ILOSTAT APIs
This pipeline is engineered as an automated data product. The data collection layout and operational tracking system are deployed up front to handle streaming field entries cleanly without manual intervention.
Mobile-responsive tool engineered via KoboToolbox. Deploys tailored constraints and logic forks across sector paths (Tech, Retail, and NGOs) to secure structural integrity before collection. Link to survey form
Real-time monitoring system
styled with the fresh theme engine. Features customized ggplot2 visual frameworks and maps metrics dynamically via direct API callbacks.
Link to dashboard
Modern labor markets are experiencing a structural paradox: while widespread workplace dissatisfaction remains documented, voluntary job mobility is declining across multiple core industries. This study investigates this emerging behavioral patternβempirically operationalized as "Job Hugging"βwhere workers choose to remain in their current roles despite actively considering alternative employment, driven by compounding macroeconomic anxiety and asymmetric household financial constraints.
This quantitative cross-sectional behavioral study integrates validated primary psychometric measurement sub-scales with structural secondary macroeconomic indicators:
js1 to js5).ji1 to ji4).pe1 to pe4).income_dependents) and categorical timelines (emergency_buffer).robotoolbox to completely eliminate raw CSV exports, processing row binding algorithms live in workspace memory.psych library to compute Cronbach's alpha coefficients, enforcing a strict internal reliability threshold of alpha β₯ 0.70.Project Type: R Package for Data Quality Validation
Status: In Development
Tools: R, tidyverse, dplyr, testthat, GitHub
Data validation in real-world monitoring and evaluation workflows is often fragmented, with analysts writing repetitive scripts for missing values, duplicates, invalid ranges, and logical inconsistencies. Existing tools such as pointblank provide powerful validation pipelines, but they require structured setup that can slow down rapid analysis in field-based environments.
validationcheck introduces a function-based validation system that allows users to define and execute validation rules in a simple, readable pipeline while tracking summaries, failure rates, and severity classifications (GOOD, WARNING, CRITICAL).
add_validation(
agent,
label,
columns,
rule,
preconditions = NULL,
check
)
Severity Rules:
GOOD: 0% β 2% failure | WARNING: 2% β 20% failure | CRITICAL: > 20% failure
Organization: Council of Imams and Preachers of Kenya (CIPK) Taita Taveta Branch β USAID TUJITEGEMEE Project
Type: Community Health Systems Strengthening & Geospatial Analysis
Tools: R, Shiny, Leaflet, KoboToolbox, dplyr, Excel
During an OVC household validation exercise, program teams identified challenges related to the geographical distribution of households supported by Community Health Promoters (CHPs). Some CHPs were supporting households located far from their areas of operation, while others experienced overlapping household assignments. These inefficiencies affected case management, follow-up visits, and service delivery.
Geolocation survey developed in KoboToolbox and used to collect Community Health Promoter location data.
Interactive map showing CHP and household distribution used to identify overlaps and service coverage gaps.