Challenge
Our client runs a job board for temporary and blue-collar workers in France and Spain, in logistics, warehousing and the food industry. Most of its users are on mobile phones.
The site ran on a ready-made job-board theme that assumed one country and one language. The business needed English, French and Spanish, with each country showing only its own jobs, employers and cities. The board also needed a steady supply of real vacancies to be useful on day one.
Sign-up was long, and the theme's pop-ups clashed with custom changes. A full-page cache served the wrong country to visitors. An audit found pages that hung, missing translations and mis-filed jobs, and the theme could not be edited directly.
Approach
- 01
Audit. We ran automated Playwright tests across all four country–language combinations, plus an audit of jobs, categories and cities. This gave us a fixed list of broken pages, missing translations and mis-filed jobs.
- 02
One custom plugin. All changes went into a single custom WordPress plugin, so the theme stayed untouched and upgradable.
- 03
Country and language model. We combined Polylang (language) with a country setting that works under full-page caching. Jobs, companies, cities, maps and SEO titles now follow the visitor's country.
- 04
Sign-up. We rebuilt sign-in and sign-up as one accessible pop-up. Sign-up went down to two steps, social login sets the right account type, and all text is translated.
- 05
Job supply. A Cloudflare Worker runs every morning. It pulls matching vacancies from Adzuna (France and Spain) and France Travail, filters them, and sends them to a secure WordPress endpoint with de-duplication and daily caps.
- 06
Content and translation. An n8n workflow uses DeepSeek to write articles, Gemini Imagen to create images, and SEOPress and Polylang to publish them. A DeepL tool translated the existing site into Spanish.
- 07
Search and AI readiness. We fixed canonical tags, hreflang, schema and robots, and published machine-readable files (MCP server card, agent skills, OpenAPI) so AI agents can use the site.
Outcome
The business now runs one platform for two countries and three languages. Visitors see the jobs, companies and cities for their own country, in their own language.
The site no longer depends on someone posting vacancies by hand. A scheduled job brings in fresh vacancies from three sources every day, without duplicates. Blog content is written, illustrated, translated and published automatically, and the workflow uses only real site statistics.
Candidates and employers can sign up in two steps, on any page, without leaving it. Search engines now get correct language signals, and AI assistants can find and read the site's jobs.
What we delivered
- Site and taxonomy audit: automated browser tests across 4 country–language combinations, plus reports of jobs, categories and cities
- Custom platform plugin: country and language model with a combined switcher, and country filtering of jobs, companies, cities, maps, categories and pricing
- Accessible sign-in and sign-up pop-up: 2-step sign-up, WCAG AA colours, keyboard focus handling, social login role assignment, French and Spanish text
- Employer onboarding and identity-check queue; free starter packages for candidates and employers
- Redesigned WooCommerce checkout and branded order emails
- Help centre, job-alerts pop-up, salary-range filter, cookie preferences and Cloudflare Turnstile spam protection
- Speed fixes: hero image preload, lazy loading, deferred analytics and tracking pixels
- AI agent readiness: MCP server card, 4 agent skills, OpenAPI spec, API catalogue, OAuth metadata, WebMCP and a Markdown homepage for agents
- Job-ingest plugin: secure REST endpoints, permanent de-duplication and daily caps per source
- Cloudflare Worker for the daily job import from Adzuna France, Adzuna Spain and France Travail
- n8n SEO article auto-publisher: brand brief, DeepSeek writing, Gemini Imagen images, SEO metadata, translation links, alerts and a guardrail against invented statistics
- DeepL translation tool: Spanish version of pages, posts, terms, SEO metadata and page-builder text
- SEO fixes: canonical, hreflang, schema, H1, robots and llms.txt
- Cache patch so first-time visitors get the right country
- Handover document with deployment steps and known issues
Tools and technology
- WordPress, Elementor
- WooCommerce, WooCommerce Subscriptions, Stripe
- Polylang Pro, Loco Translate, DeepL API
- SEOPress Pro, Relevanssi
- Cloudflare Workers, Cloudflare Turnstile
- Adzuna API, France Travail API
- n8n, DeepSeek, Google Gemini Imagen
- Mailchimp, HubSpot
- Playwright, PHP, JavaScript
Timeline
- Jun 2026Set-up and audit: local copy of the site, browser and taxonomy audits
- Jun–Jul 2026Platform build: country and language model, sign-up pop-up, checkout, onboarding
- Jul 2026Automation: daily job import, DeepL translation, n8n content workflow
- Jul–Aug 2026Search and AI readiness: SEO fixes, agent files, speed work
- Aug 2026Clean-up: re-filing mis-mapped jobs, handover
