# HRX Candidate LinkedIn Verifier (`raushan2288/hrx-linkedin-verifier`) Actor

Verify shortlist candidates before founder calls. Scrapes LinkedIn profile experience, calculates actual tenure years, checks current employer, and detects notice period contradictions.

- **URL**: https://apify.com/raushan2288/hrx-linkedin-verifier.md
- **Developed by:** [Raushan Kumar](https://apify.com/raushan2288) (community)
- **Categories:** Automation, Open source
- **Stats:** 2 total users, 1 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $100.00 / 1,000 candidate discrepancy flaggeds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## 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

## HRX Candidate LinkedIn Verifier (`hrx-linkedin-verifier`)

Shortlist candidate verification Apify Actor used prior to founder/hiring calls.

### Features

- **Scrapes Profile Data**: Current employer, current role title & headline.
- **Tenure Date Calculation**: Parses start and end dates of all positions in experience section to calculate total actual experience (`actualTenureYears`).
- **Activity Feed Scraping**: Scrapes candidate's recent LinkedIn post activity to verify if candidate is actively posting jobs/hiring for their employer.
- **Mismatch Comparisons & Flags**:
  - `tenureMismatchFlag`: Raised when claimed experience (e.g., 1–3 years) conflicts with profile actual total experience (e.g., 9 years).
  - `employerMismatchFlag`: Raised when claimed current employer does not match the scraped company name.
  - `activityFlag`: Raised when candidate claims "immediate" notice period but is currently actively posting job hiring updates for their employer.
  - `probeDeltas`: Detailed array of human-readable verification findings.
- **Safety & Rate Limiting**:
  - 2.0s – 5.0s randomized request delays.
  - Apify Proxy rotation support.
  - Loud explicit failure when CAPTCHA / Security Checkpoint is encountered.

### Inputs

- `profileUrl`: Full URL to the LinkedIn profile.
- `claimedExperienceYears`: Total experience years claimed.
- `claimedNotice`: Claimed notice period string (e.g., `immediate`, `15 days`, `1 month`).
- `claimedEmployer`: Claimed current company name.
- `linkedinCookie`: Optional `li_at` cookie. Uses `LINKEDIN_LI_AT` environment variable if not provided.

### Output Schema

```json
{
  "verified": false,
  "claimedTenureYears": 2,
  "actualTenureYears": 9.2,
  "claimedCompany": "Acme Corp",
  "actualCompany": "Global Tech Inc",
  "claimedNotice": "immediate",
  "actualRoleTitle": "Senior Software Engineer",
  "tenureMismatchFlag": true,
  "employerMismatchFlag": true,
  "activityFlag": true,
  "probeDeltas": [
    "Tenure mismatch: Form claims 2 years, but LinkedIn profile shows 9.2 years.",
    "Employer mismatch: Form claims 'Acme Corp', but current profile employer is 'Global Tech Inc'.",
    "Notice contradiction: Form claims 'immediate' notice, but candidate is actively posting hiring updates for 'Global Tech Inc'."
  ]
}
```

# Actor input Schema

## `profileUrl` (type: `string`):

Full URL of candidate's LinkedIn profile (e.g. https://www.linkedin.com/in/candidate-name/)

## `claimedExperienceYears` (type: `integer`):

Total years of experience claimed by candidate in form/resume.

## `claimedNotice` (type: `string`):

Claimed notice period (e.g., 'immediate', '15 days', '1 month', '30 days').

## `claimedEmployer` (type: `string`):

Company name of current employer claimed by candidate.

## `linkedinCookie` (type: `string`):

LinkedIn li\_at cookie value. If omitted, uses LINKEDIN\_LI\_AT environment variable.

## `proxyConfiguration` (type: `object`):

Apify Proxy configuration for IP rotation and safety.

## Actor input object example

```json
{
  "profileUrl": "https://www.linkedin.com/in/satyanadella/",
  "claimedExperienceYears": 5,
  "claimedNotice": "immediate",
  "claimedEmployer": "Microsoft"
}
```

# Actor output Schema

## `dataset` (type: `string`):

Default dataset containing candidate verification results and flags.

# 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 = {
    "profileUrl": "https://www.linkedin.com/in/satyanadella/",
    "claimedNotice": "immediate",
    "claimedEmployer": "Microsoft"
};

// Run the Actor and wait for it to finish
const run = await client.actor("raushan2288/hrx-linkedin-verifier").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 = {
    "profileUrl": "https://www.linkedin.com/in/satyanadella/",
    "claimedNotice": "immediate",
    "claimedEmployer": "Microsoft",
}

# Run the Actor and wait for it to finish
run = client.actor("raushan2288/hrx-linkedin-verifier").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 '{
  "profileUrl": "https://www.linkedin.com/in/satyanadella/",
  "claimedNotice": "immediate",
  "claimedEmployer": "Microsoft"
}' |
apify call raushan2288/hrx-linkedin-verifier --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=raushan2288/hrx-linkedin-verifier",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

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