# LinkedIn Resume Builder to PDF (`xanthic_polygon/linkedin-to-pdf-resume`) Actor

Create a polished, professionally designed resume from any public LinkedIn profile URL. Unlike the standard export, this tool offers modern themes and custom formatting. Generates a high-quality PDF CV in seconds. Perfect for job seekers, recruiters, and bio generation.

- **URL**: https://apify.com/xanthic\_polygon/linkedin-to-pdf-resume.md
- **Developed by:** [Fuat Sezer](https://apify.com/xanthic_polygon) (community)
- **Categories:** Social media, Jobs, Agents
- **Stats:** 53 total users, 5 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $500.00 / 1,000 results

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 a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use 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 Resume Builder: Convert Profile to PDF

**Stop wasting time on formatting. Turn your LinkedIn profile into a professional, ATS-friendly resume in seconds.**

The ultimate **linkedin resume builder** that lets you instantly **download linkedin resume** as a beautifully formatted PDF. Simply paste your public LinkedIn profile URL, choose a template, and get a ready-to-use CV in under a minute.

### 🎯 Why Use This Actor?

- **Save Hours of Formatting** - No more manual copy-pasting from LinkedIn to Word docs
- **ATS-Optimized Templates** - All themes are designed to pass Applicant Tracking Systems
- **Professional Designs** - 3 stunning templates crafted by design professionals
- **Instant PDF Download** - Get your resume as a PDF with a direct download link
- **Residential Proxy Support** - Reliable scraping with premium residential proxies
- **100% Accurate Data** - Extracts all your experience, education, skills, and more

### 📋 Features

#### 🎨 Multiple Professional Themes
Choose from three ATS-friendly resume templates:

| Theme | Best For |
|-------|----------|
| **Modern** | Tech, startups, creative industries |
| **Classic** | Corporate, finance, law, consulting |
| **Minimalist** | Design, marketing, executive roles |

#### 📊 Complete Data Extraction
The scraper extracts:
- ✅ Full name and headline
- ✅ Profile photo (optional)
- ✅ Professional summary/about section
- ✅ Work experience with dates and descriptions
- ✅ Education history
- ✅ Skills and endorsements
- ✅ Location information

#### 🛡️ Anti-Blocking Technology
- **Residential Proxies** - Uses premium residential IPs to avoid detection
- **Fingerprint Randomization** - Each request looks like a real user
- **Stealth Mode** - Advanced browser fingerprinting protection

### 🚀 How to Use

#### Step 1: Get Your LinkedIn Profile URL
Copy your public LinkedIn profile URL. It should look like:
````

https://www.linkedin.com/in/your-username

````

> ⚠️ **Important**: The profile must be set to "Public" visibility in LinkedIn settings.

#### Step 2: Configure the Actor
1. Paste your LinkedIn URL in the "Profile URL" field
2. Select your preferred resume template (Modern, Classic, or Minimalist)
3. Choose whether to include your profile photo
4. Pick an accent color (optional)

#### Step 3: Run and Download
Click "Start" and wait for the Actor to complete. Your PDF resume will be available for download in the output.

### 📤 Output Format

The Actor outputs a JSON object with the following structure:

```json
{
  "status": "SUCCEEDED",
  "profileName": "John Doe",
  "linkedinUrl": "https://www.linkedin.com/in/johndoe",
  "generatedPdfUrl": "https://api.apify.com/v2/key-value-stores/.../resume.pdf",
  "scrapedDataSummary": {
    "headline": "Senior Software Engineer at Google",
    "experienceCount": 5,
    "educationCount": 2,
    "skillsCount": 15
  },
  "themeUsed": "modern",
  "generatedAt": "2024-01-15T10:30:00.000Z"
}
````

#### Direct PDF Download

The `generatedPdfUrl` field contains a direct link to download your PDF resume. This link is publicly accessible and can be shared.

### 💡 Use Cases

#### For Job Seekers

**Generate resume from LinkedIn** instantly when you find your dream job posting. No more scrambling to update your resume - just run the Actor and apply immediately.

#### For Recruiters

Quickly convert candidate LinkedIn profiles to standardized PDF resumes for your records and client presentations.

#### For Career Coaches

Help clients visualize their LinkedIn profile as a traditional resume. Identify gaps and areas for improvement.

#### For HR Teams

Standardize candidate documentation by converting all LinkedIn profiles to consistent PDF formats.

### ⚙️ Input Parameters

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| `profileUrl` | String | ✅ Yes | - | LinkedIn profile URL to convert |
| `theme` | String | No | `modern` | Resume template: `modern`, `classic`, or `minimalist` |
| `includePhoto` | Boolean | No | `true` | Include profile photo in resume |
| `accentColor` | String | No | `#2563eb` | Accent color for the resume theme |

### 💰 Pricing

This Actor uses **Pay-per-Result** pricing:

- **$0.50 per PDF generated**
- Only pay for successful conversions
- No monthly subscription required

> The price includes residential proxy costs for reliable LinkedIn access.

### ❓ FAQ

#### Can I convert private LinkedIn profiles?

No, this Actor only works with **public** LinkedIn profiles. The profile must be visible to people not logged into LinkedIn.

#### How do I make my LinkedIn profile public?

1. Go to LinkedIn Settings → Visibility
2. Select "Edit your public profile"
3. Toggle "Your profile's public visibility" to ON

#### Why did my scrape fail?

Common reasons:

- Profile is set to private
- Invalid LinkedIn URL format
- LinkedIn temporary rate limiting (try again in a few minutes)

#### Can I customize the resume further?

Currently, you can choose from 3 templates and 7 accent colors. More customization options coming soon!

#### Is this against LinkedIn Terms of Service?

This Actor only accesses publicly available information. However, please review LinkedIn's terms for your specific use case.

### 🔗 Related Actors

Need more LinkedIn data? Check out these related tools:

- **[LinkedIn Job Scraper](https://apify.com/store)** - Extract job listings from LinkedIn
- **[LinkedIn Company Scraper](https://apify.com/store)** - Get company profile data
- **[LinkedIn Post Scraper](https://apify.com/store)** - Collect posts and engagement data

***

### 📞 Support

Having issues? Need a custom solution?

- 📧 Email: support@example.com
- 💬 [Open an Issue](https://github.com)
- ⭐ Rate this Actor if it helped you!

***

### 🏷️ Keywords

`linkedin resume builder` · `download linkedin resume` · `generate resume from linkedin` · `save linkedin profile as pdf` · `linkedin to pdf` · `linkedin cv converter` · `ats friendly resume` · `professional resume template` · `linkedin scraper` · `resume generator`

***

**Made with ❤️ for job seekers everywhere**

*Last updated: 2024*

# Actor input Schema

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

The full URL of the LinkedIn profile you want to convert. ⚠️ Profile MUST be PUBLIC (check in incognito browser without login). Example: https://www.linkedin.com/in/username

## `theme` (type: `string`):

Choose a design template for your resume. Each template is ATS-friendly and professionally designed.

## `includePhoto` (type: `boolean`):

Include your LinkedIn profile photo in the resume. Note: Some recruiters prefer resumes without photos for unbiased screening.

## `accentColor` (type: `string`):

Choose an accent color for your resume (applies to Modern and Minimalist themes).

## Actor input object example

```json
{
  "profileUrl": "https://www.linkedin.com/in/williamhgates",
  "theme": "modern",
  "includePhoto": true,
  "accentColor": "#2563eb"
}
```

# Actor output Schema

## `status` (type: `string`):

Result status: SUCCEEDED or FAILED

## `profileName` (type: `string`):

Full name extracted from LinkedIn profile

## `linkedinUrl` (type: `string`):

Original LinkedIn profile URL that was processed

## `generatedPdfUrl` (type: `string`):

Direct download link for the generated PDF resume

## `headline` (type: `string`):

Professional headline from LinkedIn profile

## `themeUsed` (type: `string`):

Resume template theme that was applied

## `generatedAt` (type: `string`):

Timestamp when the resume was generated

## `errorMessage` (type: `string`):

Error description if status is FAILED

# 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/williamhgates"
};

// Run the Actor and wait for it to finish
const run = await client.actor("xanthic_polygon/linkedin-to-pdf-resume").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/williamhgates" }

# Run the Actor and wait for it to finish
run = client.actor("xanthic_polygon/linkedin-to-pdf-resume").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/williamhgates"
}' |
apify call xanthic_polygon/linkedin-to-pdf-resume --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "LinkedIn Resume Builder to PDF",
        "description": "Create a polished, professionally designed resume from any public LinkedIn profile URL. Unlike the standard export, this tool offers modern themes and custom formatting. Generates a high-quality PDF CV in seconds. Perfect for job seekers, recruiters, and bio generation.",
        "version": "0.1",
        "x-build-id": "DHYBS5sQaAEWPXhXZ"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/xanthic_polygon~linkedin-to-pdf-resume/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-xanthic_polygon-linkedin-to-pdf-resume",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/xanthic_polygon~linkedin-to-pdf-resume/runs": {
            "post": {
                "operationId": "runs-sync-xanthic_polygon-linkedin-to-pdf-resume",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/xanthic_polygon~linkedin-to-pdf-resume/run-sync": {
            "post": {
                "operationId": "run-sync-xanthic_polygon-linkedin-to-pdf-resume",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "profileUrl"
                ],
                "properties": {
                    "profileUrl": {
                        "title": "LinkedIn Profile URL",
                        "pattern": "^(https?:\\/\\/)?(www\\.)?linkedin\\.com\\/in\\/[a-zA-Z0-9_-]+\\/?.*$",
                        "type": "string",
                        "description": "The full URL of the LinkedIn profile you want to convert. ⚠️ Profile MUST be PUBLIC (check in incognito browser without login). Example: https://www.linkedin.com/in/username"
                    },
                    "theme": {
                        "title": "Resume Template",
                        "enum": [
                            "modern",
                            "classic",
                            "minimalist"
                        ],
                        "type": "string",
                        "description": "Choose a design template for your resume. Each template is ATS-friendly and professionally designed.",
                        "default": "modern"
                    },
                    "includePhoto": {
                        "title": "Include Profile Photo",
                        "type": "boolean",
                        "description": "Include your LinkedIn profile photo in the resume. Note: Some recruiters prefer resumes without photos for unbiased screening.",
                        "default": true
                    },
                    "accentColor": {
                        "title": "Accent Color",
                        "enum": [
                            "#2563eb",
                            "#059669",
                            "#dc2626",
                            "#7c3aed",
                            "#ea580c",
                            "#0891b2",
                            "#374151"
                        ],
                        "type": "string",
                        "description": "Choose an accent color for your resume (applies to Modern and Minimalist themes).",
                        "default": "#2563eb"
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
