Back to home
Outbound Feed

Push job data directly to your infrastructure.

A continuous pipeline that syncs job listings to your databases and search engines every 15 minutes—with incremental updates, deduplication, and automatic retries.

Pipeline Overview Live
Sources
AshbyBambooHRGreenhouseiCIMSLeverWorkday+39
Jobo Feed Engine
Sync every 15 min · Upsert · Retry
Your infrastructure
PostgreSQLSupabaseBoltMongoDBElasticsearchAlgoliaMeilisearch
150+ATS sources
7destinations
10Kper sync

Three steps to continuous sync.

Choose a destination, configure connection credentials and data filters, activate the feed—and Jobo handles scheduling, retries, and deduplication for you.

01

Choose a destination.

Pick where you want job data delivered—Supabase, Bolt, PostgreSQL, MongoDB, Elasticsearch, Algolia, or Meilisearch.

Databases, search engines, and more
02

Configure & save.

Enter connection credentials and optional data filters. Your configuration is saved and can be edited anytime.

Filter by location, source, remote, date
03

Activate & sync.

Activate the feed to start pushing data. Jobo handles scheduling, retries, and deduplication—every 15 minutes, automatically.

Incremental updates, zero maintenance

Seven destinations. Zero maintenance.

Push to databases and search engines used by thousands of engineering teams. Credentials are encrypted with AES-256 at rest—never stored in plain text.

Don't see your destination? Request one

Configuration

Connect in minutes.

Each destination is configured through the dashboard with validated fields. Credentials are encrypted before storage—never visible in logs.

PostgreSQL fields

hoststringrequired

Database server hostname or IP address.

portnumberrequired

Connection port. Defaults to 5432.

databasestringrequired

Target database name.

schemastring

Target schema. Defaults to "public".

tablestring

Target table, created automatically. Defaults to "jobs".

usernamestringrequired

Database user with write access.

passwordstringrequired

User password. Encrypted at rest with AES-256.

ssl_modeselect

SSL mode: disable, allow, prefer, require, verify-ca, verify-full.

delete_expired_jobsboolean

Delete expired jobs (default). Disable to keep them with an expired_at timestamp.

PostgreSQL config
{
  "host": "db.example.com",
  "port": 5432,
  "database": "jobs_db",
  "schema": "public",
  "table": "jobs",
  "username": "jobo_sync",
  "password": "••••••••",
  "ssl_mode": "require",
  "delete_expired_jobs": true
}
Sync Engine

Built for reliability.

The sync engine runs on a 15-minute interval with incremental updates, automatic retries, and deduplication—so your data stays fresh without intervention.

Incremental sync

Each cycle only processes new and updated records. No full re-syncs unless you switch destinations or activate fresh.

Deduplication

Jobs are deduplicated by unique ID. Existing records are updated in place (upsert)—no duplicates, no stale data.

Automatic retries

Failed syncs retry with exponential backoff—1 min, 5 min, 15 min, 1 hour. You're notified of persistent failures.

Full backfill

Activate or switch destinations and a full backfill runs. May take several minutes depending on data volume.

Expiration handling

Expired jobs aren't removed automatically. Use the Expired Jobs API to detect stale records and clean up.

Schema mapping

Every destination gets the same 22-field schema. Records map automatically to tables, documents, or search indices.

Data Filters

Push only the data you need.

Each configuration includes optional filters so only relevant jobs are synced. Narrow by location, ATS source, remote status, or posting date.

Filter parameters

locationsobject[]

Filter by location. Each object supports country, region, and city. Multiple locations use OR matching.

sourcesstring[]

Filter by ATS source (e.g., "greenhouse", "lever"). All sources included by default.

isRemoteboolean

When enabled, only remote positions are synced.

postedAfterdate

Only sync jobs posted after this date (ISO 8601).

Example filters
{
  "locations": [
    { "country": "US", "region": "California" },
    { "country": "GB", "city": "London" }
  ],
  "sources": ["greenhouse", "lever", "workday"],
  "isRemote": true,
  "postedAfter": "2025-01-01"
}
Data Schema

22 fields per record.

Every job record pushed to your destination follows a consistent schema—structured for search, analytics, and integration with your existing systems.

Identity

idstring
titlestring
company_namestring
company_idstring

Content

descriptionstring
listing_urlstring
apply_urlstring

Location

citystring
statestring
countrystring
is_remoteboolean

Compensation

salary_minnumber
salary_maxnumber
salary_currencystring
salary_periodstring

Classification

employment_typestring
workplace_typestring
experience_levelstring
sourcestring

Timestamps

date_posteddatetime
created_atdatetime
updated_atdatetime
Sample record
{
  "id": "abc123-def456",
  "title": "Senior Frontend Engineer",
  "company_name": "Acme Corp",
  "company_id": "acme-corp",
  "description": "We're looking for a Senior Frontend Engineer...",
  "listing_url": "https://boards.greenhouse.io/acme/jobs/123",
  "apply_url": "https://boards.greenhouse.io/acme/jobs/123#app",
  "city": "San Francisco",
  "state": "California",
  "country": "US",
  "salary_min": 150000,
  "salary_max": 200000,
  "salary_currency": "USD",
  "salary_period": "Year",
  "employment_type": "Full-time",
  "workplace_type": "Hybrid",
  "experience_level": "Senior",
  "is_remote": false,
  "source": "greenhouse",
  "date_posted": "2025-02-10T08:00:00Z",
  "created_at": "2025-02-10T09:15:00Z",
  "updated_at": "2025-02-12T14:30:00Z"
}
Security

Enterprise-grade protection.

Credentials are encrypted before storage and data transfers use TLS 1.3. Your connection details never appear in logs or error reports.

AES-256 at rest

All credentials are encrypted with AES-256 before storage. Never stored in plain text or included in logs.

TLS 1.3 in transit

All data transfers between Jobo and your destination use TLS 1.3 with the strongest available cipher suites.

Minimal permissions

We recommend a dedicated user with write-only access to the target table, index, or collection.

Limits

Limits & sync behavior.

Designed for high-volume production use with generous defaults and automatic retry handling.

Active feeds per account2
Saved configurationsUnlimited
Sync frequencyEvery 15 minutes
Max batch size10,000 records per sync
Retry attempts4 (exponential backoff)
Supported destinations5 (more coming)

150+ ATS sources.

Filter your outbound feed by any combination of applicant tracking systems. All sources are included by default.

Access PeopleHR / rEcruitAccess PeopleHR / rEcruit
AcquireTMAcquireTM
ADP MyJobsADP MyJobs
ADP Workforce NowADP Workforce Now
AllHiresAllHires
Amazon JobsAmazon Jobs
AmrisAmris
Apple JobsApple Jobs
ApplicantPoolApplicantPool
ApplicantProApplicantPro
ApplicantStackApplicantStack
AppliTrack (Frontline Education)AppliTrack (Frontline Education)
ApploiApploi
AppOneAppOne
AppOne RSSAppOne RSS
AshbyAshby
AvatureAvature
BambooHRBambooHR
BetterteamBetterteam
Breezy HRBreezy HR
BrightMoveBrightMove
Cadient TalentCadient Talent
CareerPlugCareerPlug
CareerpuckCareerpuck
Cezanne Recruitment (formerly Occupop)Cezanne Recruitment (formerly Occupop)
CGA Recruiting AppCGA Recruiting App
Ciphr iRecruitCiphr iRecruit
ClearCompany HRMDirectClearCompany HRMDirect
ComeetComeet
Connexys RecruitmentConnexys Recruitment
Cornerstone OnDemand (CSOD)Cornerstone OnDemand (CSOD)
Cornerstone Saba CloudCornerstone Saba Cloud
CVMailCVMail
DayforceDayforce
DeelDeel
DirectEmployers / JobSyncDirectEmployers / JobSync
DoverDover
EDJOINEDJOIN
EightfoldEightfold
Engage ATSEngage ATS
EployEploy
eRecruiteRecruit
ExactHireExactHire
FactorialFactorial
FCMS Candidate PortalFCMS Candidate Portal
FountainFountain
FreshteamFreshteam
Fusion recruitment platformFusion recruitment platform
GemGem
GetHiredGetHired
GoHireGoHire
Google CareersGoogle Careers
GovernmentJobs (NeoGov)GovernmentJobs (NeoGov)
GR8 PeopleGR8 People
GreenhouseGreenhouse
GustoGusto
Harbour ATSHarbour ATS
HarriHarri
HealthBoxHRHealthBoxHR
Healthcare Talent SourceHealthcare Talent Source
HealthcareSource HiringHealthcareSource Hiring
HealthcareSource Performance ManagerHealthcareSource Performance Manager
HiBobHiBob
HigherMeHigherMe
HireBridgeHireBridge
HireClickHireClick
Hireful (SiteHub)Hireful (SiteHub)
HireHiveHireHive
HireologyHireology
HireTrueHireTrue
HiringThingHiringThing
HomerunHomerun
HR WORKSHR WORKS
HrSmartHrSmart
IBM Kenexa BrassRingIBM Kenexa BrassRing
iCIMSiCIMS
IdealTraitsIdealTraits
Infor HCM Candidate ExperienceInfor HCM Candidate Experience
Interfolio Faculty SearchInterfolio Faculty Search
iRecruit USiRecruit US
iSolvediSolved
JazzHRJazzHR
Jobaline / JobalignJobaline / Jobalign
JobApsJobAps
JoblinkApplyJoblinkApply
Jobscience / Talent RoverJobscience / Talent Rover
JobScoreJobScore
JobsoidJobsoid
JobtrainJobtrain
JobviteJobvite
Join.comJoin.com
Kallidus Recruit (Advorto)Kallidus Recruit (Advorto)
Kronos Workforce ReadyKronos Workforce Ready
KulaKula
LeverLever
Lumesse TalentLinkLumesse TalentLink
ManatalManatal
MHR iTrentMHR iTrent
MySmartHire (ApplicantPro)MySmartHire (ApplicantPro)
Networx / IRIS RecruitmentNetworx / IRIS Recruitment
NimbleNimble
OCCYOCCY
Oleeo / WCNOleeo / WCN
oneCruiter / WorkbusteroneCruiter / Workbuster
OnShift EmployOnShift Employ
Oracle CloudOracle Cloud
Oracle PeopleSoft Candidate GatewayOracle PeopleSoft Candidate Gateway
Oracle TaleoOracle Taleo
Oracle Taleo Business EditionOracle Taleo Business Edition
Oracle Taleo Social Sourcing (SelectMinds)Oracle Taleo Social Sourcing (SelectMinds)
OurCareerPages (Arcoro/BirdDogHR)OurCareerPages (Arcoro/BirdDogHR)
PageUpPageUp
PaycomPaycom
PaycorPaycor
PaylocityPaylocity
PeopleAdminPeopleAdmin
PeopleBankPeopleBank
PeopleScout SpringboardPeopleScout Springboard
Pereless ATS OnDemandPereless ATS OnDemand
PersonioPersonio
Phenom (Phenompeople)Phenom (Phenompeople)
PinpointPinpoint
PolymerPolymer
PostingPandaPostingPanda
PowerSchool Applicant Tracking EnterprisePowerSchool Applicant Tracking Enterprise
PowerSchool TalentEd HirePowerSchool TalentEd Hire
Radancy / TalentBrewRadancy / TalentBrew
Reach ATSReach ATS
RecootyRecooty
RecruiteeRecruitee
Red Rover K12Red Rover K12
RipplingRippling
Rival (SilkRoad)Rival (SilkRoad)
Salesforce Sites fRecruitSalesforce Sites fRecruit
SAP SuccessFactorsSAP SuccessFactors
SAP SuccessFactors Recruiting MarketingSAP SuccessFactors Recruiting Marketing
SchoolSpringSchoolSpring
SeeMeHiredSeeMeHired
SilkRoad OpenHireSilkRoad OpenHire
Skyward FastTrackSkyward FastTrack
Skyward Qmlativ Applicant TrackingSkyward Qmlativ Applicant Tracking
SmartRecruitersSmartRecruiters
TalentLyftTalentLyft
TalentNestTalentNest
TalentReefTalentReef
TalentTech PortalsTalentTech Portals
TalNet (Oleeo)TalNet (Oleeo)
TeamtailorTeamtailor
TeamWork OnlineTeamWork Online
Trakstar HireTrakstar Hire
TribepadTribepad
TriNet HireTriNet Hire
Tyler Munis Self ServiceTyler Munis Self Service
Tyler PorticoTyler Portico
UKG Pro Workforce Ready (SaaShr)UKG Pro Workforce Ready (SaaShr)
UKG RapidHire (formerly Chattr)UKG RapidHire (formerly Chattr)
UltiPro (UKG Pro)UltiPro (UKG Pro)
USAJOBSUSAJOBS
ViRecruit / viDesktopViRecruit / viDesktop
VIVAHR / AvaHRVIVAHR / AvaHR
WeRecruitWeRecruit
WizehireWizehire
WorkableWorkable
WorkdayWorkday
WorkstreamWorkstream
Zoho RecruitZoho Recruit

Frequently asked.

Common questions about the outbound feed, destination configuration, and sync behavior.

Can I have multiple active feeds?

Yes. You can keep up to two feeds active at the same time. Each feed has its own destination settings, filters, pipeline, and delivery history.

What happens when both active feed slots are in use?

A third saved configuration cannot be activated until you remove one of the active feeds. Removing a feed stops future delivery but does not delete data already written to that destination.

Are expired jobs removed from my destination?

No. The outbound feed only pushes new and updated jobs. To handle expirations, use the Expired Jobs API endpoint to get recently expired job IDs and remove them from your destination.

How do I test my connection before activating?

When you save a configuration, the connection is validated automatically. If it fails, you'll see an error with details. You can save without activating to test later.

What's the difference between Outbound Feed and Export?

Export is a one-time download in CSV, JSON, or Parquet. Outbound Feed is a continuous pipeline that keeps your destination in sync every 15 minutes. Use Export for ad-hoc analysis; use Outbound Feed for production integrations.

Do I need a subscription?

No. Outbound Feed works pay as you go at $3.00 per 1,000 jobs written. A Job Search plan covers those jobs from its included jobs first; beyond them, the pay-as-you-go rate applies. The Unlimited plan removes the cap on outbound delivery. You can configure, save, and test destinations before choosing how to pay.

Ready to pipe your job data?

Configure your first destination in minutes. No code, no cron jobs, no maintenance.