SuperAPI AI Directory

linkedin-importer

Office & productivity

View repository

Updated 10-20 05:43

About this skill

LinkedIn Importer Skill

Intelligently import LinkedIn job postings into the job search system.

Core Features

1. LinkedIn URL parsing

2. JD text extraction

3. Company information recognition

4. Automatic jd-analyzer invocation

5. Batch import support

Usage

Import a single JD from a LinkedIn URL

User: "帮我导入这个LinkedIn职位:https://www.linkedin.com/jobs/view/123456789/"

LinkedIn Importer: ✅ Starting LinkedIn job import...

Step 1/4: Reading LinkedIn page...

Step 2/4: Identifying company and position...

  • Company: Google ✅
  • Position: Software Engineer III, Cloud Platform ✅
  • Level: L4 (inferred) ✅
  • Location: Mountain View, CA / Remote ✅

Step 3/4: Extracting JD details...

  • Job description: Extracted ✅
  • Skill requirements: 7 required + 4 preferred ✅
  • Salary information: Not disclosed ⚠️
  • Application status: Applied

Step 4/4: Analyzing and saving...

  • Invoked: jd-analyzer skill
  • Skill match: 75/100 ✅
  • Saved to: data/companies/google.json ✅

✅ Import complete!

📊 Import Summary: Company: Google Position: Software Engineer III, Cloud Platform (L4) Location: Mountain View, CA / Remote Match: 75/100 Source: LinkedIn

💡 Next Steps:

  1. /company/view google - View full information
  2. /resume/optimize google sse-l4 - Create a tailored resume
  3. /interview/prep google - Prepare for interview

### 从文本粘贴导入
```markdown
User: "我复制了LinkedIn上的JD,能帮我导入吗?"

LinkedIn Importer:
当然可以!请粘贴JD文本,我会帮你解析和导入。

[用户粘贴JD文本]

✅ JD文本已接收!

正在分析...
  - 识别公司: Meta (Facebook)
  - 识别职位: Production Engineer II
  - 提取技能: 9项

调用jd-analyzer进行深度分析...

✅ 分析完成!

📊 分析结果:
  公司: Meta
  职位: Production Engineer II (E4)
  匹配度: 68/100
  必需技能: 7项
  优先技能: 4项

💡 建议:
  - 缺少技能: Kubernetes (需补充)
  - 优势技能: Distributed Systems (匹配)
  - 面试重点: 系统设计 + 生产环境问题

已保存到: data/companies/meta.json

下一步:
  - /resume/optimize meta pe-e4
  - /weakness/plan --focus kubernetes

Batch import LinkedIn jobs

User: "我有5个LinkedIn职位链接,能批量导入吗?"

LinkedIn Importer:
可以!请提供所有LinkedIn职位URL,我会逐个导入。

[用户提供5个URL]

✅ 开始批量导入...

Progress: [████████░░] 80% (4/5)

✅ 1. Google - Software Engineer L4
  - 状态: 导入成功
  - 匹配度: 75/100
  - 保存: data/companies/google.json

✅ 2. Amazon - Senior SDE L5
  - 状态: 导入成功
  - 匹配度: 82/100
  - 保存: data/companies/amazon.json

✅ 3. Meta - Production Engineer E4
  - 状态: 导入成功
  - 匹配度: 68/100
  - 保存: data/companies/meta.json

✅ 4. Stripe - Software Engineer
  - 状态: 导入成功
  - 匹配度: 70/100
  - 保存: data/companies/stripe.json

⚠️ 5. Netflix - Senior Backend Engineer
  - 状态: 部分成功
  - 问题: 公司识别失败
  - 解决: 手动确认为 "Netflix"
  - 匹配度: 72/100
  - 保存: data/companies/netflix.json

✅ 批量导入完成!

📊 导入摘要:
  总计: 5 个职位
  成功: 5 个 (100%)
  失败: 0 个

按匹配度排序:
  1. Amazon L5 - 82% ⭐⭐⭐
  2. Google L4 - 75% ⭐⭐⭐
  3. Netflix - 72% ⭐⭐
  4. Stripe - 70% ⭐⭐
  5. Meta E4 - 68% ⭐⭐

💡 批量操作建议:
  - 优先准备Amazon(最高匹配)
  - 本周申请: Amazon, Google
  - 下周申请: Stripe, Meta
  - 研究Netflix后再决定

是否需要我:
  1. 生成本周申请计划?
  2. 为每个公司优化简历?
  3. 创建面试准备时间表?

LinkedIn URL format handling

Supported URL formats

## 🔗 LinkedIn URL Formats

### 标准职位查看URL

https://www.linkedin.com/jobs/view/[job-id]/ https://www.linkedin.com/jobs/view/123456789/


### 职位详情URL

https://www.linkedin.com/jobs/search/?currentJobId=[job-id] https://www.linkedin.com/jobs/collections/recommended/123456789/


### 公司页面职位

https://www.linkedin.com/jobs/search/?f_C=[company-id]%2C[company-id]


### 移动端URL

https://www.linkedin.com/jobs/view/123456789/fromMobile https://www.linkedin.com/jobs/view/123456789/refId=xxx


### 处理逻辑:
1. 提取job-id(URL中的数字ID)
2. 构造标准API URL
3. 读取职位详情页面
4. 解析职位信息
5. 提取JD内容

JD content extraction

LinkedIn page structure

## 📄 LinkedIn JD Extraction

### 页面结构
```html
<div class="description__text">
  <h2>About the job</h2>
  <p>[职位描述内容]</p>

  <h3>Qualifications</h3>
  <ul>
    <li>[技能要求1]</li>
    <li>[技能要求2]</li>
  </ul>

  <h3>Additional Information</h3>
  <p>[额外信息]</p>
</div>

Extracted fields

  • Job title: <h1 class="top-card-layout__title">
  • Company name: <a class="topcard__org-name-link">
  • Location: <span class="job-criteria__text">
  • Job type: <span class="job-criteria__text">
  • Work experience: <span class="job-criteria__text">
  • Job description: <div class="description__text">
  • Posting date: <span class="posted-time">
  • Number of applicants: <span class="applicant-count">
  • Salary information: <span class="salary-cmp"> (if provided)

Cleaning steps

  1. Remove HTML tags
  2. Clean up excess whitespace
  3. Remove LinkedIn-specific UI text
  4. Format as structured JSON
  5. Preserve key paragraph separations

## 公司信息识别

### 智能公司识别
```markdown
## 🏢 Company Detection

### 方法 1: 从URL提取

LinkedIn company URL: https://www.linkedin.com/company/google/

Extracted: "google"


### 方法 2: 从JD文本识别
```python
patterns = [
    r"at (Apple|Google|Microsoft|Amazon|Meta)",
    r"(Google|Amazon|Microsoft|Meta|Apple)'s",
    r"Join (Apple|Google|Microsoft|Amazon|Meta)",
    # ... 更多模式
]

Method 3: Job title inference

"Google Cloud Platform Engineer" → Google
"Amazon Web Services SDE" → Amazon
"Meta Production Engineer" → Meta

Company name normalization

常见变体 → 标准名称:
- "Google Inc." → "Google"
- "Google (Alphabet)" → "Google"
- "Amazon.com" → "Amazon"
- "Amazon Web Services" → "Amazon"
- "Meta (Facebook)" → "Meta"
- "Facebook" → "Meta"
- "M$" → "Microsoft"
- "Stripe, Inc." → "Stripe"

Company ID mapping

{
  "google": {
    "company_id": "google",
    "linkedin_id": "1441",
    "name": "Google",
    "careers_url": "careers.google.com"
  },
  "amazon": {
    "company_id": "amazon",
    "linkedin_id": "1061",
    "name": "Amazon",
    "careers_url": "jobs.amazon.com"
  },
  "meta": {
    "company_id": "meta",
    "linkedin_id": "1035",
    "name": "Meta",
    "careers_url": "careers.meta.com"
  }
}

Level inference

Job level inference

## 📊 Level Inference

### Google级别映射

Software Engineer II → L3 Software Engineer III → L4 Senior Software Engineer → L5 Staff Software Engineer → L6 Senior Staff SE → L7 Principal Engineer → L8


### Amazon级别映射

Software Dev Engineer I → SDE I (L4) Software Dev Engineer II → SDE II (L5) Senior SDE → Senior SDE (L6) Principal SDE → Principal (L7) Senior Principal → Sr Principal (L8)


### Meta级别映射

Software Engineer (E3) → Junior Software Engineer (E4) → Mid-level Senior Software Engineer (E5) → Senior Staff Software Engineer (E6) → Staff Senior Staff SE (E7) → Senior Staff


### 通用级别推断

Keywords → Level:

  • "Junior", "Associate", "Entry level" → Junior
  • "Software Engineer", "Developer" → Mid-level
  • "Senior", "Lead" → Senior
  • "Staff", "Principal" → Staff/Principal
  • "Director", "VP" → Executive

### 年限要求映射

"1-2 years experience" → Junior "2-4 years experience" → Mid-level "5+ years experience" → Senior "8+ years experience" → Staff/Principal


## 批量导入功能

### 从CSV文件导入
```markdown
User: "我有一个CSV文件包含LinkedIn URL"

LinkedIn Importer:
可以!请提供CSV文件路径或内容。

CSV格式要求:
```csv
company,position,url,status,applied_date
Google,Software Engineer,https://linkedin.com/jobs/123,applied,2024-01-15
Amazon,SDE II,https://linkedin.com/jobs/456,applying,2024-01-16

Or use a file:

/linkedin-import --batch jobs.csv

Processing flow:

  1. Read the CSV file
  2. Import LinkedIn jobs one by one
  3. Automatically identify companies
  4. Update application status
  5. Generate a batch import report

### 从文本列表导入
```markdown
User: "我复制了多个LinkedIn URL"

LinkedIn Importer:
请粘贴所有URL,每行一个:

https://www.linkedin.com/jobs/view/123456789/ https://www.linkedin.com/jobs/view/987654321/ https://www.linkedin.com/jobs/view/456789123/


✅ 收到3个URL,开始导入...

[导入过程...]

✅ 导入完成!

Integration with jd-analyzer

Automatic analysis flow

## 🔗 Integration with jd-analyzer

LinkedIn Importer工作流:

1. **提取LinkedIn JD**
   - 读取LinkedIn页面
   - 提取职位描述文本
   - 识别公司和职位信息

2. **调用jd-analyzer**
   - 自动传递JD文本
   - 返回结构化分析
   - 技能匹配评分

3. **保存到数据文件**
   - 创建/更新 company.json
   - 保存完整分析结果
   - 记录导入来源

### 数据流向

LinkedIn URL ↓ linkedin-importer (extract text) ↓ jd-analyzer (analyze skills) ↓ data/companies/{company}.json (save) ↓ user (view results)


## 错误处理

### 常见问题和解决方案
```markdown
## ⚠️ Error Handling

### 错误 1: URL无法访问

Reason: LinkedIn restricts access or the URL is invalid Solution:

  1. Check whether the URL is correct
  2. Try logging in to LinkedIn manually and then accessing it
  3. Copy the JD text and use paste import
  4. Use the same position from Indeed or another source

### 错误 2: 公司识别失败

Reason: The company information on the LinkedIn page is unclear Solution:

  1. Use --company to specify the company manually
  2. Infer from the job title
  3. Confirm the company name interactively

### 错误 3: JD提取不完整

Reason: LinkedIn loads dynamically or uses a special format Solution:

  1. Paste the full JD text
  2. Increase the timeout parameter
  3. Manually copy and paste the key parts

### 错误 4: 批量导入部分失败

Reason: Some URLs are invalid or access is restricted Solution:

  1. Continue processing the other URLs
  2. Mark the failed URLs
  3. Generate a failure report
  4. Retry the failed items one by one

Advanced features

Smart deduplication

## 🔍 Duplicate Detection

### 检测重复
同一职位的判断标准:
1. 相同公司 + 相同职位名称
2. 相同LinkedIn Job ID
3. 相似度 > 90% (JD文本相似度)

### 处理重复

Duplicate detected:

  • Existing JD: Google SE III (imported on 2024-01-10)
  • New JD: Google SE III (2024-01-15)

Choose:

  1. Skip (keep the existing one)
  2. Update (replace with the new one)
  3. Create a version (keep both versions)

LinkedIn-specific field extraction

## 📊 LinkedIn-Specific Fields

### 申请人数

Applicants: 145 Your percentile: Top 30%

用途: 评估竞争激烈程度

### 发布时间

Posted 2 days ago

用途: 判断职位新鲜度

### 容易申请标志

"Easy Apply" ✅

用途: 一键申请

### 查看人数

85 people viewed this job in the past month

用途: 评估职位热度

Data output

Saved data structure

{
  "company_id": "google",
  "job_applications": {
    "sse-l4-linkedin": {
      "source": "LinkedIn",
      "source_url": "https://www.linkedin.com/jobs/view/123456789/",
      "job_id": "123456789",
      "title": "Software Engineer III, Cloud Platform",
      "inferred_level": "L4",
      "location": "Mountain View, CA / Remote",
      "description_source": "LinkedIn",
      "imported_at": "2024-01-15T14:30:00Z",
      "last_updated": "2024-01-15T14:30:00Z",
      "application_status": "applied",
      "applied_date": "2024-01-15",
      "linkedin_specific": {
        "easy_apply": true,
        "applicants": 145,
        "applicant_percentile": "Top 30%",
        "posted_date": "2024-01-13",
        "views_past_month": 85
      }
    }
  }
}

Performance optimization

Batch import optimization

## ⚡ Performance Optimization

### 并发处理
- 单线程: 10个URL = ~60秒
- 并发(3): 10个URL = ~25秒
- 并发(5): 10个URL = ~18秒

推荐: 并发3-5(避免被LinkedIn限制)

### 缓存策略

Imported JDs → cached for 24 hours Same URL → skip or update


### 增量更新

Update only the changed parts:

  • If the JD has not changed → skip
  • If there are new applications → update the status
  • If the position is closed → mark the status

Best practices

Usage recommendations

## 💡 Best Practices

### 1. 批量导入策略
- 一次导入5-10个职位(太多会混乱)
- 按优先级排序(匹配度高的优先)
- 分批处理(不同类型的职位分开)

### 2. 数据质量
- 总是检查识别的公司名称是否正确
- 确认职位级别推断是否准确
- 验证技能提取是否完整

### 3. 后续操作
- 导入后立即查看分析结果
- 根据匹配度优先排序
- 为高匹配度职位优化简历
- 制定申请时间表

### 4. 定期更新
- 每周重新导入(检查状态变化)
- 更新申请进度
- 标记已关闭的职位

Related commands and skills

  • /jd-import - General JD import (supports more platforms)
  • jd-analyzer skill - JD analysis
  • resume-optimizer skill - Resume optimization
  • /company/view - View company information
  • /analytics/market - Market intelligence

Pro Tip: LinkedIn job postings change quickly; it is recommended to recheck application status weekly and update progress promptly. Good luck with your applications! 🚀