Glasser Team9 min read
LinkedIn Jobs API Access: Free Options and Limits
Learn which APIs retrieve LinkedIn jobs, what free access covers, and how to check query limits, source listings and ongoing costs.

Can you get LinkedIn job listings through a free API?
You can evaluate third-party job-data APIs with a trial or limited allowance, but access depends on the provider and the exact operation. LinkedIn's documented Job Posting API serves approved partners publishing jobs for customers. Its public overview currently directs new applicants to Apply Connect. A developer account alone does not establish access to a general vacancy-search feed. LinkedIn Job Posting API overview
Start by defining the result you need: a shortlist of vacancies for one title and location, the roles advertised by a known company, or the details of a job whose URL you already hold. Those tasks can require different inputs and produce different records.
For a small retrieval workflow, Glasser's Jobs API collection includes LinkedIn job search, job details and company hiring data. Inspect the relevant operation's inputs and current price before spending. This guide uses public documentation checked on October 12, 2026; it does not report a live retrieval test or measured coverage.
Choose an access path for the jobs you need
Separate job discovery, publishing and your own inventory
| Your task | Relevant access path | What to verify first |
|---|---|---|
| Find LinkedIn postings for a role and location | A provider operation explicitly supporting LinkedIn job search | Query fields, source coverage, result cap and execution mode |
| Read a known LinkedIn posting | A job-detail operation | Accepted identifier or URL and returned fields |
| Publish customers' jobs on LinkedIn | An approved LinkedIn Talent integration | Partner eligibility and the relevant publishing contract |
| Retrieve results shown in Google Jobs | A provider's Google Jobs search operation | Geography, result source and billing unit |
| Search jobs that your own site supplies | Google Cloud Talent Solution | Ingestion, stored objects, search requests and billing |
| Notify Google about changes to your job pages | Google Indexing API | Page eligibility, ownership and notification requirements |
Google Cloud Talent Solution indexes the jobs and companies you send to it. Its search pricing applies to that inventory. Google's Indexing API handles notifications about eligible pages being updated or removed. Neither contract establishes a feed of all vacancies displayed in Google Jobs. Cloud Talent Solution basics · Indexing API usage
This distinction matters when searching for “Google jobs API pricing.” The current Cloud Talent Solution pricing page separates search calls from stored jobs and companies; billing must be enabled, with charges beginning above the stated free allowances. A third-party Google Jobs retrieval service has its own price and result unit. Compare the service that supplies your required data. Cloud Talent Solution pricing
Read what a free offer actually covers
Record whether an offer is a one-time credit, a recurring allowance, a trial with an expiry date, or a free software package that still needs a paid data source. Check whether API access is included and what happens when the allowance is exhausted. “Free job posting” also describes a publishing arrangement; it says nothing about downloading job-search results.
Two documented ways to evaluate access are:
| Access route | Available starting balance | Limit to check |
|---|---|---|
| Glasser | Its documentation says a new Workspace receives a signup Grant; the console shows the current amount | The selected endpoint still has a price, and the Grant is spent as balance |
| Direct Apify account | Its Free plan lists $5 per month in platform/Store usage | Actor pricing and platform usage consume the allowance; unused credits expire and access stops when the Free allowance runs out |
These balances belong to separate accounts. An Apify allowance does not transfer to Glasser, and neither amount guarantees a particular number of usable job records. Glasser balance documentation · Apify's published plan terms
For each candidate, write down the accepted query, the source being searched and the charge unit. A service may charge per request, returned record or run. A request that returns ten records cannot be compared directly with a price quoted for one record.
If you are using Glasser, its current contract appears in Inspect, including separate charging terms for empty results and failures. The public collection and endpoint pages are dated snapshots; use Inspect for the operation you intend to run. Glasser's execution and pricing model
Retrieve a small LinkedIn job sample through Glasser
Inspect one title-and-location operation
The Apify LinkedIn Job Search operation in Glasser identifies the provider as apify and the endpoint as /harvestapi/linkedin-job-search. Its published input requires jobTitles, an array containing exactly one nonempty string. locations is optional; when supplied, it also contains one string.
The page describes a maximum of ten of the newest matching records and asynchronous execution. It does not publish a stable output schema. Review the returned structure before connecting it to a database or spreadsheet.
After setting up your agent through the Glasser setup guide, you can give it this bounded task:
Find LinkedIn job listings for data engineers in London.
Inspect apify:/harvestapi/linkedin-job-search and show me its
input schema, version, result cap and current charging terms.
Prepare one request using one job title and one location.
Wait for my approval before the paid Run.
For the published schema, the proposed input is:
{
"jobTitles": ["data engineer"],
"locations": ["London"]
}
This is an input example, not a retrieved result. Do not add page, limit, date filters or several titles unless a currently inspected version explicitly accepts them. The published schema rejects additional properties.
Follow the same Run until it finishes
Once you authorize execution, retain the Run ID. A QUEUED or RUNNING status means work remains in progress. Use Get a Run to check that execution; submitting another new Run starts another retrieval.
Check the final status, provider_response and charge_usd separately. COMPLETED can contain a provider error, while FAILED can still carry a charge under its terms. A lost connection also does not prove that execution failed: retrying with the same idempotency key and execution parameters retrieves the original Run. Create a Run · Get a Run
Check the returned listings before using them
Keep a source record for every vacancy
For each usable record, retain the original job identifier or URL, title, employer, location and application link when supplied. Keep the provider, query and retrieval timestamp alongside them. Store a posting date separately from the time you fetched the record.
A missing value stays missing. A location mentioning a city does not establish remote eligibility; an absent salary does not mean unpaid work. Preserve the original description when your use permits it, so a reviewer can check a classification against the source.
The following checks are suggested application rules, not automatic Glasser features:
| Check | Action in your application |
|---|---|
| The same source job ID or posting URL appears twice | Link the observations to one source listing |
| Different sources appear to describe one vacancy | Keep both source records until you can verify the match |
| A link is unavailable or the role is marked closed | Flag it for review before showing an active vacancy |
| Title or location only loosely matches the query | Record the mismatch instead of silently expanding your target |
| Several roles share an employer and title | Compare location, requisition ID and source link before merging |
Review a bounded sample before scheduling collection
Choose a small set of representative title-and-location queries. Manually inspect returned source links and count the rows that match your task, have enough information and are unique within the sample. Record exclusions and missing fields.
This measures sample usefulness. It does not establish the share of all LinkedIn jobs you captured, because you have no complete reference set. Glasser's Jobs collection also cautions that returned records reflect source data at retrieval and require application handling for dates, status and duplicates. Jobs API questions
Estimate ongoing costs and handle missing results
Budget using usable unique listings
Track actual retrieval charges and the number of usable unique listings after review. As an editorial evaluation metric:
Cost per usable unique listing =
total retrieval charges / usable unique listings
Include repeat queries and empty runs in the numerator when they were charged. If the usable count is zero, report that outcome directly; the ratio is undefined. Keep review effort and storage expenses separately if they matter to your budget.
For ongoing monitoring, estimate queries per day, calls per query and planned refresh days. Then verify the actual charge rule. Avoid multiplying a dated “per call” label from a collection page by a record count; a live endpoint can use different terms. Inspect the current job-search contract before expanding the workload.
Diagnose a result gap before broadening the query
An empty response may reflect the query, provider coverage or data available at retrieval. Check the Run and provider response first, then review the exact title and location. Change one condition at a time and log the change so different result sets remain interpretable.
A result cap also limits what you can conclude. This operation's published cap is ten records; calling the same query again does not establish that you retrieved the next page. Choose an operation with documented pagination when you need deeper collection.
Frequently asked questions
Is there a free official LinkedIn job-search API?
The official Job Posting API documentation reviewed for this guide describes restricted partner access for publishing jobs. For vacancy retrieval, verify an explicitly supported data source and its current allowance; do not infer search access from a LinkedIn login or app registration.
Does Google Cloud's free quota include Google Jobs results?
Cloud Talent Solution searches the jobs and companies submitted to your own project. Retrieving Google Jobs search results uses a different service contract, with its own scope and price.
Can I use several job titles in one Glasser request?
The published Apify operation accepts one title and optionally one location. Inspect the current schema before preparing requests, and account for separate executions when testing multiple queries.
Can this workflow post jobs or apply for them?
The described Glasser operation retrieves listings. Publishing and applications require their own supported integrations and authorization.
Where does LinkedIn profile access fit?
Profile and sign-in access use different products and permissions. The LinkedIn API Python guide covers that boundary; this article focuses on vacancy data.
Related posts
View more
9 min read
How to Use the LinkedIn API with Python
Call the LinkedIn API from Python using OAuth and OpenID Connect. Retrieve member profiles, handle missing fields, and understand profile and jobs limits.

8 min read
Local Business Data: How to Build a List by City and Category
Build a list of local businesses for a chosen city and category. Compare data sources, follow a geographic query, and handle duplicate locations.
7 min read
Job Change Tracking: How to Know When a Contact Changes Jobs
Track when sales contacts change employers. Compare tracking approaches, verify each move, avoid duplicate alerts, and notify the right account owner.
Make your agent
work with real data.
Search, inspect, and run data APIs through one Glasser key. Turn your next question into a result you can use.
Get started with Glasser