
Algolia job data feed
Instant, typo-tolerant job search in a few keystrokes.
Algolia is the shortest path from a job feed to a search box that feels instant — typo tolerance, faceting, and geo-search come with the index rather than having to be built. Jobo creates the index on the first push and uses the Jobo job ID as the Algolia objectID, so the 15-minute incremental sync replaces records in place instead of piling up duplicates. It is a document destination, so a pipeline can reshape or trim each record before it is sent, which matters more here than elsewhere because Algolia enforces a per-record size limit.
- Sync
- Incremental, every 15 min
- Deduplication
- Upsert on job ID
- Pipelines
- Supported
- Credentials
- AES-256 at rest
Connection configuration
The fields Jobo collects to reach your Algolia instance.
application_idstringrequiredFound in your Algolia dashboard under API Keys.
api_keystringrequiredAdmin API Key with write access. Encrypted at rest.
index_namestringTarget index name. Defaults to "jobs". Auto-created.
{
"application_id": "YourApplicationID",
"api_key": "••••••••",
"index_name": "jobs"
}How to sync jobs to Algolia
One-time setup. After this, the feed maintains itself.
- 1
Copy your Application ID and an Admin API Key
Both live in the Algolia dashboard under Settings → API Keys. The Application ID is the short alphanumeric string at the top. For api_key take the Admin API Key, or a custom key carrying addObject, deleteObject, settings, and listIndexes on the target index. The Search-Only key cannot write and is by far the most common setup mistake. Whichever you use, it is encrypted at rest with AES-256.
- 2
Point the feed at a dedicated index
index_name defaults to jobs and the index is created on the first push. Force resync deletes and recreates it, so give the feed an index of its own rather than one your application also writes into.
- 3
Tune searchable attributes and facets
Jobo pushes the records; Algolia decides how they are searched. Once the first sync lands, set searchable attributes, faceting, and custom ranking on the index. Keep _jobo_synced_at filterable — the feed uses that stamp to find and delete listings that have gone stale.
javascriptindex.setSettings({ searchableAttributes: ["title", "company", "description"], attributesForFaceting: ["searchable(company)", "filterOnly(_jobo_synced_at)"], customRanking: ["desc(date_posted)"], }) - 4
Query it from your app
Records are ordinary Algolia objects keyed on objectID, so any Algolia client or InstantSearch widget works against them unchanged — including aroundLatLng geo-search, provided you pushed coordinates.
javascriptconst { hits } = await index.search('backend engineer', { filters: 'employment_type:full_time', aroundLatLng: '52.37,4.89', aroundRadius: 25000, })
Common issues
What actually goes wrong when connecting Algolia, and the fix.
Every push fails with a 'method not allowed with this API key' error.
You are using the Search-Only API Key. Swap in the Admin API Key, or a custom key with addObject, deleteObject, settings, and listIndexes on the target index. This is the single most common Algolia setup mistake.
Some jobs never appear in the index.
Algolia rejects any record over its per-record size limit, and a long job description is almost always the culprit. Attach a pipeline that truncates or drops description so every record stays under the limit for your plan.
The record count keeps climbing past the number of live jobs.
objectID is the Jobo job ID, so pushes are idempotent and cannot duplicate on their own. Extra records mean something else writes into the same index — give the feed its own.
Index settings disappeared after a force resync.
Force resync deletes and recreates the index, which takes searchable attributes, faceting, and custom ranking with it. Keep those settings in a script you can re-run rather than clicking them back in the dashboard.
Best practices
- Use an Admin API Key — the Search-Only key cannot write and will fail every push.
- Give the feed a dedicated index; force resync deletes and recreates it.
- Re-apply index settings after a force resync — they are dropped with the index.
- Trim long descriptions with a pipeline to stay under Algolia's record size limit.
- Keep _jobo_synced_at filterable so stale-record cleanup can find what to remove.
Other destinations
Start syncing jobs to Algolia
Connect the destination, pick your filters, and let the feed run.