Emploi-Territorial Jobs Scraper (French Public Sector) avatar

Emploi-Territorial Jobs Scraper (French Public Sector)

Pricing

from $2.00 / 1,000 job postings

Go to Apify Store
Emploi-Territorial Jobs Scraper (French Public Sector)

Emploi-Territorial Jobs Scraper (French Public Sector)

Extract French local government job postings from emploi-territorial.fr (about 27,000 live offers): employer, department, category, grade, deadline, missions, profile and application link.

Pricing

from $2.00 / 1,000 job postings

Rating

0.0

(0)

Developer

Vivien MORVAN

Vivien MORVAN

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

3 days ago

Last modified

Categories

Share

Scrape every job posting from emploi-territorial.fr, the official job board of French local government (cities, departments, regions), around 27,000 live postings, as clean structured data: employer, department, grade, deadline and application link.

What you can do with it

  • Monitor public sector hiring: new postings by department, category or occupation, every day.
  • Feed a job alert, a job board or a newsletter: run it daily with "Published within 1 day".
  • Find which local authorities are hiring: employers, grades and job families in a given area.
  • Prepare candidates and training programs: missions and expected profiles for each grade.

Input

FieldWhat it does
KeywordsWords that must all appear in the title, employer, grade or sector. Accents and case are ignored.
DepartmentsDepartment names, for example Gironde. Empty means all of France.
Civil service categoriesA, B and/or C. Empty means all.
Published within (days)Keep only recent postings. Use 1 for daily monitoring.
Maximum number of postingsThe run stops once this many postings are saved.
Include full detailsOpens each posting to add missions, profile, workplace, start date and application link.

Output

One record per posting:

{
"id": "O062261001001711",
"url": "https://www.emploi-territorial.fr/offre/o062261001001711-assistant-communication-polyvalent",
"title": "assistant de communication polyvalent",
"employer": "MAIRIE DE CALAIS",
"department": "Pas-de-Calais",
"category": "C",
"sector": "Administrative",
"employmentType": "Emploi permanent",
"grade": "Adjoint administratif",
"publishedAt": "2026-10-02",
"applicationDeadline": "2026-11-30",
"workplace": "20, Quai de la Gendarmerie, Calais (Pas-de-Calais (62))",
"startDate": "2026-12-01",
"jobType": "Emploi permanent - vacance d'emploi",
"jobFamily": "Communication > Techniques et outils de communication",
"occupations": "Animateur ou animatrice de réseaux sociaux et de communautés numériques",
"workingTime": "Temps complet",
"summary": "assistant de communication polyvalent",
"missions": "…",
"profile": "…",
"applyUrl": "https://…"
}

Export the dataset as JSON, CSV or Excel, or read it through the Apify API.

Good to know

  • Postings come newest first, so a date-limited run stops early and stays cheap.
  • Keyword, department and category filters are applied while reading the listings: you only pay for postings that match.
  • Turn off "Include full details" for the fastest and cheapest runs.
  • Contact names and phone numbers of civil servants are never exported.

Pricing

Pay per result: $2.00 per 1,000 postings, plus $0.00005 per run start. For example, 100 postings cost about $0.20. You only pay for the postings you receive, and platform usage is included in that price.

Run it from your code

JavaScript:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('bibian/emploi-territorial-jobs-scraper').call({
keywords: 'informatique',
publishedWithinDays: 14,
maxItems: 50,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();

Python:

from apify_client import ApifyClient
client = ApifyClient(token="<APIFY_TOKEN>")
run = client.actor("bibian/emploi-territorial-jobs-scraper").call(run_input={
"keywords": "informatique",
"publishedWithinDays": 14,
"maxItems": 50
})
items = client.dataset(run["defaultDatasetId"]).list_items().items

Frequently asked questions

Do I need an account, cookies or a proxy for Emploi-Territorial? No. The actor reads publicly visible pages only.

How do I get only the new postings every day? Save a task, set its publication date filter to the shortest window, and schedule it daily with Apify Schedules. Deduplicate on the id field if you keep your own copy.

Which formats can I export? JSON, CSV, Excel, XML, HTML table or RSS, from the dataset page or through the API.

Can I connect it to Make, Zapier, n8n or Google Sheets? Yes, through Apify integrations and webhooks.

Is it legal to scrape? The actor collects publicly visible postings and respects the robots.txt rules of the site. How you use the data is your responsibility: check the site's terms and the laws that apply to you, for example the GDPR.

Something does not work? Open an issue in the Issues tab. Every public actor is test-run daily and the broken ones are repaired.

Did this save you time? A short review on the Store page helps other people find the actor, and tells me what to improve next.

More job scrapers by the same author