Skip to content
    ↑↓ to choose · Enter to open

    · 14 min read

    MyJobMag Scraper: 20 Data Fields, Up to 1,000 Free Results/Month

    By CrawlerBros Engineering Team

    Each output record carries 20 output fields, including title, companyName, location, and canonical sourceUrl, letting you monitor hiring trends across Nigeria. This data costs $5.00 per 1,000 results on the free plan, meaning you can extract complete listing details without maintaining proxies or writing custom selectors. The tool handles thirteen specialized search and browse modes, though it does not provide direct candidate contact information. This scraper is ideal for recruitment analysts, job board aggregators, and candidates targeting the Nigerian labor market who need structured data instead of manual copy-pasting.

    Try it before you read further. Apify's free plan includes $5.00 of usage every month with no credit card, enough for up to 1,000 results at $0.005 each before platform usage. Open MyJobMag Scraper on Apify and run the prefilled example.

    How reliable is MyJobMag Scraper in production?

    Across the last 30 days of public runs on the Apify platform, MyJobMag Scraper recorded 63 runs with the following outcomes.

    Outcome Runs Share
    Succeeded 27 42.9%
    Failed 0 0.0%
    Aborted by the user 36 57.1%
    Timed out 0 0.0%
    Total 63 100.0%

    No run failed or timed out in the last 30 days; the 36 that did not finish were stopped by the people who started them. Keep a retry and an alert on scheduled runs all the same: a clean month is a record, not a guarantee.

    What does it cost to run MyJobMag Scraper?

    Each result costs $0.005 on Apify's free plan, which is $5.00 per 1,000 results. Starting a run is charged separately at $0.005 per GB of Actor memory. Apify also bills the platform usage each run consumes, at the rates of your Apify plan, on top of these charges.

    Apify plan Per result Per 1,000 results
    FREE $0.005 $5.00
    BRONZE $0.00433 $4.33
    SILVER $0.00367 $3.67
    GOLD $0.003 $3.00
    PLATINUM $0.003 $3.00
    DIAMOND $0.003 $3.00

    Worked example: collecting 10,000 results costs $50.00 in result charges before run-start fees and platform usage. No run failed or timed out in the last 30 days, so the list price is a fair budget; keep a retry in place all the same.

    The includeFullDetails parameter is the primary driver of execution time because it instructs the crawler to make an individual HTTP request for every single job page to fetch complete descriptions and requirements. To keep your platform usage low, run your initial tests with includeFullDetails disabled and maxItems set to a small limit before scaling up. This allows you to verify that the query parameters and category selections map to your targets without consuming unnecessary runtime.

    How do you run MyJobMag Scraper from the API?

    The schema marks 1 of its 16 controls as required: mode. Nothing in the payload below is illustrative. Those are the schema's prefilled defaults for MyJobMag Scraper, so the request works once your token is in place.

    Call the synchronous endpoint to start a run and receive dataset items in one request:

    curl -X POST "https://api.apify.com/v2/acts/crawlerbros~myjobmag-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
      -H "Content-Type: application/json" \
      -d '{"mode":"search","companySlug":"pz-cussons","jobTitle":"accountant"}'
    

    The same run from Python, using the official client:

    from apify_client import ApifyClient
    
    client = ApifyClient("<YOUR_APIFY_TOKEN>")
    
    run_input = {
      "mode": "search",
      "companySlug": "pz-cussons",
      "jobTitle": "accountant"
    }
    
    run = client.actor("crawlerbros~myjobmag-scraper").call(run_input=run_input)
    
    for item in client.dataset(run["defaultDatasetId"]).iterate_items():
        print(item)
    

    And from Node.js:

    import { ApifyClient } from 'apify-client'
    
    const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' })
    
    const input = {
      "mode": "search",
      "companySlug": "pz-cussons",
      "jobTitle": "accountant"
    }
    
    const run = await client.actor('crawlerbros~myjobmag-scraper').call(input)
    const { items } = await client.dataset(run.defaultDatasetId).listItems()
    console.log(items)
    

    Because the call is synchronous, your client waits for the whole run. Keep it for exploration. For scheduled work, start the run without waiting and collect the dataset afterwards, so network trouble costs you a retry rather than the results.

    Which MyJobMag Scraper inputs matter, and which can you skip?

    The mode control determines how the scraper navigates MyJobMag, allowing you to search by keyword or use dedicated browse paths like byIndustry or byLocation. Most users should focus on setting either searchQuery or the appropriate category select boxes while keeping other advanced settings at their default values. If you already have specific jobs in mind, switch the mode to byUrls and input your target links directly into the listingUrls array.

    • mode (string): What to fetch / which browse axis to use. Default: "search".
    • companySlug (string): Employer/company slug or name to browse all of its live job listings (mode=byCompany), e.g. rainoil-oil-and-gas-company or PZ Cussons (auto-slugified). Find slugs on https://www.myjobmag.com/companies or from any job's jobs-at/<slug> link.
    • jobTitle (string): Job title slug or free-text title to browse MyJobMag's title-matched listings (mode=byTitle), e.g. accountant, web-developer, Front Desk Officer (auto-slugified). Distinct from searchQuery: this matches against the job title only, not the broader full-text search index.
    • searchQuery (string): Free-text keyword - job title, skill, or company name. Default: "accountant".
    • field (string): Filter to a job field / function (mode=byField). Default: "".
    • industry (string): Filter to an industry (mode=byIndustry). Default: "".
    • location (string): Filter to a Nigerian state (mode=byLocation). Default: "".
    • region (string): Filter to a geopolitical region (mode=byRegion). Default: "".
    • employmentType (string): Filter to an employment type (mode=byType). Default: "".
    • datePeriod (string): Filter to a recency window (mode=byDate). Default: "".
    • educationLevel (string): Filter to an education level (mode=byEducation). Default: "".
    • city (string): Filter to a Nigerian city (more granular than State) (mode=byCity). Default: "".

    The other 4 controls, with their defaults, are listed in the input schema on MyJobMag Scraper on Apify.

    Fixed-choice controls: mode accepts 13 values (default search), including search (Search jobs (keyword)), byField (Browse by field / job function), byIndustry (Browse by industry), byLocation (Browse by state); field accepts 52 values (default ""), including "" (Any field), administration (Administration / Facilities), agriculture (Agriculture / Agro-Allied), art (Art / Crafts / Languages); industry accepts 39 values (default ""), including "" (Any industry), advertising-branding (Advertising / Branding / PR), agriculture (Agriculture / Agro-Allied), aviation (Aviation / Airline); location accepts 39 values (default ""), including "" (Any state), abia, abuja, adamawa; region accepts "" (Any region), north-central (North Central), north-east (North East), north-west (North West), south-east (South East), south-south (South South), south-west (South West); employmentType accepts "" (Any type), full-time (Full Time), part-time (Part Time), contract, hybrid, onsite, remote, expatriate; datePeriod accepts "" (Any time), today, yesterday, this-week (This Week), last-week (Last Week), this-month (This Month), last-month (Last Month); educationLevel accepts 11 values (default ""), including "" (Any education level), bsc (BA/BSc/HND), fslc (First School Leaving Certificate), msc (MBA/MSc/MA); city accepts 101 values (default ""), including "" (Any city), aba, abeokuta, abule.

    What does MyJobMag Scraper return?

    The resulting dataset delivers structured job metadata including salary indicators, employment types, geographic locations, and publication dates. It does not contain internal applicant counts, candidate application histories, or direct email addresses for hiring managers. This makes the dataset perfect for building job boards, analyzing market demand, or tracking competitor headcount growth.

    • title, companyName, companyUrl, companyLogoUrl
    • location, addressLocality, addressRegion, addressCountry
    • category - job field/function (e.g. "Finance / Accounting / Audit")
    • industry, educationLevel, employmentType
    • descriptionHtml, descriptionText
    • datePosted, validThrough - ISO 8601 timestamps
    • datePostedText - e.g. "06 August" (only when the absolute date wasn't fetched)
    • sourceUrl - canonical listing URL
    • recordType: "job", scrapedAt

    These are the documented fields. Optional ones can be empty on a given record, so measure how often each field your deliverable depends on is populated across a real sample before automating the handoff.

    How do you build the workflow end to end?

    Open MyJobMag Scraper and work through these in order. Each step ends with something to check, so a bad configuration surfaces on a small run rather than a scheduled one.

    1. Select the required mode of operation depending on your target: search for keyword searches, byLocation for state-level listings, or byCompany for specific employers.
    2. Configure your principal query parameter such as searchQuery or companySlug depending on your selected mode.
    3. Choose whether to toggle includeFullDetails to true, which directs the scraper to make an extra request to each listing's page for rich fields like descriptionHtml.
    4. Set the maxItems limit to a low value like 10 for an initial test run to verify the layout and data formats.
    5. Verify the output in the Apify dataset viewer to ensure that critical fields like sourceUrl, title, and companyName are populating.
    6. Increase maxItems to your desired volume up to the 1000 limit when you are ready to collect the full production dataset.
    7. Save the task configuration and establish a schedule to run the Actor automatically at your preferred intervals.

    How do you apply it? Three worked playbooks

    These are MyJobMag Scraper's own documented use cases, each worked through as an operating pattern rather than a description.

    Use case 1: Job seekers

    Outcome: Build custom alerts across Nigerian states, industries, and remote-work filters.

    Configure: Set mode to "byLocation", location to "lagos", employmentType to "remote", and includeFullDetails to true.

    Working method: Run the Actor using the specified geographical and work-type filters. Review the returned dataset to ensure the jobs match your state and remote criteria, then set up an automated daily schedule to capture new entries.

    Deliverable: A daily CSV file containing remote job listings in Lagos, including full description texts and application links.

    Stop condition: The run emits zero results despite active listings on the website, or the location field is entirely absent from the records.

    Use case 2: HR tech products

    Outcome: Power a job-aggregation feature with fresh, structured listing data.

    Configure: Set mode to "byDate", datePeriod to "today", and maxItems to 500.

    Working method: Execute the Actor on a daily schedule to catch newly published jobs. Consume the resulting JSON payload from the Apify dataset API directly into your database ingestion pipeline.

    Deliverable: A structured JSON dataset containing all job listings published on MyJobMag within the last 24 hours.

    Stop condition: The incoming dataset records are missing the title or companyName fields, which are mandatory for database normalization.

    Use case 3: Recruiters & staffing agencies

    Outcome: Monitor competitor postings by field or region.

    Configure: Set mode to "byCompany", companySlug to "pz-cussons", and includeFullDetails to true.

    Working method: Execute a run targeting the specific competitor's slug, then repeat for other target employers. Compare the results against your historical snapshots to detect new recruitment campaigns.

    Deliverable: A master spreadsheet mapping competitor companies to their active hiring roles, job descriptions, and posting dates.

    Stop condition: The scraper outputs duplicate sourceUrl entries within the same run or fails to load listing details for existing company slugs.

    What breaks, and how do you design around it?

    • Over the last 30 days, 0.0% of public runs failed and 0.0% timed out. Build retries and alerting around those rates rather than assuming every run completes.

    The scraper enforces a hard cap of 1,000 items per run through the maxItems parameter to maintain performance and avoid scraping blocks. If you need to gather larger volumes of data, split your collection across different states, industries, or date periods in separate, sequential runs. Additionally, the target site occasionally cross-lists jobs in incorrect locations; utilize the actual addressRegion field in your post-processing rather than relying solely on the input filter to guarantee geographic accuracy.

    When should you not use MyJobMag Scraper?

    Do not use this Actor if you are looking to build a global recruitment dataset or need coverage outside of West Africa. This scraper targets MyJobMag.com exclusively, which focuses heavily on the Nigerian job market. If your target is European IT jobs, you should instead use get in IT Jobs Scraper. If you require listings in Switzerland, use jobs.ch Scraper. For Middle Eastern recruitment campaigns, GulfTalent Jobs Scraper is the appropriate alternative. If you want a globally curated remote focus, use Jobicy Remote Jobs Scraper. Finally, if you need a direct official API integration with a formal service level agreement, you should license an enterprise recruitment data feed instead of web scraping.

    What should you check before trusting the output?

    • Check that the sourceUrl field contains a valid MyJobMag URL starting with a protocol and domain.
    • Confirm that descriptionText is present and contains non-empty text when includeFullDetails is enabled.
    • Verify that the scrapedAt field is formatted as a valid ISO 8601 timestamp.
    • Verify that addressCountry is correctly populated with Nigeria across the dataset.
    • Assess instances where location data differs from the browse filter, validating them against the live site layout as noted in the upstream data-quality quirks.

    None of this proves a record is correct. It gives a scheduled MyJobMag Scraper run defined points where it should stop instead of quietly passing bad data downstream.

    Frequently asked questions

    What is the expected reliability of MyJobMag Scraper?

    The scraper is highly stable, as shown by the zero failed runs and zero timeouts recorded out of 63 runs in the last 30 days. All non-successful runs were user-aborted, indicating that the tool performs reliably when left to run unattended.

    How much does it cost to scrape 5,000 job listings?

    On the free-plan price of $5.00 per 1,000 results, 5,000 results will cost $25.00 in result charges. Keep in mind that Apify also bills for the platform usage consumed by the run, plus a $0.005 per GB run-start fee, which varies based on execution duration and memory allocation.

    Can I filter jobs by specific Nigerian cities?

    Yes. By setting the mode to byCity, you can filter results down to 100 granular city options such as Lekki, Ikeja, or Port Harcourt, which is much more precise than filtering by state alone.

    Do I need proxies or a MyJobMag account to use this scraper?

    No. The scraper runs successfully on public data without requiring an active MyJobMag account, login cookies, or paid premium proxies, keeping your overall setup simple and cost-efficient.

    Why does the dataset sometimes contain a different location than my filter?

    This is caused by an upstream data quality issue on MyJobMag where some postings are manually cross-listed by employers. The scraper always extracts the actual location displayed on the job page to ensure you have authentic, unmanipulated data.

    Where to go next

    When you are ready to run it, open MyJobMag Scraper on Apify; the free plan covers up to 1,000 results a month.

    Start with the MyJobMag Scraper Actor page for the current input schema, pricing tier, and run history.

    Other Actors we maintain for related data:

    Related guides:

    Resources

    • Actor documentation, input schema, and pricing: verified against the published Actor on 2026-10-06.

    • Actor last updated by its maintainers on 2026-08-07.

    • Run outcome figures cover the 30 day public window ending 2026-10-06.

    • MyJobMag Scraper on Apify

    Featured actors

    MyJobMag Scraper

    Scrape live job listings from MyJobMag.com, a leading Nigerian job board. Search by keyword, or browse by field, industry, state, region, employment type, education level, or recency - plus fetch full job details from listing URLs.

    Run on Apify ↗