Skip to content

September 22, 2026 · 9 min read

Uganda Business Directory Scraper: 3 Operational Workflows

By Crawlerbros Engineering Team

Direct answer

Uganda Business Directory Scraper extracts directory records from yellowpages-uganda.com across 48 native categories or site-wide keyword searches. It pulls structured fields including business names, primary categories, descriptions, phone numbers, email addresses, websites, social media profile links, street addresses, and geographic coordinates. The actor operates across three primary modes: browsing specific directory categories (byCategory), executing full-text site searches (search), or extracting details directly from specific profile URLs (byUrl). To extract practical business value, operators must define concrete acceptance criteria, enforce field validation rules, configure input filters to eliminate irrelevant entries, and output clean deliverables tailored to distinct internal tasks.

Practical use cases

These use cases come from Uganda Business Directory Scraper's published documentation. Each is expanded into an operating pattern so the Uganda Business Directory Scraper output has a purpose beyond collection.

Use case 1: Lead generation

Outcome: build a contact list of Ugandan businesses by industry, complete with phone/email/website.

Question to answer: Which candidates clear every hard requirement, and which evidence field justifies each one that does?

Configure: Start with requirePhone (Only include businesses that have a published phone number.), requireEmail (Only include businesses that have a published email address.), requireWebsite (Only include businesses that have a published website.). Use the narrowest Uganda Business Directory Scraper values that represent the real task, keep the first result set small, and record why each selected input matters to the Uganda Business Directory Scraper outcome.

Working method: Write the qualification rule down before looking at a single record, then sort candidates into qualified, needs research, and excluded with the reason recorded next to each one. Treat the result as research input, not permission to contact anyone.

Deliverable: Create a qualified research queue with fit reasons, exclusion reasons, missing information, and source links. Include the Uganda Business Directory Scraper source identifier and the collected fields behind every Uganda Business Directory Scraper decision.

Stop condition: Pause when the qualification rule keeps shifting between batches, key identifying fields are missing, or the list is being treated as a contact list rather than research. Fix the Uganda Business Directory Scraper question, comparison rule, or configuration before expanding the Uganda Business Directory Scraper run.

Use case 2: Market research

Outcome: analyze the density and geographic spread of a given industry across Uganda.

Question to answer: After grouping fairly, which gaps are large enough to matter, and which are within normal variation?

Configure: Start with mode (What to scrape: browse a business category, run a free-text search across every category, or fetch specific business profiles from direct yellowpages-uganda.com URLs.), category (Business category to browse (mode=byCategory). This is the full list of categories yellowpages-uganda.com actually publishes.), searchQuery (Free-text keyword to search across every yellowpages-uganda.com category, e.g. "hotel" or "bank". Matches business names/listings site-wide (not limited to one category).). Use the narrowest Uganda Business Directory Scraper values that represent the real task, keep the first result set small, and record why each selected input matters to the Uganda Business Directory Scraper outcome.

Working method: Decide the comparison axis first, then place every record into a cohort before looking at outcomes. Keep raw and normalized values side by side, and review the records that do not fit any cohort instead of dropping them.

Deliverable: Create a comparison matrix with cohort definitions, comparable fields, notable gaps, and decision implications. Include the Uganda Business Directory Scraper source identifier and the collected fields behind every Uganda Business Directory Scraper decision.

Stop condition: Pause when a cohort has too few records to compare fairly, the normalization hides a real difference, or the comparison is being driven by one outlier. Fix the Uganda Business Directory Scraper question, comparison rule, or configuration before expanding the Uganda Business Directory Scraper run.

Use case 3: Travel & hospitality

Outcome: pull hotel and tourism listings with photos and ratings for a travel app or aggregator.

Question to answer: Within the defined boundaries, which entries hold up as genuinely comparable once outliers are set aside?

Configure: Start with searchQuery (Free-text keyword to search across every yellowpages-uganda.com category, e.g. "hotel" or "bank". Matches business names/listings site-wide (not limited to one category).), mode (What to scrape: browse a business category, run a free-text search across every category, or fetch specific business profiles from direct yellowpages-uganda.com URLs.), sortBy (Sort order for results (mode=byCategory or mode=search). Maps to yellowpages-uganda.com's own listing sort options.). Use the narrowest Uganda Business Directory Scraper values that represent the real task, keep the first result set small, and record why each selected input matters to the Uganda Business Directory Scraper outcome.

Working method: Fix the geography, asset type, and acceptable range before collecting anything, then group results into comparable sets and set aside anything that falls outside every set rather than forcing it into the nearest one.

Deliverable: Create a market review table with comparable groups, outliers, missing diligence fields, and a follow-up queue. Include the Uganda Business Directory Scraper source identifier and the collected fields behind every Uganda Business Directory Scraper decision.

Stop condition: Pause when the geography or asset definition drifts between runs, a comparable set has too few entries to be meaningful, or price is being compared without the fields that explain it. Fix the Uganda Business Directory Scraper question, comparison rule, or configuration before expanding the Uganda Business Directory Scraper run.

Input parameters

Input Field Data Type Default Value Description
mode string "byCategory" Execution pattern: "byCategory", "search", or "byUrl".
category string "hotels-uganda" Target category slug when running in byCategory mode.
searchQuery string None Term for searching across all site categories in search mode.
sortBy string "newest" Result sorting order: "newest", "az", "za", "high_rating", "high_review", "low_review", or "random".
startUrls array [] Explicit listing profile URLs to fetch when mode is "byUrl".
maxItems integer 30 Maximum total business listing records to return.
minRating number 0 Minimum star rating threshold (0 to 5 stars).
maxRating number 5 Maximum star rating threshold (0 to 5 stars).
requirePhone boolean false When true, excludes listings missing a phone number.
requireEmail boolean false When true, excludes listings missing an email address.
requireWebsite boolean false When true, excludes listings missing a website link.
containsKeyword string "" Case-insensitive keyword filter applied to business name or description.

Step-by-step extraction workflow

  1. Select the operational target and establish matching input parameters inside the Actor console or API payload.
  2. Execute a small test run using maxItems set to 10 or 20 records to inspect returned JSON objects.
  3. Validate that mandatory fields for your business process (such as email for outreach or latitude for mapping) exist in the output.
  4. Apply client-side filtering using containsKeyword or input booleans like requirePhone to prune irrelevant results at extraction time.
  5. Run the full collection batch and store the raw JSON payloads in persistent storage.
  6. Deduplicate harvested records using the unique sourceUrl identifier to prevent duplicate entries in downstream databases.

Structural validation and quality controls

To ensure target outputs remain reliable for operational decisions, enforce these strict operational rules:

  • Email Field Scope: Always use byCategory or search modes when email addresses are required. The source site omits email data on direct detail pages, meaning byUrl mode cannot capture email values.
  • Address Discrepancies: Ignore generic system taxonomy defaults for city or region. Rely strictly on the verbatim address string and explicit latitude / longitude field values.
  • Unrated Entity Handling: Note that minRating and maxRating filters only evaluate rated businesses. Entities without any reviews bypass rating thresholds and will appear in output sets.
  • Schema Preservation: Null or unpopulated fields on yellowpages-uganda.com are omitted from output objects rather than published as empty strings. Downstream parsers must handle missing keys gracefully.

Frequently asked questions

Why are email addresses missing when running in byUrl mode?

The source platform yellowpages-uganda.com only displays email addresses on search result cards and category indexes. Direct listing detail pages do not publish email fields. Because byUrl mode parses listing detail pages directly, email fields are omitted. Use byCategory or search modes to collect email data.

How does the scraper handle businesses with no visitor ratings?

Listings that have received no user reviews or ratings pass through minRating and maxRating filters automatically. If your workflow requires only reviewed businesses, filter the output array downstream by checking for the presence of the rating or reviewCount keys.

Can I filter results by specific Ugandan cities like Kampala or Entebbe?

The directory site uses fixed default taxonomy tags for locations that do not reliably reflect actual physical locations. To target specific cities, use containsKeyword with your target location name or filter downstream using the free-text address field and coordinate values.

What is the difference between searchQuery and containsKeyword?

searchQuery triggers the directory's internal site-wide search endpoint across all 48 categories in search mode. containsKeyword is a filter evaluated during extraction that checks whether the business name or description text contains a specific string across any selected execution mode.

How are social media channels structured in the dataset?

Social profiles are extracted into distinct optional string fields: facebookUrl, twitterUrl, instagramUrl, linkedinUrl, youtubeUrl, and tiktokUrl. If a business owner has not published a specific profile, that key is absent from the JSON record.

Resources

● Featured actors

Uganda Business Directory Scraper

Scrape business listings from yellowpages-uganda.com - Uganda's online business directory. Browse 48 categories (hotels, restaurants, banks, hospitals, IT, and more) or fetch specific profiles by URL, with phone, email, website, address, geo-coordinates and photos.

Run on Apify ↗