# LinkedIn Job Intelligence - AI Scraper & Analyzer (`david-malan/linkedin-job-intelligence---ai-scraper-analyzer`) Actor

Advanced LinkedIn job scraper that extracts job postings and provides
intelligent analysis using Anthropic's Claude AI. Get insights on
requirements, tech stacks, salary expectations, and role assessments.

Powered by: Claude (Anthropic)

- **URL**: https://apify.com/david-malan/linkedin-job-intelligence---ai-scraper-analyzer.md
- **Developed by:** [Store Craft Studio](https://apify.com/david-malan) (community)
- **Categories:** Jobs, Lead generation
- **Stats:** 2 total users, 0 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$19.00/month + usage

To use this Actor, you pay a monthly rental fee to the developer. The rent is subtracted from your prepaid usage every month after the free trial period.You also pay for the Apify platform usage, which gets cheaper the higher Apify subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#rental-actors

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## LinkedIn Job Scraper with AI Analysis

A powerful Apify Actor that scrapes LinkedIn job postings and provides intelligent AI analysis using Claude (Anthropic).

### Features

- 🔍 **Job Search**: Search LinkedIn jobs by keywords and location
- 📊 **Comprehensive Data**: Extract job titles, companies, locations, descriptions, and posting dates
- 🤖 **AI Analysis**: Get intelligent insights powered by Claude AI including:
  - Key requirements analysis
  - Salary expectations (when mentioned)
  - Experience level assessment
  - Technology stack identification
  - Overall role assessment
- 📈 **Scalable**: Scrape up to 100 jobs per run
- 🔒 **Secure**: API keys stored securely as secrets

### Input Parameters

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| `searchQuery` | String | Yes | "software engineer" | Keywords to search for jobs |
| `location` | String | Yes | "United States" | Job location filter |
| `maxJobs` | Integer | No | 10 | Maximum number of jobs to scrape (1-100) |
| `aiAnalysis` | Boolean | No | true | Enable AI analysis of job postings |
| `anthropicApiKey` | String | Conditional\* | - | Your Anthropic API key for Claude AI |
| `analysisPrompt` | String | No | (default prompt) | Custom prompt for AI analysis |

\*Required if `aiAnalysis` is enabled

### Output

The actor stores results in the Apify dataset with the following structure:

```json
{
  "title": "Senior Software Engineer",
  "company": "Tech Company Inc.",
  "location": "San Francisco, CA",
  "url": "https://www.linkedin.com/jobs/view/...",
  "postedDate": "2 days ago",
  "description": "Full job description...",
  "aiAnalysis": "AI-generated analysis of the role..."
}
```

### Setup Instructions

#### 1. Create a New Actor on Apify

1. Go to [Apify Console](https://console.apify.com/)
2. Click **Actors** → **Create new**
3. Choose **Start from scratch**
4. Give it a name (e.g., "linkedin-job-scraper-ai")

#### 2. Set Up Project Structure

Create the following files in your actor:

```
my-actor/
├── .actor/
│   ├── actor.json
│   └── input_schema.json
├── main.js
├── package.json
├── Dockerfile
└── README.md
```

#### 3. Add the Code

Copy each artifact into its respective file as shown above.

#### 4. Get Your Anthropic API Key

1. Go to [Anthropic Console](https://console.anthropic.com/)
2. Sign up or log in
3. Navigate to **API Keys**
4. Create a new API key
5. Copy the key (it starts with `sk-ant-`)

#### 5. Build and Run

1. In Apify Console, click **Build**
2. Wait for the build to complete
3. Click **Start** and configure input:
   - Enter your search query
   - Enter location
   - Set max jobs
   - **Enable AI Analysis** (checkbox)
   - **Paste your Anthropic API key**
   - Optionally customize the analysis prompt

#### 6. View Results

- Results appear in the **Dataset** tab
- Download as JSON, CSV, or Excel
- View AI analysis for each job

### Example Input

```json
{
  "searchQuery": "machine learning engineer",
  "location": "New York, NY",
  "maxJobs": 20,
  "aiAnalysis": true,
  "anthropicApiKey": "sk-ant-api03-...",
  "analysisPrompt": "Analyze this job and tell me: 1) Is it suitable for mid-level engineers? 2) What's the tech stack? 3) Remote work policy?"
}
```

### Pricing Notes

- **Apify**: Charges based on compute units (CU). Check [Apify pricing](https://apify.com/pricing)
- **Anthropic API**: Charges per token. Claude Sonnet is ~$3 per million input tokens. Check [Anthropic pricing](https://www.anthropic.com/pricing)

### Troubleshooting

#### LinkedIn Blocking

If you encounter blocking:

- Enable residential proxies
- Reduce `maxJobs`
- Add delays between requests

#### AI Analysis Not Working

- Verify your Anthropic API key is correct
- Check you have credits in your Anthropic account
- Ensure `aiAnalysis` is set to `true`

#### No Jobs Found

- Try broader search terms
- Check if LinkedIn structure changed
- Verify the location exists on LinkedIn

### Legal & Ethical Use

⚠️ **Important**:

- Respect LinkedIn's Terms of Service
- Use responsibly and ethically
- Don't scrape personal data
- Add appropriate delays
- Consider LinkedIn's API for commercial use

### Support

For issues or questions:

- Check Apify documentation
- Review Anthropic API docs
- Open an issue in the repository

### License

MIT License - feel free to modify and use for your projects!

# Actor input Schema

## `searchQuery` (type: `string`):

Keywords to search for jobs (e.g., 'software engineer', 'data scientist')

## `location` (type: `string`):

Job location to filter by

## `maxJobs` (type: `integer`):

Maximum number of job listings to scrape

## `aiAnalysis` (type: `boolean`):

Enable Claude AI analysis of job postings

## `anthropicApiKey` (type: `string`):

Your Anthropic API key for Claude AI (required if AI Analysis is enabled). Get one at https://console.anthropic.com/

## `analysisPrompt` (type: `string`):

Custom prompt for AI analysis of job postings

## Actor input object example

```json
{
  "searchQuery": "software engineer",
  "location": "United States",
  "maxJobs": 10,
  "aiAnalysis": true,
  "analysisPrompt": "Analyze this job posting and provide: 1) Key requirements, 2) Salary expectations if mentioned, 3) Required experience level, 4) Technology stack, 5) Overall assessment of the role"
}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {};

// Run the Actor and wait for it to finish
const run = await client.actor("david-malan/linkedin-job-intelligence---ai-scraper-analyzer").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {}

# Run the Actor and wait for it to finish
run = client.actor("david-malan/linkedin-job-intelligence---ai-scraper-analyzer").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{}' |
apify call david-malan/linkedin-job-intelligence---ai-scraper-analyzer --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=david-malan/linkedin-job-intelligence---ai-scraper-analyzer",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/kdYmBj1Ga72XswxuJ/builds/v4MLkEkG0KynalOvT/openapi.json
