Early access
US Jobs Feed
Every new US job listed on LinkedIn, with the full job posting, in your systems within minutes of being listed. Built for job boards, job-search apps and hiring-data teams. Flat monthly price, no per-job fees.
The feed is in early access. The collection runs today, and a sample of 100 real jobs with full details is available now. Customer delivery (files and API) goes live about two weeks after you sign up. In those two weeks we set up your plan's delivery with you, including hourly files, the webhook, open or closed status, parsed pay and your archive.
What's in each job
One row per job, deduplicated by LinkedIn job ID, so a job shows up once. Rows follow a versioned schema, linkedin-us-jobs/1. JSONL carries every field; CSV carries every field except description_html.
| Field | What it holds |
|---|---|
job_id, url | LinkedIn job ID and the public job link |
title, company, company_url | As listed |
location, state | Location as listed. state is the two-letter code when the location names one state (Austin, TX, Texas, United States, Greater Houston); otherwise it repeats the location, such as United States |
posted_date | The date LinkedIn shows for the job |
listed_at_approx | When LinkedIn listed the job, to the minute for new jobs |
first_seen_at | When the job entered our feed (UTC) |
description_text, description_html | The full job posting, including pay when the employer states it |
seniority, employment_type, job_function, industries | LinkedIn's job criteria from the job page |
applicants_text, applicants_count | The applicant count LinkedIn shows |
details_status | ok when the job page was read; missing when the job was taken down first or its page couldn't be read (the job-page fields are then empty) |
salary_card, badge | Pay shown on the listing card, which is rare (pay usually sits in the description); badge is reserved and empty for now |
For Live and Scale plans, we also set up an open or closed status for each job, re-checked daily, as part of your delivery.
One row in the feed format, description shortened
{
"job_id": "4472402576",
"url": "https://www.linkedin.com/jobs/view/full-stack-developer-python-react-js-at-opendatajobs-4472402576",
"title": "Full Stack Developer (Python, React.js)",
"company": "OPENDataJobs",
"company_url": "https://www.linkedin.com/company/opendatajobs",
"location": "Washington, DC",
"state": "DC",
"posted_date": "2026-09-26",
"listed_at_approx": "2026-09-26T19:47:28+00:00",
"first_seen_at": "2026-09-26T19:49:28+00:00",
"badge": null,
"salary_card": null,
"seniority": "Associate",
"employment_type": "Full-time",
"job_function": "Engineering",
"industries": "IT Services and IT Consulting",
"applicants_text": "Be among the first 25 applicants",
"applicants_count": 25,
"description_text": "About Peregrine Peregrine Advisors is a rapidly growing AI and data innovation hub ... This is a full-time W-2 position with a salary of $120,000 to $140,000 per year. ...",
"description_html": "<div class=\"show-more-less-html__markup ...\">...</div>",
"details_status": "ok"
}
Freshness and coverage
The collector reads every new US listing every one to five minutes, more often when more jobs are being listed. Then it reads each job's page (description, criteria, applicants) for your plan. The API hands out a job once its page is read. If a page can't be read within two hours, the job is delivered anyway, marked details_status: missing.
What we measured on the production feed, on the evening of Saturday 26 September 2026 (US time):
- Coverage: a separate search, run independently of the feed, found 152 jobs listed in the previous 30 minutes in Texas, California, New York and Florida. The feed already held all 152. With a sample of that size, the 95% confidence interval for coverage is 97.5% to 100%.
- Speed: the median job was stored in the feed 2 to 3 minutes after it was listed, and 90% within 5 minutes.
- Volume: about 1,000 new US jobs an hour.
One check is one check, so we'll keep measuring: once your delivery starts, we check coverage every day against an independent sample and send you the number every week.
Delivery
The pull API and the daily files are built. Hourly files and the webhook are set up with you after you sign up.
| Option | How it works |
|---|---|
| Pull API | GET /feed/linkedin/jobs?since= returns the jobs added since your last cursor, up to 1,000 a call, with a next_cursor for the next call. Your key goes in the Authorization header. Your plan can narrow the feed to states, keywords in the title or company name, or title terms. |
| Daily files | One gzipped JSONL and one gzipped CSV file per UTC day, each listed with its row count and SHA-256 checksum at GET /feed/linkedin/exports. A day's files are ready within two and a half hours after midnight UTC and kept for 14 days. |
| Hourly files | JSONL and CSV, gzipped, one file per hour, pushed to your S3 or Google Cloud Storage bucket. |
| Webhook | We POST batches of new jobs to your endpoint every few minutes (Scale plan). |
Plans
Every plan includes all new US jobs with full job pages and no per-job caps. Prices are per month, billed monthly, and you can cancel any time. Pay a year up front and get two months free.
| Hourly | Live | Scale | |
|---|---|---|---|
| Price per month | $500 | $900 | $1,500 |
| Hourly files | Yes | Yes | Yes |
| Pull API with filters | – | Yes | Yes |
| Webhook push | – | – | Yes |
| Open or closed status | – | Daily | Daily |
| Rolling archive | 30 days | 90 days | 12 months |
| Parsed pay range | – | – | Yes |
| Show jobs on your customers' sites (backfill, resale) | – | – | Yes |
| Support reply | 1 business day | 1 business day | Same business day |
Need other countries, delivery to a warehouse (Snowflake, BigQuery) or several brands on one contract? Ask for a custom plan.
What we commit to
- Free trial: one week free before you pay.
- Delivery: each hourly file is ready within 15 minutes after the hour, and the API updates at least every 15 minutes.
- Availability: 99.5% a month for file and API access.
- Service credits: a pro-rata credit for any day with no delivery for more than 6 hours, and for any week whose measured coverage is under 90%.
- Coverage, reported: measured daily and sent to you weekly. We report coverage rather than promise a number that depends on LinkedIn.
- Incidents: an email within one hour of our alert, and a fix target of two business days if LinkedIn changes its pages.
- Schema: versioned, with 30 days' notice before any breaking change.
- Exit: month to month. If we ever have to stop collecting, you get the unused part of the month back.
What's not included
- Apply links. LinkedIn doesn't show them to logged-out visitors.
- Jobs outside the United States, for now.
- History from before your archive starts. The archive grows from the day your delivery begins.
- Anything that needs a LinkedIn login. We don't use accounts.
Sample data
100 real US jobs with their full job pages, in the same format the feed delivers:
- jobs.jsonl: every field, one job per line
- jobs.csv: every field except
description_html - README.txt: when the jobs were collected and how they were picked
The sample is public, so email addresses, phone numbers, personal LinkedIn profile links and the names of contact people inside its descriptions are masked. The feed delivers descriptions as posted.
Want a sample for your niche? Tell us your use and the job types you care about, and we'll pull one from the last 24 hours.
Questions
Where does the data come from?
Public LinkedIn job listings, the same pages any logged-out visitor sees. No accounts, no member profiles.
How do you measure coverage?
After the feed has run past a time window, a separate search, independent of the feed, finds recent jobs in a few states. Coverage is the share of those jobs the feed already holds.
Can we try it before we pay?
Yes. Start with the sample, then take the one-week free trial once your delivery is set up.