ต้นแบบ · รุ่นทดลอง: มีทุก server ในทะเบียนทางการ อัปเดตทุก 30 นาที รีวิวและบัญชีผู้ใช้จะมาในขั้นถัดไป
PopNx MCPที่รวม MCP สำหรับคนใช้ AI · อธิบายเป็นภาษาคน

JobSpy

โดย speedyapplyรุ่น 1.4.1i★ –iรันบนเครื่อง
ชื่อใน registryio.github.speedyapply/jobspy

ติดตั้ง

ภาพรวม

คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)

Search LinkedIn, Indeed, ZipRecruiter, Glassdoor and regional job boards

สามเสาของ PopNx MCP

สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน

ใช้ทำอะไรได้

ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry

  • การเชื่อมต่อ: รันบนเครื่อง
  • ช่องทาง (transport): stdio
  • หมวด: การตลาดและโซเชียล

ติดตั้ง

เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง

ก่อนติดตั้ง

ต้องเตรียมก่อน

  • PyPIติดตั้ง uv ของ Python (มีคำสั่ง uvx) ในเครื่อง

คุณใช้แอปไหน

เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”

เปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json

{
  "mcpServers": {
    "jobspy": {
      "command": "uvx",
      "args": [
        "mcp-jobspy"
      ]
    }
  }
}

พิมพ์คำสั่งนี้ใน Terminal

claude mcp add jobspy -- uvx mcp-jobspy

เปิดใน Cursor

หรือคัดลอกค่าตั้งเอง

วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json

{
  "mcpServers": {
    "jobspy": {
      "command": "uvx",
      "args": [
        "mcp-jobspy"
      ]
    }
  }
}

เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง

เปิดใน VS Code

หรือคัดลอกค่าตั้งเอง

วางในไฟล์ .vscode/mcp.json ของโปรเจกต์

{
  "servers": {
    "jobspy": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "mcp-jobspy"
      ]
    }
  }
}

เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง

ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น

ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี

ค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README

ทำอะไรได้บ้าง

รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง

ผลตรวจเบื้องต้นi

เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 7 พ.ย. 2569

  • ✓ ผ่าน

    ตัวตนผู้ทำตรงกับ repo

    ชื่อใน registry ยืนยันด้วยบัญชี GitHub speedyapply ซึ่งเป็นเจ้าของ repo

  • … ยังไม่ตรวจ

    ยังมีคนดูแล

    ยังไม่ได้อ่านข้อมูล repo จาก GitHub

  • … ยังไม่ตรวจ

    มีสัญญาอนุญาต (license)

    ยังไม่ได้อ่านข้อมูล repo จาก GitHub

  • – ไม่เกี่ยว

    endpoint ตอบ

    ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต

  • – ไม่เกี่ยว

    ล็อกอินแบบ OAuth

    ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน

  • … ยังไม่ตรวจ

    คำอธิบายเครื่องมือไม่มีคำสั่งแอบแฝง

    รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต

เทียบกับตัวอื่นในหมวด การตลาดและโซเชียลi

  • ดาวมากกว่า 0% ของอีก 2982 ตัวในหมวดนี้
  • ส่งรุ่นใหม่เข้า registry ล่าสุดกว่า 69% ของอีก 2982 ตัวในหมวดนี้
  • ผลตรวจเบื้องต้นดีกว่าหรือเท่ากับ 100% ของอีก 2982 ตัวในหมวดนี้

เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo

คำถามที่พบบ่อย

JobSpy ปลอดภัยไหม?

จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น

ต้องใช้กุญแจหรือรหัสอะไรบ้าง?

registry ไม่ได้ระบุว่าต้องใช้กุญแจ แต่บางตัวจะขอให้ล็อกอินตอนใช้ครั้งแรก

ตัวนี้รันบนเครื่องหรือบนคลาวด์?

รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)

ยังมีคนดูแลอยู่ไหม?

repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (1.4.1) เข้า registry 15 วันที่ผ่านมา

ใช้กับโปรแกรมไหนได้บ้าง?

โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Python (uv) ในเครื่องด้วย

มีตัวไหนใช้แทนได้บ้าง?

ในหมวดเดียวกันมี MCP YouTube Transcript, Google Analytics MCP, BibiGPT YouTube Video Summarizer

ตัวที่ใช้แทนได้

server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว

อ่านการ์ด:★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi

MCP YouTube Transcript

โดย jkawamoto

An MCP server retrieving transcripts of YouTube videos

รันบนเครื่อง★ 495MITอัปเดต 10 วันที่ผ่านมา
ติดตั้ง

Google Analytics MCP

โดย surendranb

GA4 MCP server for AI agents: schema discovery, server-side aggregation, analysis-ready defaults.

รันบนเครื่อง★ 244MITอัปเดต 10 วันที่ผ่านมา
ติดตั้ง

AI video summarizer: summarize and transcribe YouTube, Bilibili, TikTok and podcast videos.

รันบนคลาวด์★ 137MITอัปเดต 10 วันที่ผ่านมา
ติดตั้ง

README จากผู้ทำ

เปิดอ่าน README

ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ

JobSpy is a job scraping library that aggregates jobs from popular job boards with one tool:

  • Scrapes job postings from LinkedIn, Indeed, Glassdoor, ZipRecruiter, Bayt, Naukri, BDJobs & HelloWork concurrently
  • Aggregates the job postings in a dataframe
  • Proxy support to bypass blocking

Installation

pip install -U python-jobspy

_Python version >= 3.10 required_

Usage

from jobspy import scrape_jobs

jobs = scrape_jobs( site_name=["indeed", "linkedin", "zip_recruiter", "glassdoor"], # also "bayt", "naukri", "bdjobs", "hellowork" search_term="software engineer", location="San Francisco, CA", results_wanted=20, hours_old=72, country_indeed="USA",

fetch_description=True, # read each job's page on boards whose search results have no description (slower)

proxies=["user:pass@host:port", "localhost"],

) print(f"Found {len(jobs)} jobs") print(jobs.head()) jobs.to_csv("jobs.csv", index=False)

Output

SITE           TITLE                             COMPANY           LOCATION                JOB_TYPE  INTERVAL  MIN_AMOUNT  MAX_AMOUNT  JOB_URL                                            DESCRIPTION

indeed Software Engineer AMERICAN SYSTEMS Arlington, VA, USA None yearly 150000 200000 https://www.indeed.com/viewjob?jk=5e409e577046... THIS POSITION COMES WITH A 10K SIGNING BONUS!... indeed Senior Software Engineer TherapyNotes.com Philadelphia, PA, USA fulltime yearly 110000 135000 https://www.indeed.com/viewjob?jk=da39574a40cb... About Us TherapyNotes is the national leader i... linkedin Software Engineer - Early Career Lockheed Martin Sunnyvale, CA, USA fulltime yearly None None https://www.linkedin.com/jobs/view/3693012711 Description:By bringing together people that u... linkedin Full-Stack Software Engineer Rain New York, NY, USA fulltime yearly None None https://www.linkedin.com/jobs/view/3696158877 Rain’s mission is to create the fastest and ea... zip_recruiter Software Engineer - New Grad ZipRecruiter Santa Monica, CA, USA fulltime yearly 130000 150000 https://www.ziprecruiter.com/jobs/ziprecruiter... We offer a hybrid work environment. Most US-ba... zip_recruiter Software Developer TEKsystems Phoenix, AZ, USA fulltime hourly 65 75 https://www.ziprecruiter.com/jobs/teksystems-0... Top Skills' Details• 6 years of Java developme...

Command line

The package installs a jobspy command whose options mirror the scrape_jobs() parameters below; jobspy -h lists them, the output fields and exit codes.

uv tool install python-jobspy

jobspy "software engineer" --site indeed,linkedin --location Chicago -n 20 jobspy nurse --site indeed,linkedin --hours-old 24 -o jobs.jsonl jobspy "data analyst" --remote --fields title,company,job_url

MCP server

mcp-jobspy is an MCP server that runs with uvx mcp-jobspy@latest. See mcp/README.md for setup, tools and proxies.

Standard config works for most clients:

{

"mcpServers": { "jobspy": { "command": "uvx", "args": ["mcp-jobspy@latest"] } } }

Parameters for scrape_jobs()

Optional

├── site_name (list|str): | linkedin, zip_recruiter, indeed, glassdoor, google, bayt, bdjobs, naukri, hellowork | (default is all) │ ├── search_term (str) | ├── google_search_term (str) | search term for google jobs. This is the only param for filtering google jobs. │ ├── location (str) │ ├── distance (int): | in miles, default 50 │ ├── job_type (str): | fulltime, parttime, contract, temporary, internship, perdiem, other, volunteer │ ├── proxies (list|str): | in format ['user:pass@host:port', 'localhost'], or a single proxy as a string | each job board scraper will round robin through the proxies | socks proxies on LinkedIn, Indeed and BDJobs need pip install "requests[socks]" | ├── is_remote (bool) │ ├── results_wanted (int): | number of job results to retrieve for each site specified in 'site_name' │ ├── easy_apply (bool): | filters for jobs that are hosted on the job board site | ├── user_agent (str): | override the default user agent which may be outdated │ ├── description_format (str): | markdown, html, plain (Format type of the job descriptions. Default is markdown.) │ ├── offset (int): | skips that many results (e.g. 25 skips the first 25 and starts from the 26th) │ ├── hours_old (int): | filters jobs by the number of hours since the job was posted | (Glassdoor filters by whole days, so it rounds up to the next day.) │ ├── verbose (int) {0, 1, 2}: | Controls the verbosity of the runtime printouts | (0 prints only errors, 1 is errors+warnings, 2 is all logs. Default is 1.) │ ├── fetch_description (bool): | for boards whose search results don't include the job description: fetches each job's | page for the description and other details (e.g. job type). Without it these are empty | for those boards. Adds one request per job, so use proxies for larger searches │ ├── linkedin_fetch_description (bool): | deprecated, use fetch_description (still works; removed in 2.0) │ ├── linkedin_company_ids (list[int]): | searches for linkedin jobs with specific company ids | ├── country_indeed (str): | filters the country on Indeed & Glassdoor (default is usa; see below for the names) | ├── enforce_annual_salary (bool): | converts wages to annual salary | ├── ca_cert (str) | path to CA Certificate file for proxies

Supported Countries for Job Searching

LinkedIn

LinkedIn searches globally & uses only the location parameter.

ZipRecruiter

ZipRecruiter searches for jobs in US/Canada & uses only the location parameter.

Indeed / Glassdoor

Indeed & Glassdoor support most countries, chosen with the country_indeed parameter (default usa). Additionally, use the location parameter to narrow down the location, e.g. city & state if necessary.

You can specify the following countries when searching on Indeed (use the exact name, * indicates support for Glassdoor):

Argentina*Australia*Austria*Bahrain
Belgium*Brazil*Canada*Chile
ChinaColombiaCosta RicaCzech Republic
DenmarkEcuadorEgyptFinland
France*Germany*GreeceHong Kong*
HungaryIndia*IndonesiaIreland*
IsraelItaly*JapanKuwait
LuxembourgMalaysia*Mexico*Morocco
Netherlands*New Zealand*NigeriaNorway
OmanPakistanPanamaPeru
PhilippinesPolandPortugalQatar
RomaniaSaudi ArabiaSingapore*South Africa
South KoreaSpain*SwedenSwitzerland*
TaiwanThailandTurkeyUkraine
United Arab EmiratesUK*USA*Uruguay
VenezuelaVietnam*
Bayt

Bayt searches all countries unless location names one it covers, e.g. "Dubai, UAE" or "Saudi Arabia".

BDJobs

BDJobs searches Bangladesh. location takes a division or district, e.g. "Dhaka" or "Chattogram Division".

Naukri

Naukri searches India. location takes a city, e.g. "Pune".

HelloWork

HelloWork searches France. location takes a French city, postcode or region, e.g. "Lyon". Most jobs are posted in French, so French search terms find more.

Notes

  • Indeed is the best scraper currently with no rate limiting.
  • Indeed's date_posted is the day a job was added to Indeed, the same date hours_old filters on.
  • Most job board endpoints are capped at around 1000 jobs on a given search.
  • LinkedIn rate limits bursts of requests with a 429, which clears within about a minute. Use proxies for larger searches.
  • Glassdoor rate limits above about 2 requests a second.

Frequently Asked Questions

Q: How do I tell a blocked board from one with no jobs? A: Failures and ignored options are logged as they happen, and the result's attrs carry the same messages so your code can read them:

jobs.attrs["errors"]    # {"linkedin": "response status code 429 (blocked: use a proxy)"}

jobs.attrs["warnings"] # {"bdjobs": ["job_type internship isn't supported, ignoring it"]}


Q: Why is Indeed giving unrelated roles? A: Indeed searches the description too.

  • use - to remove words
  • "" for exact match

Example of a good Indeed query

search_term='"engineering intern" software summer (java OR python OR c++) 2025 -tax -marketing'

This searches the description/title and must include software, summer, 2025, one of the languages, engineering intern exactly, no tax, no marketing.


Q: No results when using "google"? A: Google Jobs is currently unavailable.


Q: Received a response code 429? A: The board blocked you for sending too many requests. All of the job board sites are aggressive with blocking. We recommend:

  • Wait some time between scrapes (site-dependent).
  • Try using the proxies param to change your IP address.

JobPost Schema

JobPost

├── id ├── site ├── job_url ├── job_url_direct ├── title ├── company ├── location ├── date_posted ├── job_type: fulltime, parttime, internship, contract, temporary, ... ├── salary_source: direct_data, description (parsed from posting) ├── interval: yearly, monthly, weekly, daily, hourly ├── min_amount ├── max_amount ├── currency ├── is_remote ├── job_level ├── job_function ├── listing_type ├── emails ├── description ├── company_industry ├── company_url ├── company_logo ├── company_url_direct ├── company_addresses ├── company_num_employees ├── company_revenue ├── company_description ├── skills ├── experience_range ├── company_rating ├── company_reviews_count ├── vacancy_count

ตัดมาแค่ช่วงต้น อ่านต่อใน repo

ถาม PopNx