Báo cáo công việc tuần

Chic Data — Tổng kết tuần

Giai đoạn: 20/07 (chiều) – 27/07/2026 · Tổng hợp từ lịch sử Git, thư mục làm việc chưa commit, các bản thiết kế/QC và số liệu vận hành truy vấn trực tiếp từ DB
Người thực hiện: jc-hello
Ngày lập: 27/07/2026
Phạm vi: 3 dự án

Tổng quan tuần

Tuần này có ba trục — và trục nào cũng là bước mở rộng quy mô dữ liệu chứ không chỉ vá lỗi:

5.244
địa điểm BD confirm trong tuần vận hành
9.914
địa điểm được enrich trong tuần
4
tỉnh/thành mới đưa vào crawl
5
sàn OTA đã giải mã cho ChicStay
Lưu ý về cách đọc báo cáo: khác với các tuần trước, phần lớn công việc tuần này chưa được commit — nằm ở thư mục làm việc, các nhánh riêng, hoặc trạng thái "code xong, chờ deploy". Vì vậy báo cáo lấy mốc theo kết quả & sản phẩm bàn giao (số liệu vận hành, bản phát hành, bản thiết kế đã verify) thay vì đếm số commit.

1. Số liệu vận hành — đội BD tăng tốc mạnh

Số liệu lấy trực tiếp từ DB ngày 27/07 (đã lọc địa điểm còn hiệu lực):

41.766
tổng địa điểm trong kho +9.073 tuần
18.536
đã enrich (đủ điều kiện confirm)
13.882
đã được BD confirm
75%
tiến độ confirm trên số đã enrich

Địa điểm BD confirm theo ngày:

30120/07
26721/07
25122/07
1.18923/07
1.27124/07
1.12125/07
52526/07
31927/07

Tổng tuần 5.244 địa điểm (trung bình ~655/ngày, so với ~431/ngày tuần trước). Ba ngày 23–25/07 tăng vọt lên ~1.100–1.270/ngày — gấp khoảng 4 lần đầu tuần.

Vì sao đột biến giữa tuần đáng chú ý: mức nhảy từ ~260 lên hơn 1.200 confirm/ngày trùng đúng thời điểm bật công cụ nhập cộng tác viên hàng loạt (mục 3.2) — nhiều khả năng là đội BD/CTV được onboard thêm và bảng phễu mới giúp phân việc rõ ràng. Nên xác nhận lại với đội nguyên nhân chính xác để biết mức ~1.200/ngày có duy trì được không, hay chỉ là đợt dọn tồn.

1.1 Nguồn enrich: engine nội bộ đã thành nguồn chính

Tuần trước engine nghiên cứu nội bộ mới ở chế độ bật thử tuỳ chọn, mặc định vẫn chạy Perplexity. Tuần này đã bật rộng: trong tổng số địa điểm đã enrich, chic_research (engine nội bộ) ~9.094 so với Perplexity chỉ 781 — engine tự làm chủ giờ đảm nhận phần lớn khối lượng.

Đã enrich trong tuần: 9.914 địa điểm (cao điểm 23/07: 3.485). Enrich tạm dừng 2 ngày 26–27/07 khi dồn lực cho crawl (26–27/07 tạo mới tới 3.060 và 2.127 địa điểm/ngày — chính là đợt đẩy crawl tỉnh mới).

2. chicgo_data — Mở rộng 4 tỉnh & chốt bản phát hành 3.048

2.1 Crawl thêm 4 tỉnh: Huế, Đà Nẵng, Quảng Ninh, Hải Phòng code xong · chờ deploy

Mục tiêu: mở rộng crawl ra 4 tỉnh mới bằng đúng bộ công thức từ khoá đang dùng cho HCM/HN, chạy trên một dịch vụ Railway riêng để không ảnh hưởng crawler HCM đang chạy.

Vấn đề gốc đã xử lý: cơ chế cô lập thành phố cũ dựa trên một khoá "tạm dừng toàn cục" — nếu bật crawler thứ hai, hai crawler sẽ giành/khoá hàng đợi của nhau làm lệch dữ liệu, nên trước đây không thể chạy song song an toàn.

Rủi ro khi deploy Crawler HCM đang chạy vẫn là code cũ có "khoá toàn cục". Bắt buộc redeploy crawler HCM sang code mới trước/cùng lúc với việc bật dịch vụ tỉnh — nếu không, khoá cũ của nó sẽ tạm dừng hàng đợi 4 tỉnh và lại làm lệch dữ liệu.

2.2 Bản phát hành 3.048 địa điểm & báo cáo QC hạng A− chốt dữ liệu

Từ bản 3.053 chạy thêm một vòng gộp trùng (theo khoảng cách ≤120m + so tên mờ) ra bản sạch 3.048 địa điểm / 32.910 đánh giá, kèm báo cáo QC dạng HTML tự sinh.

Tiêu chí QCKết quảGhi chú
Tên / địa chỉ / URL / toạ độ / danh mục100%Toạ độ đều nằm trong VN; 0 trùng ID, 0 trùng tên+địa chỉ
BD pass3.034 / 3.048 (99,5%)Điểm BD trung bình 85,7/100
Ảnh48.091 (15,8/điểm)Chỉ 3 điểm không ảnh; 0 URL còn trỏ về Google (đã lên R2)
Đánh giá đã dịch tiếng Việt94,3%Trên 32.910 đánh giá
Có giá82,5%Thiếu 534 (dồn ở concept store & spa/beauty)
Phát hiện QC cần xử lý: sau khi đổi nhà cung cấp nghiên cứu (bỏ Perplexity sang engine nội bộ), thang chấm điểm BD vẫn tính 0 điểm cho "nguồn nghiên cứu" trên toàn bộ dữ liệu — dù 2.926 địa điểm thực tế có nguồn. Cần cập nhật lại thang điểm để ghi nhận nguồn của engine mới. Ngoài ra các trường marketing (giới thiệu 8,2%, vibe/gợi ý vibe gần như trống) còn yếu.

2.3 Dọn dữ liệu & công cụ mới

3. chicdata_dashboard — Bảng phễu, onboard CTV hàng loạt & nền ChicStay

3.1 Bảng phễu (funnel) trên thanh BD Confirm

Trước đây chỉ có một con số "đã confirm X/Y" tính ở phía trình duyệt và thay đổi mỗi khi lọc tỉnh/danh mục — khó lấy làm mốc. Nay thay bằng ba con số cố định toàn hệ thống, đứng yên dù lọc gì bên dưới:

Kết quả được cache 30 giây phía máy chủ nên nhẹ cho DB. Đã sửa lỗi đếm sai "BD pass": trước đây đếm theo một trường cũ không bao giờ mang giá trị "rejected" nên đếm dư (cái gì cũng thành "verified"); nay đếm đúng cột quyết định thủ công của BD.

3.2 Nhập cộng tác viên (CTV) hàng loạt từ Excel tăng tốc onboard đội

Vấn đề: CTV lâu nay phải thêm từng người một qua form, trong khi đội giữ sẵn một file Excel danh sách CTV (tên, Gmail, SĐT Zalo, số & tên ngân hàng, chủ tài khoản). Onboard theo đợt rất mất công.

3.3 Nền dữ liệu ChicStay trong dashboard backend

Dựng lớp API chỉ-đọc để đưa dữ liệu chỗ ở crawl từ OTA (homestay / theo giờ / theo "gu") vào dashboard — nối với dự án chicstay-data ở mục 4. Kết nối tới DB chicstay riêng (cùng máy chủ, khác tên DB) qua một pool mới.

4. chicstay-data — Đường ống dữ liệu OTA cho ChicStay — dự án mới

Dự án mới phục vụ ChicStay — nền tảng đặt phòng hướng tới Gen Z, tập trung vào "phòng có gu" (phòng theo chủ đề/thẩm mỹ) và đặt theo giờ cho homestay/căn hộ. Tuần này dựng phần thu thập & mô hình hoá dữ liệu: giải mã cách các sàn OTA lớn trả dữ liệu rồi tái hiện lại để lấy thông tin chỗ ở/phòng/giá/đánh giá.

Kết quả chính: đã giải mã trọn quy trình lấy dữ liệu của 5 sàn OTA (tìm kiếm → chi tiết → phòng → đánh giá), mỗi sàn có một "trình lái" chạy bằng Chrome thật (Playwright), tài liệu quy trình và kho request/response mẫu thực tế. Đây là nền để về sau crawl diện rộng dữ liệu chỗ ở cạnh tranh & nguồn cho ChicStay.
Sàn OTACách lấy dữ liệuChống bot
Booking.comToàn bộ đi qua 1 địa chỉ GraphQL, phân biệt bằng tên thao tác (tìm kiếm, chi tiết, tiện ích, đánh giá…); trang tìm kiếm đã kèm sẵn giá + phòng + toạ độ + tóm tắt đánh giáChỉ AWS WAF, không thấy captcha
TravelokaAPI REST: danh sách, chi tiết, phòng, đánh giáDataDome (chặn headless + vào link sâu)
AgodaGraphQL tìm kiếm theo thành phố + REST bảng phòng & đánh giáKhông chặn cứng; nhiều popup
Trip.comAPI nội bộ Ctrip: danh sách, chi tiết, phòng, bình luậnThỉnh thoảng bắt đăng nhập
AirbnbGraphQL: tìm kiếm (132 chỗ/lần), chi tiết, lịch giá 12 tháng, đánh giáKhông chặn cứng

Việc tiếp theo