Tunisia Keejob Jobs Scraper avatar

Tunisia Keejob Jobs Scraper

Pricing

from $3.00 / 1,000 results

Go to Apify Store
Tunisia Keejob Jobs Scraper

Tunisia Keejob Jobs Scraper

Collect Keejob Tunisia job listings, employers, locations, contracts, salaries, requirements, and descriptions from the site's public feed.

Pricing

from $3.00 / 1,000 results

Rating

0.0

(0)

Developer

LIAICHI MUSTAPHA

LIAICHI MUSTAPHA

Maintained by Community

Actor stats

0

Bookmarked

9

Total users

5

Monthly active users

12 days ago

Last modified

Categories

Security

Limited permissions

Share

Collect active Keejob job listings in Tunisia and nearby markets as a structured dataset. The Actor reads Keejob's public full listings index and, when requested, each listing's public Markdown detail page. It does not access candidate profiles, applications, or recruiter-only pages.

Features

  • Retrieves the active-job index in one request, then fetches up to maxItems job detail pages.
  • Extracts employer, location, governorate, country, contract type, work mode, salary, education, experience, languages, occupations, dates, and description when present.
  • Keeps the source listing and Markdown URLs with every row for verification.
  • Saves an index-only row marked failed if a selected detail page cannot be read after retries.
  • Stores collection statistics in the default key-value store under STATS.

Use cases

  • Compare visible hiring activity by Tunisian governorate or employer.
  • Study advertised contract types, experience requirements, and salary disclosure.
  • Build a repeatable Keejob snapshot for a Tunisia employment report.

This is a snapshot of Keejob's active listings, not a census of all vacancies or workers in Tunisia. Some Keejob listings are outside Tunisia; filter country when reporting on the Tunisian market. A missing salary is not zero salary. Posting dates can change when an ad is updated, so the Actor preserves both the index and detail-page dates.

Input

{
"maxItems": 100,
"includeDetails": true,
"maxConcurrency": 1
}
FieldDefaultMeaning
maxItems100Maximum unique active jobs to save, up to 2,000.
includeDetailstrueFetch each job's Markdown detail page. Set false for a quick index-only snapshot.
maxConcurrency1Detail fetches in parallel, up to 3. Requests to Keejob are also paced.

For a full current snapshot, set maxItems above the active listing count shown in the index. The available count changes over time.

Output

One dataset item per job. Optional fields are null or empty arrays when Keejob does not provide them. The detail_status is complete, index_only, or failed.

{
"job_id": "246682",
"job_title": "Customer Experience Specialist (BO) - German",
"company_name": "GEVEKOM",
"company_url": "https://www.keejob.com/offres-emploi/entreprises/35467/gevekom-customer-services-tunisia-suarl/",
"location": "Tunis, Tunisie",
"governorate": "Tunis",
"country": "Tunisie",
"contract_types": ["CDI"],
"work_mode": "Sur site",
"salary_raw": "1700 - 2400 TND Mois",
"salary_min_tnd": 1700,
"salary_max_tnd": 2400,
"salary_period": "month",
"experience_level": "Moins d'un an",
"education_level": "Formations professionnelles",
"languages": ["Anglais", "Allemand"],
"occupations": ["Tele-Conseiller"],
"posted_date": "2026-10-02",
"index_posted_date": "2026-10-02",
"expiration_date": "2026-10-11",
"listing_status": "Offre active",
"description_markdown": "About Us\n\nWe are gevekom...",
"detail_status": "complete",
"job_url": "https://www.keejob.com/offres-emploi/246682/customer-experience-specialist-bo-german/",
"source_detail_url": "https://www.keejob.com/offres-emploi/246682/customer-experience-specialist-bo-german.md",
"source_index_url": "https://www.keejob.com/llms-full.txt",
"scraped_at": "2026-10-02T14:31:15.000Z"
}

The example shows the output shape; text and dates in live listings can change.

Local development

npm ci
npm test
apify run -i '{"maxItems":3,"includeDetails":true,"maxConcurrency":1}'

Local results appear in storage/datasets/default/; run metrics appear in storage/key_value_stores/default/STATS.json.

FAQ

Does it collect every job in Tunisia? No. It collects the active listings Keejob exposes at the time of the run, subject to the input limit.

Why are some fields empty? Employers may omit salary, work mode, or other details. The Actor does not infer missing values from job-description prose.

What happens if a detail page disappears? The Actor saves the index record with detail_status: "failed" and reports the failure count in STATS.

Can I compare snapshots? Yes. Run it on different dates and deduplicate by job_id; retain scraped_at and index_posted_date to keep collection timing explicit.