Search and Extract LinkedIn Job Postings via API

Search LinkedIn's job board by title, company, location, and keywords. Structured job posting data for hiring intelligence, market research, and competitive analysis. Cursor pagination for full result sets.

Search LinkedIn's full job board Filter by title, company, location, keywords Structured job posting data in JSON Cursor pagination for large result sets

Job Postings Are the Best Real-Time Signal for Company Strategy

Job postings reveal what a company is building next. When a fintech starts hiring Rust engineers, they're rebuilding infrastructure. When an enterprise adds three "Head of AI" roles, they're making a strategic bet. When a competitor opens a new office in Austin, those job listings tell you before any press release.

LinkedIn hosts the world's largest professional job board — over 15 million active listings at any time. But there's no API access. Sales teams miss buying signals. Recruiters can't track competitor offers. Market researchers scrape manually or pay for stale data dumps.

Everything is locked behind a browser interface designed for individual job seekers, not for teams that need systematic access to hiring data across thousands of companies.

LinkedIn Job Search Endpoint

One endpoint to search LinkedIn's entire job board with structured filters and paginated results.

Search Jobs

GET /api/linkedin/search/jobs

Search LinkedIn job postings by keywords, title, company, and location. Returns up to 25 jobs per page with cursor-based pagination for full result sets.

Parameter Type Description
keywords string General keyword search across job listings
title string Filter by job title (e.g. "Senior Engineer")
company string Filter by company name
location string Filter by location, city, or "remote"
count integer Results per page, max 25 (default: 25)
cursor string Pagination cursor from previous response

Cost: 1 credit per page (25 jobs per page)

Example Response

{
  "jobs": [
    {
      "job_id": "3847291056",
      "title": "Senior Backend Engineer",
      "company": "Stripe",
      "company_url": "https://linkedin.com/company/stripe",
      "location": "San Francisco, CA (Hybrid)",
      "posted_date": "2026-03-08",
      "description": "We're looking for a Senior Backend Engineer to join our Payments Infrastructure team. You'll design and build systems that process billions of dollars...",
      "employment_type": "Full-time",
      "seniority_level": "Mid-Senior level",
      "applicant_count": 142,
      "url": "https://linkedin.com/jobs/view/3847291056"
    }
  ],
  "cursor": "eyJvZmZzZXQiOjI1fQ==",
  "total_results": 1847
}

Code Examples

Production-ready examples for common job search workflows.

Hiring Intelligence — Track Competitor Hiring by Department
import requests
from collections import defaultdict

# Track competitor hiring patterns by department
competitors = ["Stripe", "Square", "Adyen", "Checkout.com"]
departments = defaultdict(lambda: defaultdict(int))

headers = {"access-token": "YOUR_ACCESS_TOKEN"}

for company in competitors:
    cursor = None
    while True:
        params = {"company": company, "count": 25}
        if cursor:
            params["cursor"] = cursor

        resp = requests.get(
            "https://api.anysite.io/api/linkedin/search/jobs",
            headers=headers,
            params=params
        )
        data = resp.json()

        for job in data["jobs"]:
            title = job["title"].lower()
            if "engineer" in title or "developer" in title:
                departments[company]["Engineering"] += 1
            elif "sales" in title or "account" in title:
                departments[company]["Sales"] += 1
            elif "marketing" in title or "growth" in title:
                departments[company]["Marketing"] += 1
            elif "product" in title or "design" in title:
                departments[company]["Product"] += 1

        cursor = data.get("cursor")
        if not cursor:
            break

# Print hiring breakdown
for company, depts in departments.items():
    print(f"\n{company}:")
    for dept, count in sorted(depts.items(), key=lambda x: x[1], reverse=True):
        print(f"  {dept}: {count} open roles")
Sales Signal Detection — Find Companies Hiring for Specific Roles
import requests

# Find companies hiring for roles that signal buying intent
# e.g. "data engineer" = building data infrastructure = needs tools
signal_roles = [
    "data engineer",
    "security engineer",
    "devops engineer",
    "platform engineer",
]

headers = {"access-token": "YOUR_ACCESS_TOKEN"}
prospects = []

for role in signal_roles:
    resp = requests.get(
        "https://api.anysite.io/api/linkedin/search/jobs",
        headers=headers,
        params={"title": role, "location": "United States", "count": 25}
    )
    data = resp.json()

    for job in data["jobs"]:
        prospects.append({
            "company": job["company"],
            "role": job["title"],
            "location": job["location"],
            "signal": role,
            "url": job["url"],
        })

print(f"Found {len(prospects)} buying-signal job postings")
for p in prospects[:10]:
    print(f"  {p['company']} hiring {p['role']} ({p['signal']})")
Basic Job Search
# Search for engineering jobs at a specific company
curl -X GET "https://api.anysite.io/api/linkedin/search/jobs" \
  -H "access-token: YOUR_ACCESS_TOKEN" \
  -G \
  -d "company=Stripe" \
  -d "keywords=engineer" \
  -d "location=San Francisco" \
  -d "count=25"

# Search remote jobs by title
curl -X GET "https://api.anysite.io/api/linkedin/search/jobs" \
  -H "access-token: YOUR_ACCESS_TOKEN" \
  -G \
  -d "title=product manager" \
  -d "location=remote"

# Paginate through results
curl -X GET "https://api.anysite.io/api/linkedin/search/jobs" \
  -H "access-token: YOUR_ACCESS_TOKEN" \
  -G \
  -d "keywords=machine learning" \
  -d "cursor=eyJvZmZzZXQiOjI1fQ=="
Search Jobs
# Search for jobs by keywords
anysite linkedin search-jobs --keywords "machine learning" --location "New York"

# Search by job title
anysite linkedin search-jobs --title "Senior Product Manager" --count 25
Company-Specific Search
# All open roles at a company
anysite linkedin search-jobs --company "Google" --count 25

# Engineering roles at a company
anysite linkedin search-jobs --company "Stripe" --keywords "engineer"
Batch Search from File
# companies.txt — one company per line
# Stripe
# Square
# Adyen

# Search jobs for each company in the file
while IFS= read -r company; do
  anysite linkedin search-jobs --company "$company" --count 25 >> jobs_output.json
done < companies.txt

Use Cases

How teams use LinkedIn job data to gain a competitive edge.

Sales Intent Signals

Companies that are hiring have budget and are building. A company posting 10 engineering roles is investing in product — they need tools, infrastructure, and services. Job postings are the earliest signal of buying intent.

Signal Examples

New "Head of Security" = security budget. "Data Engineer" = data infrastructure spend. "DevOps" = cloud tooling purchases.

Competitive Hiring Analysis

Track which departments competitors are expanding. A sudden spike in ML engineering roles reveals strategic direction. New office locations show geographic expansion. Job descriptions reveal the tech stack they're adopting.

What You Learn

Department growth rates, technology bets, geographic strategy, and organizational priorities — all from public job postings.

Labor Market Research

Analyze salary ranges, skill requirements, and title trends across industries. Track which technologies are growing in demand. Understand how job requirements differ by region, seniority level, and company size.

Data Points

Skill demand trends, compensation benchmarks, employment type shifts (remote vs. hybrid), and seniority distribution across roles.

Recruiting Competitive Intelligence

See what competitors offer candidates — titles, perks, compensation signals, and role scope. Understand how your job descriptions compare. Identify which companies are competing for the same talent pool.

Actionable Insights

Competitor compensation ranges, benefits mentioned in postings, title inflation trends, and hiring velocity by role type.

Pricing

Simple credit-based pricing. No per-endpoint fees.

Action Cost Details
Job search 1 credit/page 25 jobs per page

Cost Examples

Use Case Estimated Credits/Month
Track 20 competitors weekly ~80 credits
Daily hiring signals ~150 credits
Market research — 500 postings ~20 credits

Frequently Asked Questions

What job posting data is available?
Each job posting includes job_id, title, company name, company URL, location, posted date, full description, employment type (full-time, part-time, contract), seniority level, applicant count, and the direct LinkedIn URL. All data is returned as structured JSON.
Can I filter by remote, hybrid, or onsite?
Yes. Use the location parameter to filter by work arrangement. Search for "remote", "hybrid", or specific cities and regions. You can also combine location filters with title and keyword filters for precise targeting.
How fresh is the job data?
Job postings are extracted in real time from LinkedIn. Each API call returns live data, so you always see the most current listings. The posted_date field tells you when each job was originally published on LinkedIn.
Can I get the full job description?
Yes. The description field contains the full job posting text including responsibilities, requirements, qualifications, and benefits. This is the same content visible on the LinkedIn job listing page.
Can I combine with company and people data?
Absolutely. Use the Job Search API to find companies that are hiring, then enrich with the Company Data API for firmographics and the People Search API to find decision-makers. All endpoints use the same authentication and credit system.

Start Tracking LinkedIn Job Data

7-day free trial with 1,000 credits. Search LinkedIn's full job board via API.