Cách thu thập thông tin từ các bảng việc làm bằng công cụ Agent của OpenAI
TL;DR
Đại lý "Operator" của người tiêu dùng OpenAI đã ngừng hoạt động vào ngày 31 tháng 8 năm 2025, và người kế nhiệm của nó, đại lý ChatGPT, cũng đã ngừng hoạt động để nhường chỗ cho ChatGPT Work vào tháng 7 năm 2026 — cả hai đều không phải là công cụ thu thập dữ liệu, và cả hai đều không cung cấp một API công khai mà bạn có thể gọi từ mã của riêng mình.
Đường dẫn thực tế có thể xây dựng cho "thu thập dữ liệu từ bảng việc làm bằng cách sử dụng đại lý OpenAI" là công cụ computer_use_preview trên mô hình computer-use-preview, được gọi thông qua API Responses — nó điều khiển một trình duyệt thực thông qua ảnh chụp màn hình và các hành động nhấp/chọn/cuộn thay vì đọc mã nguồn trang.
Trước khi tiếp cận tự động hóa trình duyệt, hãy kiểm tra xem bảng mục tiêu có chạy trên hệ thống theo dõi ứng viên (Greenhouse, Lever, Ashby) với nguồn dữ liệu việc làm JSON công khai, miễn phí, không xác thực hay không — nó trả về dữ liệu có cấu trúc trực tiếp và hoàn toàn bỏ qua vòng lặp đại lý.
Một đại lý sử dụng máy tính là công cụ phù hợp chỉ khi một bảng không có nguồn công khai và không có dữ liệu có cấu trúc JobPosting có thể truy cập trong HTML của trang, vì nó chậm hơn, tốn kém hơn cho mỗi trang và dễ bị hỏng hơn so với một yêu cầu HTTP trực tiếp.
Việc thu thập dữ liệu danh sách công việc có thể truy cập công khai đã được duy trì dưới Đạo luật Giả mạo và Lạm dụng Máy tính tại các tòa án Mỹ, nhưng Điều khoản dịch vụ của bảng cũng có thể tạo ra rủi ro vi phạm hợp đồng riêng biệt, và việc vượt qua sự phát hiện bot hoặc giới hạn tỷ lệ làm tăng rủi ro pháp lý đặc biệt theo luật chống lách luật.
Chuyển hướng lưu lượng truy cập trình duyệt xuất phát của đại lý qua một hồ bơi proxy dân cư xoay vòng để tránh bị chặn IP trung tâm dữ liệu, và chuẩn hóa đầu ra của mỗi bảng vào cùng một sơ đồ chia sẻ (tiêu đề, vị trí, URL, ngày đăng, mô tả) trước khi lưu trữ nó.
Giới thiệu
"OpenAI Operator" không còn đề cập đến một sản phẩm đang chạy. OpenAI đã phát hành Operator như một đại lý trình duyệt trong bản xem trước nghiên cứu vào ngày 23 tháng 1 năm 2025, bị giới hạn vào thời điểm ra mắt cho những người đăng ký ChatGPT Pro, và đã ngừng nó vào ngày 31 tháng 8 năm 2025 sau khi tích hợp khả năng của nó vào chế độ "đại lý ChatGPT" rộng hơn. Đại lý ChatGPT cũng không tồn tại lâu: trung tâm trợ giúp của OpenAI hiện đã tuyên bố rõ ràng rằng "đại lý ChatGPT không còn khả dụng. Sử dụng ChatGPT Work cho các nhiệm vụ dài hơn, nhiều bước và kết quả đã hoàn thành," theo , được ra mắt vào tháng 7 năm 2026 như bề mặt đại lý người tiêu dùng hiện tại.
Không sản phẩm nào trong ba sản phẩm đó — Operator, đại lý ChatGPT, hoặc ChatGPT Work — cung cấp một API công khai. Chúng là các tính năng giao diện trò chuyện mà bạn điều khiển bằng cách nhập một yêu cầu, không phải là thứ mà bạn có thể tích hợp vào một công việc định kỳ kéo các tin tuyển dụng vào cơ sở dữ liệu mỗi sáng. Nếu bạn muốn xây dựng một pipeline có thể lặp lại, phần liên quan của ngăn xếp OpenAI là công cụ sử dụng máy tính trong API Responses — một khả năng dành cho nhà phát triển thực hiện vai trò giống như Operator đã làm (nhìn vào một ảnh chụp màn hình, quyết định nơi nhấp hoặc nhập, và lặp lại), nhưng dưới dạng một API mà bạn gọi từ mã của riêng mình. Hướng dẫn này xây dựng một công cụ thu thập dữ liệu bảng việc làm dựa trên công cụ đó và rõ ràng suốt quá trình về khi đại lý trình duyệt đầy đủ là công cụ sai cho công việc.
Tại sao phải thu thập dữ liệu bảng việc làm
Các đội tuyển dụng và nghiên cứu thị trường thu thập dữ liệu việc làm có cấu trúc vì một vài lý do xảy ra thường xuyên: theo dõi tốc độ tuyển dụng của đối thủ theo phòng ban, chuẩn hóa lương bổng và lạm phát chức danh trong một lĩnh vực, cung cấp công cụ tìm nguồn tài năng với các yêu cầu mới, hoặc xây dựng một sản phẩm tìm kiếm việc làm theo chiều dọc tổng hợp các danh sách mà một công cụ tìm kiếm chung không thể đưa ra tốt. Tất cả những điều này cần ít nhất ba trường thông tin — tiêu đề, vị trí, và một liên kết ổn định trở lại nguồn — cộng với bất kỳ thông tin gì khác mà trường hợp sử dụng yêu cầu (ngày đăng, cấp bậc, đủ điều kiện làm việc từ xa, bậc lương khi được tiết lộ).
Một đại lý trình duyệt AI kiếm được chi phí của nó đặc biệt trên các bảng cung cấp danh sách thông qua JavaScript phía máy khách nặng nề, khóa phân trang thông qua một tương tác cuộn vô hạn, hoặc sử dụng tên lớp CSS thay đổi trên mỗi lần triển khai, vì đại lý lý luận dựa trên những gì nó thấy trên màn hình thay vì một bộ chọn cố định. Đây là công cụ sai cho một bảng đã trả lời với JSON có cấu trúc theo yêu cầu — trường hợp đó được đề cập trong phần tiếp theo, và nó vừa nhanh hơn vừa rẻ hơn so với việc điều khiển một trình duyệt.
Chọn phương pháp trích xuất đúng
Trước khi viết vòng lặp đại lý, hãy dành năm phút để kiểm tra xem bảng mục tiêu có làm điều này không cần thiết hay không. Hầu hết các trang nghề nghiệp đều nằm trên một trong số ít hệ thống theo dõi ứng viên (ATS), và một số trong những hệ thống lớn nhất — Greenhouse, Lever, Ashby — cung cấp một API JSON miễn phí, không xác thực trả về mọi danh sách mở cho một công ty nhất định. API Bảng Công việc công khai của Greenhouse, ví dụ, phục vụ GET https://boards-api.greenhouse.io/v1/boards/{board_token}/jobs mà không cần khóa API nào, trả về id, title, location, absolute_url, và updated_at cho mỗi thông báo, với tham số tùy chọn content=true thêm mô tả công việc đầy đủ. Nếu trang nghề nghiệp của một công ty được lưu trữ trên Greenhouse, thì điểm cuối đó vừa đáng tin cậy hơn vừa rẻ hơn rất nhiều so với bất kỳ đại lý nào.
Một sự thay thế thứ hai nằm ở một lớp phía dưới: nhiều trang đăng tuyển dụng — bao gồm những trang không chạy một ATS nổi tiếng nào — nhúng một khối schema.org/JobPosting dưới dạng JSON-LD trực tiếp trong HTML của trang, cụ thể bởi vì các bảng công việc muốn các danh sách của họ được nhận đúng bởi tính năng tìm kiếm việc làm của Google. JSON-LD đó có thể đọc được bởi máy móc mà không cần bất kỳ trình duyệt nào; một lệnh HTTP GET đơn giản và một trình phân tích HTML có thể khôi phục nó. Hãy sử dụng đại lý máy tính chỉ sau khi xác nhận rằng không có nguồn cấp ATS công khai nào hoặc dữ liệu cấu trúc nhúng tồn tại — đó là kịch bản mà trang thực sự tương tác (kết quả được trình duyệt khách-render, phân trang theo cuộn hoặc một biểu mẫu tìm kiếm cần được điền trước khi kết quả xuất hiện) và một tập lệnh chỉ yêu cầu URL không có gì hữu ích trở lại.
Nhìn Qua Nhanh
Khi một bảng không có nguồn cấp công khai nhưng cũng không cần tự động hóa tương tác hoàn toàn, Nstproxy Crawl có thể thực thi JavaScript của trang và trả về Markdown hoặc JSON sạch từ một cuộc gọi API duy nhất thay vì lập trình một đại lý trình duyệt.
Một tài khoản OpenAI với quyền truy cập vào Responses API và mô hình computer-use-preview — đây là khả năng phát triển riêng biệt từ các kế hoạch tiêu dùng của ChatGPT và được tính phí theo token ($3,00 cho 1 triệu token đầu vào, $12,00 cho 1 triệu token đầu ra tính đến thời điểm viết này) cộng với phí cho mỗi cuộc gọi công cụ; xác minh giá cả hiện tại trên trang giá của OpenAI trước khi lập ngân sách cho một lần chạy sản xuất.
Python 3.9+ với requests được cài đặt, hoặc một khách hàng HTTP tương đương trong ngôn ngữ bạn chọn.
Một cách để thực thi và chụp ảnh màn hình một trang trình duyệt và phiên dịch các hành động của mô hình trở lại thành các sự kiện đầu vào thực tế — hướng dẫn của OpenAI chỉ rõ Playwright là triển khai tham chiếu; các mẫu mã trong hướng dẫn này giả định một trình duyệt sử dụng Playwright.
Một hồ bơi proxy luân phiên cho bất kỳ lần chạy nào liên quan đến nhiều trang, vì một địa chỉ IP duy nhất thực hiện các yêu cầu tự động lặp đi lặp lại chính xác là mẫu mà việc phát hiện bot bảng công việc được định hình để bắt.
Năm phút với Điều khoản Dịch vụ và robots.txt của bảng mục tiêu — xem các Quan sát và giới hạn bên dưới trước khi chỉ định điều này cho một trang cụ thể.
Bước 1: Xác nhận không có nguồn cấp công khai nào để sử dụng thay thế
Bắt đầu bằng cách kiểm tra trang nghề nghiệp của công ty mục tiêu cho một mẫu ATS đã biết. Nếu URL trang nghề nghiệp chứa greenhouse.io, lever.co, hoặc chuyển hướng qua một trong những miền đó, hãy thử điểm cuối việc làm công khai của bảng trực tiếp:
Nếu điều đó trả về một mảng jobs, bạn đã hoàn tất việc lấy dữ liệu — bỏ qua bước 4 và chuẩn hóa phản hồi đó thay vì xây dựng một đại lý. board_token thường là tên lén của công ty như nó xuất hiện trong URL nghề nghiệp. Nếu điểm cuối trả về lỗi 404, công ty hoặc không có trên Greenhouse hoặc sử dụng một mã khác với tên thương hiệu công khai của nó, và rất đáng để thực hiện một kiểm tra thủ công nhanh về các yêu cầu mạng xuất hiện của trang (thông qua devtools của trình duyệt) cho một cuộc gọi API JSON trước khi kết luận rằng bạn cần một đại lý.
Bước 2: Thiết lập vòng lặp đại lý sử dụng máy tính
Nếu không có nguồn cấp nào tồn tại, hãy khởi tạo một cuộc gọi Responses API với công cụ computer_use_preview. Công cụ cần một display_width và display_height cố định phù hợp với bất kỳ viewport nào mà trình duyệt Playwright của bạn thực tế hiển thị, và một environment là "browser":
from openai import OpenAI
client = OpenAI()# đọc OPENAI_API_KEY từ môi trườngresponse = client.responses.create( model="computer-use-preview", tools=[{"type":"computer_use_preview","display_width":1024,"display_height":768,"environment":"trình duyệt",}],input=[{"role":"user","content":[{"type":"input_text","text":("Mở trang nghề nghiệp và liệt kê mọi tiêu đề công việc, ""địa điểm và URL đăng tuyển hiển thị mà không cần cuộn."),}],}], truncation="auto",)
Mô hình không thực hiện bất kỳ hành động nào — nó trả về một computer_call mô tả một hành động (một click tại tọa độ, một type với văn bản tĩnh, một scroll, và v.v.). Mã của bạn có trách nhiệm thực hiện hành động đó trong một trình duyệt thực tế qua Playwright, chụp ảnh màn hình mới và gửi lại dưới dạng computer_call_output để mô hình có thể quyết định bước tiếp theo:
call = response.output[0]# đối tượng computer_callaction = call.action # ví dụ: {"type": "click", "x": 512, "y": 384}run_action_in_playwright(action)# thực thi hành động, sau đó chụp ảnh màn hình mớinext_response = client.responses.create( model="computer-use-preview", previous_response_id=response.id, tools=[{"type":"computer_use_preview","display_width":1024,"display_height":768,"environment":"trình duyệt",}],input=[{"call_id": call.call_id,"type":"computer_call_output","output":{"type":"input_image","image_url":f"data:image/png;base64,{screenshot_base64}",},}], truncation="auto",)
Sự trao đổi này lặp lại — hành động, chụp màn hình, gửi, đọc hành động tiếp theo — cho đến khi một phản hồi quay lại không có computer_call, điều này báo hiệu mô hình tin rằng nhiệm vụ đã hoàn tất. Hình thức yêu cầu/đáp ứng này minh họa cho sơ đồ được tài liệu hóa hơn là một lần chạy được ghi lại chống lại một tài khoản OpenAI trực tiếp trong môi trường này; hãy coi tên biến và thứ tự chính xác của các trường là tùy thuộc vào tài liệu API hiện tại trước khi triển khai, vì computer-use-preview vẫn là một mô hình có nhãn xem trước.
Bước 3: Phân trang và duy trì trạng thái qua quá trình chạy
Các bảng công việc phân trang theo ba cách thông thường, và mỗi cách cần một điều kiện vòng lặp khác nhau: trang có số thứ tự với điều khiển "tiếp theo" (nhấp vào, chụp màn hình, lặp lại, dừng khi điều khiển biến mất), cuộn vô hạn (gửi hành động scroll, chụp màn hình, và dừng khi hai ảnh chụp liên tiếp không tạo ra danh sách mới), hoặc nút "tải thêm" (nhấp, chờ DOM mới được hiển thị, chụp màn hình). Bởi vì tác nhân chỉ thấy các pixel, hãy theo dõi việc loại bỏ trùng lặp ngoài mô hình: băm từng cặp tiêu đề-URL được trích xuất và bỏ qua bất cứ thứ gì bạn đã ghi lại, vì một tác nhân đọc lại một trang cuộn một phần sẽ báo cáo lại các bài đăng mà nó đã liệt kê.
Hạn chế mỗi lần chạy với một giới hạn trang cứng và một thời gian đồng hồ tường. Một vòng lặp sử dụng máy tính không có cảm giác tự động về "trang web này có 40 trang và quá nhiều" — giới hạn đó là trách nhiệm của mã của bạn, không phải của mô hình.
Bước 4: Chuẩn hóa thành một sơ đồ đầu ra ổn định
Cho dù dữ liệu đến từ đầu vào JSON ATS, một khối JSON-LD, hay bản sao của tác nhân, hãy đưa nó vào cùng một hình dạng trước khi lưu trữ:
{"id":"8077887","title":"Kỹ sư nền tảng dữ liệu","location":"Từ xa - Mỹ","url":"https://boards.example.com/jobs/8077887","updated_at":"2026-08-06T12:10:17-04:00","summary":"Xây dựng và duy trì các pipeline dữ liệu...","source":"greenhouse-api",# hoặc "jsonld" / "computer-use-agent"}
Đây là sự chuẩn hóa chạy chống lại một điểm cuối JSON trực tiếp trả về bố cục trường này — sử dụng một fixture cục bộ thay thế cho một máy chủ ATS thực tế, vì truy cập mạng outbound của môi trường này không đến được các miền bên ngoài tùy ý trực tiếp (sơ đồ đó đã được xác nhận trực tiếp chống lại API công cộng của Greenhouse):
Output: [{'id': 8077887, 'title': 'Kỹ sư nền tảng dữ liệu', 'location': 'Từ xa - Mỹ', ...}, {'id': 8077888, 'title': 'Kỹ sư Backend cấp cao, Tìm kiếm', 'location': 'New York, NY', ...}]
Tài liệu gốc:
This ran successfully against the local fixture with two sample listings, confirming the parsing logic against Greenhouse's real field names (id, title, location.name, absolute_url, updated_at, content) before you point it at a live board.
Step 5: Route requests through a rotating proxy pool
A single IP issuing dozens of automated requests to the same board in a short window is the exact signature bot-detection systems are tuned to flag, whether those requests come from a plain requests.get() loop or from the browser a computer-use agent is driving. For an ATS-feed approach, this means routing your HTTP client through a rotating pool; for a computer-use agent, it means launching Playwright with a proxy configured on the browser context itself so every page load — not just the API calls — comes from a residential IP that changes between sessions.
Nstproxy Residential Prime Proxies fit that role directly: they route traffic through real residential IPs across a large country pool, which reads to a job board's risk-control system as ordinary browsing traffic rather than concentrated datacenter requests. For teams whose real bottleneck is the extraction step itself rather than proxy IPs — pages that need JavaScript rendering, retries, and clean structured output without maintaining a Playwright/computer-use loop at all — Nstproxy Crawl is worth evaluating as a replacement for Steps 2 and 3 entirely on boards that don't strictly require interactive automation. Crawl:
Renders JavaScript and returns clean output — a single API call gets back Markdown, cleaned HTML, or a screenshot, without you standing up a browser process yourself.
Runs proxy-backed by default — every fetch goes through Nstproxy's own proxy infrastructure with browser-fingerprint handling, covering the IP-diversity problem this section is about.
Bills per successful fetch, not per attempt — a request that gets a real response (including a 404 or 403) is billable once; only a system-side failure to retrieve anything goes unbilled, which makes cost predictable across a batch of career pages.
Crawl doesn't currently do natural-language field extraction the way some competitors do — you still write the Step 4 normalization yourself against its returned Markdown or HTML — but it removes the browser-orchestration burden for any board where a computer-use agent would otherwise be overkill. The Crawl API reference covers the exact request and response shape for both single-page and site-level crawls, and Crawl's current subscription pricing bills per successful fetch rather than per attempt, which is worth checking against your expected page volume before committing to it over a self-hosted browser loop. Nstproxy's Crawl launch announcement covers the fuller feature set, including site-level crawling and multi-format output, if this specific use case grows beyond single career pages.
Observations and limits
A computer-use agent is slow and expensive relative to a direct request: every action costs a model round trip plus a full-resolution screenshot upload, so a 40-listing page with several scroll actions can run to dozens of API calls before you have all its data. Budget accordingly, and prefer the ATS-feed or JSON-LD path whenever either is available — reserve the agent for boards that genuinely require interactive navigation.
Legally, the ground here is more settled than it might feel. In hiQ Labs v. LinkedIn, the Ninth Circuit held — twice, on appeal and on remand — that scraping data a site has made publicly accessible does not violate the Computer Fraud and Abuse Act, because the CFAA targets unauthorized access to non-public systems, not automated collection of what anyone can already see in a browser. That does not make scraping risk-free: a board's own Terms of Service can independently prohibit automated collection, and violating that agreement creates separate breach-of-contract exposure even where no CFAA claim exists. A newer and arguably sharper risk sits in anti-circumvention law — Reddit's 2025 suit against Perplexity centers on DMCA § 1201 claims over circumventing rate limits, CAPTCHAs, and bot-detection systems specifically, which is a different legal theory than "was the data public." Read a target board's ToS before running any scraper against it, and treat "the site put up a CAPTCHA" as a signal to stop rather than a puzzle to solve.
Danh sách công việc cũng có thể chứa dữ liệu cá nhân — chẳng hạn như địa chỉ email trực tiếp hoặc số điện thoại của một nhà tuyển dụng được nêu tên gắn liền trong một bài đăng — điều này kích hoạt các nghĩa vụ bảo vệ dữ liệu thông thường (GDPR giữa chúng) bất kể trang đó có công khai hay không. Lưu trữ chi tiết liên lạc của quản lý tuyển dụng theo quy mô mà không có cơ sở pháp lý cho việc sử dụng cụ thể đó là một hoạt động khác biệt về mặt vật chất so với việc lưu trữ tiêu đề công việc và địa điểm, và quy trình này không nên dễ dàng vượt qua ranh giới đó bằng cách thu thập nhiều nội dung của một bài đăng hơn mức cần thiết cho một trường hợp sử dụng thực tế.
Markup và cấu trúc trang trên bất kỳ bảng nào cũng sẽ thay đổi mà không cần thông báo, và một phương pháp dựa trên tác nhân chịu đựng điều đó tốt hơn một kịch bản chọn lựa CSS dễ gãy — nhưng cả hai phương pháp đều suy giảm nếu một bảng thay đổi nhà cung cấp ATS hoặc thiết kế lại trang nghề nghiệp của mình, vì vậy hãy ngân sách cho việc xác minh lại theo định kỳ thay vì một quy trình "đặt và quên".
Kết luận
"Scraping với OpenAI Operator" mô tả một sản phẩm đã không còn tồn tại; sự tương đương thực sự, có thể xây dựng được ngày nay là công cụ computer_use_preview trên mô hình computer-use-preview của OpenAI, được gọi thông qua API Responses và kết hợp với tự động hóa trình duyệt của bạn. Hãy tiếp cận nó chỉ sau khi loại bỏ một nguồn cấp ATS công khai hoặc dữ liệu có cấu trúc JobPosting được nhúng, vì cả hai đều nhanh hơn, rẻ hơn và ổn định hơn so với việc điều khiển một trình duyệt. Bất kỳ phương pháp trích xuất nào bạn chọn, hãy chuẩn hóa đầu ra vào một lược đồ duy nhất, giới hạn phân trang một cách rõ ràng, định tuyến lưu lượng qua một bể proxy dân cư hoặc một API hiển thị như Nstproxy Crawl để tránh các chặn dựa trên IP, và đọc các Điều khoản Dịch vụ của bảng mục tiêu trước khi chỉ định bất kỳ thứ gì tự động đến đó.
FAQ
Q: OpenAI Operator có còn khả dụng để thu thập dữ liệu từ các bảng công việc không?
Không. Operator đã ngừng hoạt động vào ngày 31 tháng 8 năm 2025. Người kế nhiệm của nó, ChatGPT agent, cũng đã được nghỉ hưu — trung tâm trợ giúp của OpenAI hiện hướng dẫn người dùng đến ChatGPT Work. Cả Operator, ChatGPT agent, và ChatGPT Work đều không cung cấp một API công khai; sự tương đương có thể xây dựng được cho một quy trình tùy chỉnh là công cụ computer_use_preview trên mô hình computer-use-preview trong API Responses.
Q: Tôi có cần một tác nhân sử dụng máy tính cho mỗi bảng công việc không?
Không. Kiểm tra trước xem bảng đó có chạy trên một ATS với nguồn cấp JSON công khai (Greenhouse, Lever, và Ashby đều cung cấp) hoặc nhúng dữ liệu có cấu trúc schema.org/JobPosting trực tiếp trong HTML trang hay không. Cả hai đều nhanh hơn, rẻ hơn, và ổn định hơn so với việc điều khiển một trình duyệt, và một tác nhân sử dụng máy tính chỉ xứng đáng với chi phí và độ trễ bổ sung khi không có cái nào.
Q: Việc thu thập dữ liệu từ các danh sách công việc công khai có hợp pháp không?
Các tòa án Mỹ đã giữ quan điểm, trong vụ hiQ Labs kiện LinkedIn, rằng việc thu thập dữ liệu mà một trang web công khai dễ dàng truy cập không vi phạm Đạo luật Gian lận và Lạm dụng Máy tính chỉ bằng chính bản thân nó. Điều đó không loại bỏ mọi rủi ro pháp lý: Điều khoản Dịch vụ của một bảng có thể riêng biệt cấm thu thập tự động như một vấn đề hợp đồng, và việc vượt qua giới hạn tốc độ hoặc phát hiện bot làm tăng nguy cơ vi phạm chống vượt qua. Đọc Điều khoản Dịch vụ cụ thể của bảng trước khi thu thập dữ liệu từ nó, và coi đó là quyết định theo từng trang thay vì một thực tế pháp lý chung.
Q: Điều gì xảy ra nếu một bảng công việc thay đổi bố cục trang?
Một tác nhân sử dụng máy tính chịu đựng các thay đổi về bố cục và markup tốt hơn một kịch bản chọn lựa CSS cố định, vì nó lập luận dựa trên những gì hiển thị trên màn hình thay vì một con đường DOM cụ thể. Nó không chịu đựng sự di chuyển ATS hoặc thiết kế lại toàn bộ trang một cách dễ dàng — hãy ngân sách cho việc xác minh lại định kỳ logic trích xuất của bạn bất kể phương pháp nào bạn sử dụng.
Q: Có thể xử lý bao nhiêu trang hoặc danh sách một lần?
Đặt một số lượng trang rõ ràng và thời gian chờ đồng hồ trong mã của riêng bạn; cả phương pháp ATS-feed và vòng lặp sử dụng máy tính đều không tự thi hành một điểm dừng hợp lý. Đối với vòng lặp tác nhân cụ thể, cũng nên loại bỏ các danh sách đã trích xuất dựa trên tiêu đề và URL, vì việc cuộn lại một trang đã đọc một phần có thể khiến mô hình báo cáo lại những mục đã tìm thấy trước đó.
Q: Quy trình này có cần một proxy để hoạt động không?
Không — mã trong hướng dẫn này chạy mà không cần proxy. Một bể proxy trở nên cần thiết khi bạn thực hiện các yêu cầu tự động lặp lại đến cùng một bảng trong một khoảng thời gian ngắn, đó là mẫu mà phần lớn phát hiện bot của bảng công việc được điều chỉnh để đánh dấu bất kể những yêu cầu đó đến từ một client HTTP đơn giản hay một trình duyệt mà một tác nhân sử dụng máy tính đang điều khiển.
Q: Phương pháp này có thể trích xuất thông tin lương và liên hệ từ các danh sách không?
Về mặt kỹ thuật, có, nếu dữ liệu đó xuất hiện trên trang. Hãy xử lý nó cẩn thận: email hoặc số điện thoại của nhà tuyển dụng trong một bài đăng là dữ liệu cá nhân tuân theo các quy tắc bảo vệ dữ liệu thông thường (bao gồm cả GDPR) ngay cả khi trang đó công khai, vì vậy chỉ thu thập và lưu trữ các trường mà trường hợp sử dụng thực tế của bạn cần.
Xây dựng một trình tạo luồng công việc trực quan mã nguồn mở thực sự cho các tác nhân AI: một canvas React Flow kết hợp với một engine thực thi sắp xếp topo được xác minh, đã được kiểm tra từ đầu đến cuối với đầu ra thực tế đã được thu nhận.
Ivy Lin
Aug. 24th 2026
110M+ IP that voi ti le truy cap thanh cong 99.9%
Phan hoi trung binh ~0.5s cho tac vu dong thoi cao
Chi tu $0.1/GB
Truy cap ngay cac pool proxy residential, datacenter, IPv6 va ISP cao cap.