YubHub: the job data platform behind the free feeds
I launched fluidjobs.com, a motorsport jobs site, and it had the problem every new job board has: no listings means no visitors, and no visitors means no advertisers. YubHub is the platform I built to fix that. It reads an employer's own careers page, turns the listings into clean, structured job data and publishes that data. It is live at yubhub.co, and that is where its free job feeds come from.
Why backfill feeds don't fill a niche board
Backfill feeds exist for exactly this: you plug one in and it fills your empty pages with other people's listings. The trouble is that a general feed has no idea what your board is for. A motorsport board needs motorsport jobs, and a feed built for everybody can't tell which of its listings belong on yours.
So, YubHub starts from the other end. You pick the employer, and it reads that employer's own careers page. That page is where the mess is. Most employers post through an applicant-tracking system (ATS, the software that runs a company's job listings), and each system lays out its pages differently. There are 18 of them that YubHub knows how to recognise.
How YubHub reads a careers page
YubHub runs as a chain of Cloudflare Workers handing work to each other through Cloudflare Queues: discovery, then scraping, then enrichment, then the feed generator. Each queue has its own dead-letter queue, which is where a failed item is parked to be looked at later instead of stopping the run.
Discovery takes the cheapest route first. YubHub works out which ATS a careers page runs on, from the URL and then from markers in the page's HTML. If that ATS has a public API, discovery uses that. If not, it reads the site's sitemap and filters it with a URL pattern learned from one example job URL. Only when the sitemap gives nothing does it pay for a Firecrawl crawl. For most sites, scraping goes through Firecrawl first, with a direct fetch of the raw page for the sites that block Firecrawl.
Llama 4 Scout, running on Cloudflare's Workers AI, then reads each listing and returns the title, the company, a postal address, a salary with its currency and period, required and preferred skills, a category, an industry, an experience level and a work arrangement. Company logos are cached in Cloudflare R2. Every enriched job lands in one Cloudflare D1 database, and the feed generator builds the feeds from there.
The free feeds come from YubHub
YubHub publishes the free feeds from feeds.yubhub.co. There is a feed per facet - one slice of the jobs, such as a category, an industry, a skill, a job title, an employer, a city or a country. Each comes in three formats: JBoard XML for importing into a job board, jobs.json where every entry is a schema.org JobPosting, and RSS for job alerts. A feed holds up to the 100 most recently enriched jobs. There is no API key, no signup and no card. YubHub's free job feeds page lists the category, industry and top skill feeds.
Every free feed carries YubHub's name, and the licence line inside each JSON feed reads 'Free to redistribute with attribution: "Data by YubHub (https://yubhub.co)"'. Every job description in the free XML feeds ends with a credit line linking to yubhub.co, and anyone who displays the jobs has to keep that credit. YubHub, a Houtini company, is the source of the job data and the free feeds, so the credit and the links go to yubhub.co. For a private, unbranded feed, sign up and point YubHub at any employer's careers page. The paid plans start at £9.99 a month, and the £99.99 Pro Publisher plan adds the REST API and an MCP server.
Built for agents as well as people
yubhub.co uses WebMCP, which is a way for a website to hand an AI agent running in the browser real tools to call. There are ten: search jobs, browse a facet, open a listing, build a shortlist and a handful of others. All of them are removed when the visitor leaves the page. I have written up how I put WebMCP on YubHub in Implementing WebMCP on a Recruitment Website.
For agents working outside the browser, YubHub publishes an OpenAPI spec, an MCP manifest for the @houtini/yubhub MCP server, four agent-skill files, an llms.txt and a markdown twin of every job. The public stats endpoints under api.yubhub.co need no key.
Where it stands
As of 25 October 2026, YubHub holds 38,648 live jobs and has 1,360 employers indexed, with job data running back to 8 December 2025. An hourly scheduler checks which feeds are due, and no feed is scheduled to refresh more often than daily. The current figures are on yubhub.co.
Cloudflare Queues pipeline - discovery (ATS API, else sitemap, else Firecrawl) > scrape (Firecrawl, direct-fetch fallback) > Workers AI enrichment (Llama 4 Scout) > Cloudflare D1 > free XML, JSON and RSS facet feeds at feeds.yubhub.co, plus WebMCP tools and .well-known manifests for agents.