Commit 108f7e4e by Mai Hoang Thai Ha

Merge branch 'Task/8_create_top_page_ID1' into…

Merge branch 'Task/8_create_top_page_ID1' into 'Task/9_create_city_list_page_ID2/industry_list_page_ID3'

Task/8 create top page id1

See merge request !8
parents c7c696ea 5e581a61
...@@ -57,3 +57,6 @@ end ...@@ -57,3 +57,6 @@ end
# Windows does not include zoneinfo files, so bundle the tzinfo-data gem # Windows does not include zoneinfo files, so bundle the tzinfo-data gem
gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby] gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]
gem 'slim-rails', '~> 3.2' gem 'slim-rails', '~> 3.2'
gem 'nokogiri', '~> 1.11', '>= 1.11.7'
gem 'httparty', '~> 0.18.1'
gem 'rubocop-rails', '~> 2.11', '>= 2.11.3'
\ No newline at end of file
...@@ -62,6 +62,7 @@ GEM ...@@ -62,6 +62,7 @@ GEM
zeitwerk (~> 2.3) zeitwerk (~> 2.3)
addressable (2.8.0) addressable (2.8.0)
public_suffix (>= 2.0.2, < 5.0) public_suffix (>= 2.0.2, < 5.0)
ast (2.4.2)
bindex (0.8.1) bindex (0.8.1)
bootsnap (1.7.5) bootsnap (1.7.5)
msgpack (~> 1.0) msgpack (~> 1.0)
...@@ -83,6 +84,9 @@ GEM ...@@ -83,6 +84,9 @@ GEM
ffi (1.15.3) ffi (1.15.3)
globalid (0.4.2) globalid (0.4.2)
activesupport (>= 4.2.0) activesupport (>= 4.2.0)
httparty (0.18.1)
mime-types (~> 3.0)
multi_xml (>= 0.5.2)
i18n (1.8.10) i18n (1.8.10)
concurrent-ruby (~> 1.0) concurrent-ruby (~> 1.0)
jbuilder (2.11.2) jbuilder (2.11.2)
...@@ -97,6 +101,9 @@ GEM ...@@ -97,6 +101,9 @@ GEM
mini_mime (>= 0.1.1) mini_mime (>= 0.1.1)
marcel (1.0.1) marcel (1.0.1)
method_source (0.9.2) method_source (0.9.2)
mime-types (3.3.1)
mime-types-data (~> 3.2015)
mime-types-data (3.2021.0704)
mini_mime (1.1.0) mini_mime (1.1.0)
minitest (5.14.4) minitest (5.14.4)
msgpack (1.4.2) msgpack (1.4.2)
...@@ -104,6 +111,9 @@ GEM ...@@ -104,6 +111,9 @@ GEM
nio4r (2.5.7) nio4r (2.5.7)
nokogiri (1.11.7-x86_64-linux) nokogiri (1.11.7-x86_64-linux)
racc (~> 1.4) racc (~> 1.4)
parallel (1.20.1)
parser (3.0.2.0)
ast (~> 2.4.1)
pry (0.12.2) pry (0.12.2)
coderay (~> 1.1.0) coderay (~> 1.1.0)
method_source (~> 0.9.0) method_source (~> 0.9.0)
...@@ -148,11 +158,29 @@ GEM ...@@ -148,11 +158,29 @@ GEM
method_source method_source
rake (>= 0.13) rake (>= 0.13)
thor (~> 1.0) thor (~> 1.0)
rainbow (3.0.0)
rake (13.0.3) rake (13.0.3)
rb-fsevent (0.11.0) rb-fsevent (0.11.0)
rb-inotify (0.10.1) rb-inotify (0.10.1)
ffi (~> 1.0) ffi (~> 1.0)
regexp_parser (2.1.1) regexp_parser (2.1.1)
rexml (3.2.5)
rubocop (1.18.3)
parallel (~> 1.10)
parser (>= 3.0.0.0)
rainbow (>= 2.2.2, < 4.0)
regexp_parser (>= 1.8, < 3.0)
rexml
rubocop-ast (>= 1.7.0, < 2.0)
ruby-progressbar (~> 1.7)
unicode-display_width (>= 1.4.0, < 3.0)
rubocop-ast (1.7.0)
parser (>= 3.0.1.1)
rubocop-rails (2.11.3)
activesupport (>= 4.2.0)
rack (>= 1.1)
rubocop (>= 1.7.0, < 2.0)
ruby-progressbar (1.11.0)
rubyzip (2.3.2) rubyzip (2.3.2)
sass-rails (6.0.0) sass-rails (6.0.0)
sassc-rails (~> 2.1, >= 2.1.1) sassc-rails (~> 2.1, >= 2.1.1)
...@@ -191,6 +219,7 @@ GEM ...@@ -191,6 +219,7 @@ GEM
turbolinks-source (5.2.0) turbolinks-source (5.2.0)
tzinfo (2.0.4) tzinfo (2.0.4)
concurrent-ruby (~> 1.0) concurrent-ruby (~> 1.0)
unicode-display_width (2.0.0)
web-console (4.1.0) web-console (4.1.0)
actionview (>= 6.0.0) actionview (>= 6.0.0)
activemodel (>= 6.0.0) activemodel (>= 6.0.0)
...@@ -219,6 +248,7 @@ DEPENDENCIES ...@@ -219,6 +248,7 @@ DEPENDENCIES
bootsnap (>= 1.4.4) bootsnap (>= 1.4.4)
byebug byebug
capybara (>= 3.26) capybara (>= 3.26)
httparty (~> 0.18.1)
jbuilder (~> 2.7) jbuilder (~> 2.7)
listen (~> 3.3) listen (~> 3.3)
mysql2 (~> 0.5) mysql2 (~> 0.5)
...@@ -227,6 +257,7 @@ DEPENDENCIES ...@@ -227,6 +257,7 @@ DEPENDENCIES
puma (~> 5.0) puma (~> 5.0)
rack-mini-profiler (~> 2.0) rack-mini-profiler (~> 2.0)
rails (~> 6.1.3, >= 6.1.3.2) rails (~> 6.1.3, >= 6.1.3.2)
rubocop-rails (~> 2.11, >= 2.11.3)
sass-rails (~> 6.0) sass-rails (~> 6.0)
selenium-webdriver selenium-webdriver
slim-rails (~> 3.2) slim-rails (~> 3.2)
......
=> #<Job:0x00007f490830e500
=> #<Job:0x00007f490830e500
id: 1,
title: "[Hà Nội] - CHUYÊN GIA TƯ VẤN BẢO HIỂM KHÁCH HÀNG ƯU TIÊN - Kênh Liên Kết Ngân Hàng Techcombank (Bancassurance)",
type: nil,
salary: "18 Tr - 28 Tr VND",
experience: "1 - 2 Năm",
position: "Nhân viên",
expiration_date: Sun, 15 Aug 2021 00:00:00.000000000 UTC +00:00,
description:
"MÔ TẢ CÔNG VIỆC: Bancassurance là kênh hợp tác giữa tập đoàn bảo hiểm nhân thọ Manulife và ngân hàng Techcombank.Chuyên Gia Bảo Hiểm (TIS) làm việc tại ngân hàng Techcombank, phụ trách các công việc sau: Khai thác nguồn khách hàng tiềm năng và chất lượng từ ngân hàng, Techcombank tăng trung bình 150.000 khách hàng mới/tháng nhờ hệ thống Digital Banking & Zero free. TIS nhận thông tin giới thiệu khách hàng tiềm năng từ các lực lượng Quan hệ khách hàng ưu tiên (PRM) để tư vấn các sản phẩm bảo hiểm phù hợp với nhu cầu tài chính của từng khách hàng. Được refer nguồn khách hàng tiềm năng từ toàn bộ các lực lượng bán: GDV, CSO, RBO, SRBO, PRM để tư vấn sản phảm bảo hiểm đầu tư Hỗ trợ khách hàng hoàn thiện bộ hồ sơ bảo hiểm theo đúng quy định của Manulife và Techcombank Là đầu mối chính chăm sóc, hỗ trợ khi khách hàng cần được giải đáp thắc mắc về các vấn đề liên quan đến bảo hiểm, xây dựng mối quan hệ tốt đẹp với Khách hàng ĐỊA ĐIỂM & THỜI GIAN LÀM VIỆC Địa điểm: Siêu chi nhánh/chi nhánh lớn của Ngân hàng trên toàn quốc Thời gian làm việc: 8h30 – 17h30, thứ 2 – thứ 6, & sáng thứ 7 QUYỀN LỢI: Lương cơ bản: 18.000.000 – 28.000.000/tháng, được xét tăng lương hàng năm theo kết quả xếp loại. Thu nhập TIS luôn cạnh tranh so với thị trường. Được ký Hợp đồng lao động, là nhân viên chính thức của Techcombank (Hưởng lương tháng 13, thưởng hiệu quả công việc và các quyền lợi khác như: Chương trình vay ưu đãi, Bảo hiểm sức khỏe Aeon, chế độ 15 ngày phép/năm, khám sức khỏe định kì ...) Thưởng kinh doanh hấp dẫn theo quý căn cứ trên hiệu quả công việc, Mức thưởng từ 24-96 triệu đồng/tháng. Được hướng dẫn, đào tạo thường xuyên bởi Giám đốc bảo hiểm vùng, Giám đốc kinh doanh vùng (Manulife), Giám đốc chi nhánh…. Được hỗ trợ tối đa bởi các TIA (Admin) trước/trong/sau quá trình bán hàng, giúp Chuyên Gia Bảo Hiểm tập trung vào tư vấn sản phẩm cho khách hàng. Cơ hội thăng tiến lên vị trí Quản Lí Quan Hệ Khách Hàng Ưu Tiên/ Giám Đốc Dịch Vụ/ Giám Đốc Chi Nhánh hoặc các vị trí đào tạo bán/ phát triển sản phẩm bảo hiểm tại Hội sở. Được làm việc tại Techcombank, là nơi làm việc chuyên nghiệp với: Mức tăng trưởng ấn tượng: Ngân hàng TMCP số 1 tại Việt Nam về lợi nhuận trong 5 năm liên tiếp Môi trường làm việc gắn kết với các hoạt động teambuilding hàng năm, sinh nhật, các câu lạc bộ ngoài giờ, Year-end Party…",
benefit:
"[\"Chế độ bảo hiểm\", \"Du Lịch\", \"Phụ cấp\", \"Du lịch nước ngoài\", \"Đồng phục\", \"Chế độ thưởng\", \"Chăm sóc sức khỏe\", \"Đào tạo\", \"Tăng lương\", \"Công tác phí\", \"Phụ cấp thâm niên\", \"Nghỉ phép năm\", \"CLB thể thao\"]",
requirement:
"KINH NGHIỆM/KỸ NĂNG CHI TIẾT Trình độ học vấn: Tốt nghiệp Cao đẳng/Đại học (Ưu tiên chuyên ngành Bảo hiểm, ngân hàng, Kinh tế, tài chính, quản trị kinh doanh.......) Có tối thiểu 1 năm kinh nghiệm tư vấn trong lĩnh vực tư vấn Bảo hiểm nhân thọ và 1 năm kinh nghiệm sales Tài chính/Ngân hàng. Đã có kinh nghiệm trong mảng Ngân hàng/Dịch vụ Khách hàng ưu tiên là lợi thế. Am hiểu về các sản phẩm bảo hiểm và về khách hàng cá nhân hoặc khách hàng doanh nghiệp Kỹ năng: Kĩ năng tư vấn, thuyết phục và khai thác nhu cầu của khách hàng Kỹ năng phát triển mối quan hệ với khách hàng Có tinh thần học hỏi, quan tâm gắn bó và phát triển lâu dài với Techcombank",
other_info: "[\"Bằng cấp: Cao đẳng\", \"Độ tuổi: Không giới hạn tuổi\"]",
company_id: 1,
created_at: Thu, 15 Jul 2021 05:51:56.429636000 UTC +00:00,
updated_at: Thu, 15 Jul 2021 05:51:56.429636000 UTC +00:00>
...@@ -75,3 +75,127 @@ footer { ...@@ -75,3 +75,127 @@ footer {
} }
} }
} }
// Top page
// search
// latest-job
.latest-job {
h2 {
margin-bottom: 30px;
}
h2::after {
content: "";
display: block;
border-bottom: 1px solid rgba(0, 0, 0, 0.3);
}
.job-item {
font-size: 14px;
.job-title {
text-decoration: none;
color: black;
font-size: 20px;
font-weight: 500;
}
.job-caption {
line-height: 18px;
.job-company {
text-decoration: none;
font-size: 14px;
color: $gray-700;
}
.job-salary {
color: #008563;
margin: 0;
}
.job-locations {
ul {
list-style: none;
margin: 0 0 6px 0;
padding: 0;
color: $gray-700;
}
}
.job-desc {
overflow: hidden;
text-overflow: ellipsis;
line-height: 18px;
-webkit-line-clamp: 2;
height: 36px;
display: -webkit-box;
-webkit-box-orient: vertical;
}
}
}
.job-item::after {
content: "";
display: block;
margin-top: 10px;
border-bottom: 1px solid rgba(0, 0, 0, 0.3);
}
.job-item:last-child::after{
border-bottom: none;
}
}
// top_cities
.top_cities {
h2 {
margin-bottom: 30px;
}
h2::after {
content: "";
display: block;
border-bottom: 1px solid rgba(0, 0, 0, 0.3);
}
.city-item {
margin-bottom: 12px;
a {
font-size: 18px;
text-decoration: none;
color: #287ab9;
margin: 10px 0;
}
}
.all-cities-btn {
color: #287ab9;
font-size: 20px;
text-decoration: none;
}
.all-cities-btn:hover {
text-decoration: underline;
}
}
// top_industries
.top_industries {
h2 {
margin-bottom: 30px;
}
h2::after {
content: "";
display: block;
border-bottom: 1px solid rgba(0, 0, 0, 0.3);
}
.industry-item {
margin-bottom: 12px;
a {
font-size: 18px;
text-decoration: none;
color: #287ab9;
margin: 10px 0;
}
}
.all-industries-btn {
color: #287ab9;
font-size: 20px;
text-decoration: none;
}
.all-industries-btn:hover {
text-decoration: underline;
}
}
\ No newline at end of file
class TopController < ApplicationController class TopController < ApplicationController
def index def index
@latest_jobs = Job.order(updated_at: :desc).limit(5)
@top_cities = City.all.map { |city| [city, city.jobs.count] }.sort_by(&:second).reverse.take(9)
@top_industries = Industry.all.map { |industry| [industry, industry.jobs.count] }.sort_by(&:second).reverse.take(9)
end end
end end
module ApplicationHelper module ApplicationHelper
def full_title(page_title = '')
base_title = 'VenJob'
if page_title.empty?
base_title
else
page_title + " | " + base_title
end
end
end end
...@@ -2,8 +2,7 @@ doctype html ...@@ -2,8 +2,7 @@ doctype html
html html
head head
title title
| hi =full_title(yield(:title))
- # <%= full_title(yield(:title))
meta[name="viewport" content="width=device-width,initial-scale=1" charset="utf-8"] meta[name="viewport" content="width=device-width,initial-scale=1" charset="utf-8"]
= csrf_meta_tags = csrf_meta_tags
= csp_meta_tag = csp_meta_tag
...@@ -12,6 +11,6 @@ html ...@@ -12,6 +11,6 @@ html
= render 'layouts/shim' = render 'layouts/shim'
body body
= render 'layouts/header' = render 'layouts/header'
.container .container-fluid
= yield = yield
= render 'layouts/footer' = render 'layouts/footer'
\ No newline at end of file
.latest-job.mb-5
.container
h2
| Latest jobs
- @latest_jobs.each do |job|
.job-item.mb-4
= link_to job.title, "#", class: "job-title"
.job-caption
= link_to job.company.name, "#", class: "job-company"
p.job-salary
| Salary:
= job.salary
.job-locations
ul
- job.cities.each do |city|
li
= city.name
.job-desc
p
= job.description
\ No newline at end of file
.search.text-center.mb-5
.overlay
.container
.row
.col-xl-9.mx-auto
h1.mb-5.mt-5
| Total:
= pluralize(Job.count, "job")
.row.justify-content-start
.col-md-10.mb-md-0.no-padding
span.fa.fa-search.form-control-feedback
= search_field_tag :search, params[:search], placeholder: "Find a job", class: "form-control rounded-left no-border-radius bg-light h-100"
.col-md-2.mb-md-0.no-padding
= button_tag "", class: "h-100 w-100 btn btn-block btn-lg btn-info fa fa-search rounded-right no-border-radius ", name: nil
| Search
\ No newline at end of file
.top_cities.mb-5
.container
h2 Top cities
.row.align-items-start.mb-3
- @top_cities.each do |city, city_jobs|
.col-4.city-item
= link_to city.name, '#', class: 'city-name'
span.job-count
| (
= pluralize(city_jobs, "job")
|)
= link_to 'See all cities', '#', class:'all-cities-btn'
\ No newline at end of file
.top_industries.mb-5
.container
h2 Top industries
.row.align-items-start
- @top_industries.each do |industry, industry_jobs|
.col-4.industry-item
= link_to industry.name, '#', class: 'industry-name'
span.job-count
| (
= pluralize(industry_jobs, "job")
|)
= link_to 'See all industries', '#', class:'all-industries-btn'
\ No newline at end of file
- provide(:title, 'Home page')
= render 'search'
= render 'latest_jobs'
= render 'top_cities'
= render 'top_industries'
...@@ -2,7 +2,7 @@ class CreateJobs < ActiveRecord::Migration[6.1] ...@@ -2,7 +2,7 @@ class CreateJobs < ActiveRecord::Migration[6.1]
def change def change
create_table :jobs do |t| create_table :jobs do |t|
t.string :title t.string :title
t.string :type t.string :job_type
t.string :salary t.string :salary
t.string :experience t.string :experience
t.string :position t.string :position
......
class CreateIndustriesJobs < ActiveRecord::Migration[6.1]
def change
create_table :industries_jobs do |t|
t.references :job, null: false, foreign_key: true
t.references :industry, null: false, foreign_key: true
t.timestamps
end
end
end
class CreateCitiesJobs < ActiveRecord::Migration[6.1]
def change
create_table :cities_jobs do |t|
t.references :job, null: false, foreign_key: true
t.references :city, null: false, foreign_key: true
t.timestamps
end
end
end
...@@ -106,7 +106,7 @@ ActiveRecord::Schema.define(version: 2021_07_20_055614) do ...@@ -106,7 +106,7 @@ ActiveRecord::Schema.define(version: 2021_07_20_055614) do
create_table "jobs", charset: "utf8mb4", collation: "utf8mb4_0900_ai_ci", force: :cascade do |t| create_table "jobs", charset: "utf8mb4", collation: "utf8mb4_0900_ai_ci", force: :cascade do |t|
t.string "title" t.string "title"
t.string "type" t.string "job_type"
t.string "salary" t.string "salary"
t.string "experience" t.string "experience"
t.string "position" t.string "position"
......
=> [#<Industry:0x00005603efca8a48 id: 1, name: "Tiếp thị / Marketing", created_at: Wed, 14 Jul 2021 08:45:42.708737000 UTC +00:00, updated_at: Wed, 14 Jul 2021 08:45:42.708737000 UTC +00:00>,
#<Industry:0x00005603efd793c8 id: 2, name: "Tiếp thị trực tuyến", created_at: Wed, 14 Jul 2021 08:45:42.720561000 UTC +00:00, updated_at: Wed, 14 Jul 2021 08:45:42.720561000 UTC +00:00>,
#<Industry:0x00005603efd791c0 id: 3, name: "Bán lẻ / Bán sỉ", created_at: Wed, 14 Jul 2021 08:45:42.731511000 UTC +00:00, updated_at: Wed, 14 Jul 2021 08:45:42.731511000 UTC +00:00>,
#<Industry:0x00005603efd78fe0 id: 4, name: "Bán hàng / Kinh doanh", created_at: Wed, 14 Jul 2021 08:45:42.740572000 UTC +00:00, updated_at: Wed, 14 Jul 2021 08:45:42.740572000 UTC +00:00>,
#<Industry:0x00005603efd789c8 id: 5, name: "Tư vấn", created_at: Wed, 14 Jul 2021 08:45:42.749196000 UTC +00:00, updated_at: Wed, 14 Jul 2021 08:45:42.749196000 UTC +00:00>,
#<Industry:0x00005603efd78248 id: 6, name: "An Ninh / Bảo Vệ", created_at: Wed, 14 Jul 2021 08:45:42.757834000 UTC +00:00, updated_at: Wed, 14 Jul 2021 08:45:42.757834000 UTC +00:00>,
#<Industry:0x00005603efd73f18 id: 7, name: "Luật / Pháp lý", created_at: Wed, 14 Jul 2021 08:45:42.769893000 UTC +00:00, updated_at: Wed, 14 Jul 2021 08:45:42.769893000 UTC +00:00>,
#<Industry:0x00005603efd73d60 id: 8, name: "Dịch vụ khách hàng", created_at: Wed, 14 Jul 2021 08:45:42.779790000 UTC +00:00, updated_at: Wed, 14 Jul 2021 08:45:42.779790000 UTC +00:00>,
#<Industry:0x00005603efd73ba8 id: 9, name: "Lao động phổ thông", created_at: Wed, 14 Jul 2021 08:45:42.788162000 UTC +00:00, updated_at: Wed, 14 Jul 2021 08:45:42.788162000 UTC +00:00>,
#<Industry:0x00005603efd73658 id: 10, name: "Bưu chính viễn thông", created_at: Wed, 14 Jul 2021 08:45:42.795903000 UTC +00:00, updated_at: Wed, 14 Jul 2021 08:45:42.795903000 UTC +00:00>,
#<Industry:0x00005603efd732c0
id: 11,
name: "Vận chuyển / Giao nhận / Kho vận",
created_at: Wed, 14 Jul 2021 08:45:42.803702000 UTC +00:00,
updated_at: Wed, 14 Jul 2021 08:45:42.803702000 UTC +00:00>,
#<Industry:0x00005603efd73158
id: 12,
name: "Phi chính phủ / Phi lợi nhuận",
created_at: Wed, 14 Jul 2021 08:45:42.811514000 UTC +00:00,
updated_at: Wed, 14 Jul 2021 08:45:42.811514000 UTC +00:00>,
#<Industry:0x00005603efd72f50
id: 13,
name: "Y tế / Chăm sóc sức khỏe",
created_at: Wed, 14 Jul 2021 08:45:42.821276000 UTC +00:00,
updated_at: Wed, 14 Jul 2021 08:45:42.821276000 UTC +00:00>,
#<Industry:0x00005603efd72e38 id: 14, name: "Dược phẩm", created_at: Wed, 14 Jul 2021 08:45:42.828775000 UTC +00:00, updated_at: Wed, 14 Jul 2021 08:45:42.828775000 UTC +00:00>,
#<Industry:0x00005603efd72be0
id: 15,
name: "Dệt may / Da giày / Thời trang",
created_at: Wed, 14 Jul 2021 08:45:42.836578000 UTC +00:00,
updated_at: Wed, 14 Jul 2021 08:45:42.836578000 UTC +00:00>,
#<Industry:0x00005603efd728c0
id: 16,
name: "Quản lý chất lượng (QA/QC)",
created_at: Wed, 14 Jul 2021 08:45:42.844295000 UTC +00:00,
updated_at: Wed, 14 Jul 2021 08:45:42.844295000 UTC +00:00>,
#<Industry:0x00005603efd72730 id: 17, name: "Thu mua / Vật tư", created_at: Wed, 14 Jul 2021 08:45:42.852071000 UTC +00:00, updated_at: Wed, 14 Jul 2021 08:45:42.852071000 UTC +00:00>,
#<Industry:0x00005603efd71d30 id: 18, name: "An toàn lao động", created_at: Wed, 14 Jul 2021 08:45:42.860094000 UTC +00:00, updated_at: Wed, 14 Jul 2021 08:45:42.860094000 UTC +00:00>,
#<Industry:0x00005603efd71920
id: 19,
name: "Sản xuất / Vận hành sản xuất",
created_at: Wed, 14 Jul 2021 08:45:42.869735000 UTC +00:00,
updated_at: Wed, 14 Jul 2021 08:45:42.869735000 UTC +00:00>,
#<Industry:0x00005603efd71178 id: 20, name: "Xuất nhập khẩu", created_at: Wed, 14 Jul 2021 08:45:42.880983000 UTC +00:00, updated_at: Wed, 14 Jul 2021 08:45:42.880983000 UTC +00:00>,
#<Industry:0x00005603efd71088 id: 21, name: "Đồ gỗ", created_at: Wed, 14 Jul 2021 08:45:42.903977000 UTC +00:00, updated_at: Wed, 14 Jul 2021 08:45:42.903977000 UTC +00:00>,
#<Industry:0x00005603efd70f48 id: 22, name: "In ấn / Xuất bản", created_at: Wed, 14 Jul 2021 08:45:42.913203000 UTC +00:00, updated_at: Wed, 14 Jul 2021 08:45:42.913203000 UTC +00:00>,
#<Industry:0x00005603efd70e58
id: 23,
name: "Hàng gia dụng / Chăm sóc cá nhân",
created_at: Wed, 14 Jul 2021 08:45:42.922009000 UTC +00:00,
updated_at: Wed, 14 Jul 2021 08:45:42.922009000 UTC +00:00>,
#<Industry:0x00005603efd70d40 id: 24, name: "Thực phẩm & Đồ uống", created_at: Wed, 14 Jul 2021 08:45:42.931785000 UTC +00:00, updated_at: Wed, 14 Jul 2021 08:45:42.931785000 UTC +00:00>,
#<Industry:0x00005603efd70b60 id: 25, name: "CNTT - Phần mềm", created_at: Wed, 14 Jul 2021 08:45:42.940991000 UTC +00:00, updated_at: Wed, 14 Jul 2021 08:45:42.940991000 UTC +00:00>,
#<Industry:0x00005603efd708e0
id: 26,
name: "CNTT - Phần cứng / Mạng",
created_at: Wed, 14 Jul 2021 08:45:42.973373000 UTC +00:00,
updated_at: Wed, 14 Jul 2021 08:45:42.973373000 UTC +00:00>,
#<Industry:0x00005603efd70700 id: 27, name: "Nhân sự", created_at: Wed, 14 Jul 2021 08:45:42.987748000 UTC +00:00, updated_at: Wed, 14 Jul 2021 08:45:42.987748000 UTC +00:00>,
#<Industry:0x00005603efd70480 id: 28, name: "Hành chính / Thư ký", created_at: Wed, 14 Jul 2021 08:45:43.002179000 UTC +00:00, updated_at: Wed, 14 Jul 2021 08:45:43.002179000 UTC +00:00>,
#<Industry:0x00005603efd6bcf0 id: 29, name: "Biên phiên dịch", created_at: Wed, 14 Jul 2021 08:45:43.016101000 UTC +00:00, updated_at: Wed, 14 Jul 2021 08:45:43.016101000 UTC +00:00>,
#<Industry:0x00005603efd6ba70 id: 30, name: "Ngân hàng", created_at: Wed, 14 Jul 2021 08:45:43.025700000 UTC +00:00, updated_at: Wed, 14 Jul 2021 08:45:43.025700000 UTC +00:00>,
#<Industry:0x00005603efd6b908 id: 31, name: "Chứng khoán", created_at: Wed, 14 Jul 2021 08:45:43.038132000 UTC +00:00, updated_at: Wed, 14 Jul 2021 08:45:43.038132000 UTC +00:00>,
#<Industry:0x00005603efd6b6d8 id: 32, name: "Bảo hiểm", created_at: Wed, 14 Jul 2021 08:45:43.052405000 UTC +00:00, updated_at: Wed, 14 Jul 2021 08:45:43.052405000 UTC +00:00>,
#<Industry:0x00005603efd6b4a8 id: 33, name: "Tài chính / Đầu tư", created_at: Wed, 14 Jul 2021 08:45:43.066092000 UTC +00:00, updated_at: Wed, 14 Jul 2021 08:45:43.066092000 UTC +00:00>,
#<Industry:0x00005603efd6b2f0 id: 34, name: "Kế toán / Kiểm toán", created_at: Wed, 14 Jul 2021 08:45:43.075569000 UTC +00:00, updated_at: Wed, 14 Jul 2021 08:45:43.075569000 UTC +00:00>,
#<Industry:0x00005603efd6b200 id: 35, name: "Tổ chức sự kiện", created_at: Wed, 14 Jul 2021 08:45:43.084159000 UTC +00:00, updated_at: Wed, 14 Jul 2021 08:45:43.084159000 UTC +00:00>,
#<Industry:0x00005603efd6ad50
id: 36,
name: "Truyền hình / Báo chí / Biên tập",
created_at: Wed, 14 Jul 2021 08:45:43.093434000 UTC +00:00,
updated_at: Wed, 14 Jul 2021 08:45:43.093434000 UTC +00:00>,
#<Industry:0x00005603efd6a9e0
id: 37,
name: "Mỹ thuật / Nghệ thuật / Thiết kế",
created_at: Wed, 14 Jul 2021 08:45:43.104974000 UTC +00:00,
updated_at: Wed, 14 Jul 2021 08:45:43.104974000 UTC +00:00>,
#<Industry:0x00005603efd6a710
id: 38,
name: "Quảng cáo / Đối ngoại / Truyền Thông",
created_at: Wed, 14 Jul 2021 08:45:43.122039000 UTC +00:00,
updated_at: Wed, 14 Jul 2021 08:45:43.122039000 UTC +00:00>,
#<Industry:0x00005603efd6a328 id: 39, name: "Giải trí", created_at: Wed, 14 Jul 2021 08:45:43.139269000 UTC +00:00, updated_at: Wed, 14 Jul 2021 08:45:43.139269000 UTC +00:00>,
#<Industry:0x00005603efd6a058 id: 40, name: "Bất động sản", created_at: Wed, 14 Jul 2021 08:45:43.157675000 UTC +00:00, updated_at: Wed, 14 Jul 2021 08:45:43.157675000 UTC +00:00>,
#<Industry:0x00005603efd69c98 id: 41, name: "Nội ngoại thất", created_at: Wed, 14 Jul 2021 08:45:43.174550000 UTC +00:00, updated_at: Wed, 14 Jul 2021 08:45:43.174550000 UTC +00:00>,
#<Industry:0x00005603efd695b8 id: 42, name: "Kiến trúc", created_at: Wed, 14 Jul 2021 08:45:43.192179000 UTC +00:00, updated_at: Wed, 14 Jul 2021 08:45:43.192179000 UTC +00:00>,
#<Industry:0x00005603efd69388 id: 43, name: "Xây dựng", created_at: Wed, 14 Jul 2021 08:45:43.206031000 UTC +00:00, updated_at: Wed, 14 Jul 2021 08:45:43.206031000 UTC +00:00>,
#<Industry:0x00005603efd69270
id: 44,
name: "Cơ khí / Ô tô / Tự động hóa",
created_at: Wed, 14 Jul 2021 08:45:43.217299000 UTC +00:00,
updated_at: Wed, 14 Jul 2021 08:45:43.217299000 UTC +00:00>,
#<Industry:0x00005603efd68ff0 id: 45, name: "Môi trường", created_at: Wed, 14 Jul 2021 08:45:43.229813000 UTC +00:00, updated_at: Wed, 14 Jul 2021 08:45:43.229813000 UTC +00:00>,
#<Industry:0x00005603efd68d70
id: 46,
name: "Điện / Điện tử / Điện lạnh",
created_at: Wed, 14 Jul 2021 08:45:43.276779000 UTC +00:00,
updated_at: Wed, 14 Jul 2021 08:45:43.276779000 UTC +00:00>,
#<Industry:0x00005603efd68af0 id: 47, name: "Hóa học", created_at: Wed, 14 Jul 2021 08:45:43.299583000 UTC +00:00, updated_at: Wed, 14 Jul 2021 08:45:43.299583000 UTC +00:00>,
#<Industry:0x00005603efd68898 id: 48, name: "Khoáng sản", created_at: Wed, 14 Jul 2021 08:45:43.336894000 UTC +00:00, updated_at: Wed, 14 Jul 2021 08:45:43.336894000 UTC +00:00>,
#<Industry:0x00005603efd68168 id: 49, name: "Dầu khí", created_at: Wed, 14 Jul 2021 08:45:43.348229000 UTC +00:00, updated_at: Wed, 14 Jul 2021 08:45:43.348229000 UTC +00:00>,
#<Industry:0x00005603efd63fa0 id: 50, name: "Bảo trì / Sửa chữa", created_at: Wed, 14 Jul 2021 08:45:43.361360000 UTC +00:00, updated_at: Wed, 14 Jul 2021 08:45:43.361360000 UTC +00:00>,
#<Industry:0x00005603efd63758 id: 51, name: "Thư viện", created_at: Wed, 14 Jul 2021 08:45:43.377690000 UTC +00:00, updated_at: Wed, 14 Jul 2021 08:45:43.377690000 UTC +00:00>,
#<Industry:0x00005603efd63528 id: 52, name: "Giáo dục / Đào tạo", created_at: Wed, 14 Jul 2021 08:45:43.392635000 UTC +00:00, updated_at: Wed, 14 Jul 2021 08:45:43.392635000 UTC +00:00>,
#<Industry:0x00005603efd63208 id: 53, name: "Lâm Nghiệp", created_at: Wed, 14 Jul 2021 08:45:43.407040000 UTC +00:00, updated_at: Wed, 14 Jul 2021 08:45:43.407040000 UTC +00:00>,
#<Industry:0x00005603efd62e20 id: 54, name: "Thủy sản / Hải sản", created_at: Wed, 14 Jul 2021 08:45:43.416781000 UTC +00:00, updated_at: Wed, 14 Jul 2021 08:45:43.416781000 UTC +00:00>,
#<Industry:0x00005603efd62740
id: 55,
name: "Công nghệ thực phẩm / Dinh dưỡng",
created_at: Wed, 14 Jul 2021 08:45:43.429422000 UTC +00:00,
updated_at: Wed, 14 Jul 2021 08:45:43.429422000 UTC +00:00>,
#<Industry:0x00005603efd624c0 id: 56, name: "Thống kê", created_at: Wed, 14 Jul 2021 08:45:43.440188000 UTC +00:00, updated_at: Wed, 14 Jul 2021 08:45:43.440188000 UTC +00:00>,
#<Industry:0x00005603efd60c60 id: 57, name: "Nông nghiệp", created_at: Wed, 14 Jul 2021 08:45:43.449865000 UTC +00:00, updated_at: Wed, 14 Jul 2021 08:45:43.449865000 UTC +00:00>,
#<Industry:0x00005603efd601e8 id: 58, name: "Hàng hải", created_at: Wed, 14 Jul 2021 08:45:43.459926000 UTC +00:00, updated_at: Wed, 14 Jul 2021 08:45:43.459926000 UTC +00:00>,
#<Industry:0x00005603efd5b170 id: 59, name: "Công nghệ sinh học", created_at: Wed, 14 Jul 2021 08:45:43.471282000 UTC +00:00, updated_at: Wed, 14 Jul 2021 08:45:43.471282000 UTC +00:00>,
#<Industry:0x00005603efd5b058 id: 60, name: "Trắc địa / Địa Chất", created_at: Wed, 14 Jul 2021 08:45:43.480883000 UTC +00:00, updated_at: Wed, 14 Jul 2021 08:45:43.480883000 UTC +00:00>,
#<Industry:0x00005603efd5ae50 id: 61, name: "Thủy lợi", created_at: Wed, 14 Jul 2021 08:45:43.492807000 UTC +00:00, updated_at: Wed, 14 Jul 2021 08:45:43.492807000 UTC +00:00>,
#<Industry:0x00005603efd5ab80 id: 62, name: "Chăn nuôi / Thú y", created_at: Wed, 14 Jul 2021 08:45:43.505134000 UTC +00:00, updated_at: Wed, 14 Jul 2021 08:45:43.505134000 UTC +00:00>,
#<Industry:0x00005603efd5aa40 id: 63, name: "Du lịch", created_at: Wed, 14 Jul 2021 08:45:43.515473000 UTC +00:00, updated_at: Wed, 14 Jul 2021 08:45:43.515473000 UTC +00:00>,
#<Industry:0x00005603efd5a810 id: 64, name: "Nhà hàng / Khách sạn", created_at: Wed, 14 Jul 2021 08:45:43.523137000 UTC +00:00, updated_at: Wed, 14 Jul 2021 08:45:43.523137000 UTC +00:00>,
#<Industry:0x00005603efd5a5b8 id: 65, name: "Hàng không", created_at: Wed, 14 Jul 2021 08:45:43.535097000 UTC +00:00, updated_at: Wed, 14 Jul 2021 08:45:43.535097000 UTC +00:00>,
#<Industry:0x00005603efd59ff0 id: 66, name: "Ngành khác", created_at: Wed, 14 Jul 2021 08:45:43.545318000 UTC +00:00, updated_at: Wed, 14 Jul 2021 08:45:43.545318000 UTC +00:00>]
require 'open-uri'
require 'csv'
require 'zip'
namespace :crawler do
desc 'crawler from CareerBuilder'
task jobs: :environment do
ARGV.each { |a| task a.to_sym { ; } }
total_pages = 0
if ARGV.length == 1 && ARGV[0] == 'TEST'
total_pages = 1
elsif ARGV.length == 1 && ARGV[0] == 'ALL'
first_page = Nokogiri::HTML(HTTParty.get('https://careerbuilder.vn/viec-lam/tat-ca-viec-lam-vi.html').body)
jobs_per_page = first_page.css('div.job-item').count
total_jobs = first_page.css('.search-result-list .job-found p').text.split(' ').first.gsub(',', '').to_i
total_pages = (total_jobs.to_f / jobs_per_page).round
else
exit
end
(1..total_pages).each do |page|
parsed_page = Nokogiri::HTML(HTTParty.get("https://careerbuilder.vn/viec-lam/tat-ca-viec-lam-trang-#{page}-vi.html").body)
jobs_item = parsed_page.css('div.job-item .job_link')
jobs_item.each do |item|
job_page = Nokogiri::HTML(HTTParty.get('https://careerbuilder.vn/vi/tim-viec-lam/' +
CGI.escape(item.attribute('href').text.remove('https://careerbuilder.vn/vi/tim-viec-lam/'))).body)
job_detail = job_page.css('section.job-detail-content')
# title - company
title = job_page.css('div.job-desc h1.title').text
company = job_page.css('div.job-desc a.job-company-name').text
# info box
info_box_item = job_detail.css('.detail-box ul li')
# city, update_at, industry, type, salary, experience, level, expiration_date
job_industries = []
update_at, job_type, salary, experience, level, expiration_date = ''
job_cities = []
job_detail.css('.detail-box .map p a').each do |part|
city = part.text
job_cities << city
end
info_box_item.each do |info_item|
info = info_item.text
if info.include?(key = 'Ngày cập nhật')
update_at = info.squish.remove(key).strip
elsif info.include?(key = 'Ngành nghề')
job_industries = info.squish.remove(key).strip.split(' , ')
elsif info.include?(key = 'Hình thức')
job_type = info.squish.remove(key).strip
elsif info.include?(key = 'Lương')
salary = info.squish.remove(key).strip
elsif info.include?(key = 'Kinh nghiệm')
experience = info.squish.remove(key).strip
elsif info.include?(key = 'Cấp bậc')
level = info.squish.remove(key).strip
elsif info.include?(key = 'Hết hạn nộp')
expiration_date = info.squish.remove(key).strip
end
end
# benefit
benefit_list = []
other_info_list = []
benefits = job_detail.css('ul.welfare-list li')
benefits.each do |part|
benefit = part.text.strip
benefit_list << benefit
end
# description, requirement
description, requirement = ''
job_detail_row = job_detail.css('div.detail-row')
job_detail_row.each do |part|
job_detail_text = part.text
if job_detail_text.include?('Mô tả Công việc')
description = job_detail_text.partition('Mô tả Công việc').last.squish.strip
elsif job_detail_text.include?('Yêu Cầu Công Việc')
requirement = job_detail_text.partition('Yêu Cầu Công Việc').last.squish.strip
end
end
# other info
other_info = job_detail.css('div.content_fck ul li')
other_info.each do |part|
info = part.text.squish.strip
other_info_list << info
end
company = Company.find_or_create_by(name: company)
job = Job.find_or_create_by(
title: title,
job_type: job_type,
salary: salary,
position: level,
experience: experience,
expiration_date: expiration_date,
benefit: benefit_list.each { |benefit| },
description: description,
requirement: requirement,
other_info: other_info_list.each { |info| }
)
company.jobs << job
job_industries.each do |industry|
industry_id = Industry.find_or_create_by(name: industry)
job.industries << industry_id
end
job_cities.each do |city|
city_id = City.find_or_create_by(name: city)
job.cities << city_id
end
end
end
end
desc 'crawler industry form CareerBuilder'
task industries: :environment do
parsed_page = Nokogiri::HTML(HTTParty.get('https://careerbuilder.vn/tim-viec-lam.html').body)
list_job = parsed_page.css('div.list-of-working-positions ul.list-jobs li a')
industry_list = []
list_job.each do |part|
industry = part.text.squish.strip
industry_list << industry
end
industry_list.each do |industry|
Industry.create(name: industry)
end
end
desc 'crawler city form CareerBuilder'
task cities: :environment do
parsed_page ||= Nokogiri::HTML(HTTParty.get('https://careerbuilder.vn/tim-viec-lam.html').body)
list_location = parsed_page.css('div.main-jobs-by-location ul li')
city_list = []
list_location.each do |part|
city_item = part.text
region = 1
if city_item.include?(key = 'Việc làm tại')
city_item = city_item.remove(key).strip
region = 0
end
city = {
name: city_item,
region: region
}
city_list << city
end
city_list.each do |city|
City.create(
name: city[:name],
region: city[:region]
)
end
end
end
=> [#<Company:0x0000555a940179f0
id: 1,
name: "Công Ty TNHH TransCosmos Việt Nam",
created_at: Thu, 15 Jul 2021 09:37:46.825913000 UTC +00:00,
updated_at: Thu, 15 Jul 2021 09:37:46.825913000 UTC +00:00>,
#<Company:0x0000555a94118ea8
id: 2,
name: "Công ty TNHH Minh Long",
created_at: Thu, 15 Jul 2021 09:37:49.825610000 UTC +00:00,
updated_at: Thu, 15 Jul 2021 09:37:49.825610000 UTC +00:00>,
#<Company:0x0000555a94118c28
id: 3,
name: "MITSUBISHI VIỆT HỒNG - CÔNG TY CỔ PHẦN QUỐC TẾ VIỆT HỒNG",
created_at: Thu, 15 Jul 2021 09:37:50.382871000 UTC +00:00,
updated_at: Thu, 15 Jul 2021 09:37:50.382871000 UTC +00:00>,
#<Company:0x0000555a94118930 id: 4, name: "", created_at: Thu, 15 Jul 2021 09:37:51.272776000 UTC +00:00, updated_at: Thu, 15 Jul 2021 09:37:51.272776000 UTC +00:00>,
#<Company:0x0000555a941181b0
id: 5,
name: "Công ty Cổ phần HT HOLDING",
created_at: Thu, 15 Jul 2021 09:37:52.770475000 UTC +00:00,
updated_at: Thu, 15 Jul 2021 09:37:52.770475000 UTC +00:00>,
#<Company:0x0000555a94113e30
id: 6,
name: "Công ty Cổ phần Xây Dựng An Phú Gia",
created_at: Thu, 15 Jul 2021 09:37:53.811623000 UTC +00:00,
updated_at: Thu, 15 Jul 2021 09:37:53.811623000 UTC +00:00>,
#<Company:0x0000555a94113ca0
id: 7,
name: "Công ty TNHH Bình Việt Đức (BIVID)",
created_at: Thu, 15 Jul 2021 09:37:54.922281000 UTC +00:00,
updated_at: Thu, 15 Jul 2021 09:37:54.922281000 UTC +00:00>,
#<Company:0x0000555a94113ac0
id: 8,
name: "MITSUBISHI VIỆT HỒNG - CÔNG TY CỔ PHẦN QUỐC TẾ VIỆT HỒNG",
created_at: Thu, 15 Jul 2021 09:37:56.041900000 UTC +00:00,
updated_at: Thu, 15 Jul 2021 09:37:56.041900000 UTC +00:00>,
#<Company:0x0000555a941138e0
id: 9,
name: "Công Ty Tài Chính Mirae Asset (Việt Nam)",
created_at: Thu, 15 Jul 2021 09:37:57.000396000 UTC +00:00,
updated_at: Thu, 15 Jul 2021 09:37:57.000396000 UTC +00:00>,
#<Company:0x0000555a941130e8
id: 10,
name: "ABBANK - Ngân Hàng TMCP An Bình",
created_at: Thu, 15 Jul 2021 09:37:58.307135000 UTC +00:00,
updated_at: Thu, 15 Jul 2021 09:37:58.307135000 UTC +00:00>,
#<Company:0x0000555a94112df0 id: 11, name: "Ri Ta Võ", created_at: Thu, 15 Jul 2021 09:38:09.361188000 UTC +00:00, updated_at: Thu, 15 Jul 2021 09:38:09.361188000 UTC +00:00>,
#<Company:0x0000555a94112b98
id: 12,
name: "Công Ty Tài Chính Mirae Asset (Việt Nam)",
created_at: Thu, 15 Jul 2021 09:38:22.996650000 UTC +00:00,
updated_at: Thu, 15 Jul 2021 09:38:22.996650000 UTC +00:00>,
#<Company:0x0000555a94112a58
id: 13,
name: "Trung tâm thời trang HerDG - Tổng công ty Đức Giang – CTCP (DUGARCO)",
created_at: Thu, 15 Jul 2021 09:38:28.105053000 UTC +00:00,
updated_at: Thu, 15 Jul 2021 09:38:28.105053000 UTC +00:00>,
#<Company:0x0000555a941128f0
id: 14,
name: "Công Ty TNHH TransCosmos Việt Nam",
created_at: Thu, 15 Jul 2021 09:43:41.164053000 UTC +00:00,
updated_at: Thu, 15 Jul 2021 09:43:41.164053000 UTC +00:00>,
#<Company:0x0000555a94112760
id: 15,
name: "Công ty TNHH Minh Long",
created_at: Thu, 15 Jul 2021 09:43:43.103767000 UTC +00:00,
updated_at: Thu, 15 Jul 2021 09:43:43.103767000 UTC +00:00>,
#<Company:0x0000555a94112620
id: 16,
name: "MITSUBISHI VIỆT HỒNG - CÔNG TY CỔ PHẦN QUỐC TẾ VIỆT HỒNG",
created_at: Thu, 15 Jul 2021 09:43:47.153234000 UTC +00:00,
updated_at: Thu, 15 Jul 2021 09:43:47.153234000 UTC +00:00>,
#<Company:0x0000555a94112508 id: 17, name: "", created_at: Thu, 15 Jul 2021 09:43:47.855785000 UTC +00:00, updated_at: Thu, 15 Jul 2021 09:43:47.855785000 UTC +00:00>,
#<Company:0x0000555a941123a0
id: 18,
name: "Công ty Cổ phần HT HOLDING",
created_at: Thu, 15 Jul 2021 09:43:48.945540000 UTC +00:00,
updated_at: Thu, 15 Jul 2021 09:43:48.945540000 UTC +00:00>,
#<Company:0x0000555a941121c0
id: 19,
name: "Công ty Cổ phần Xây Dựng An Phú Gia",
created_at: Thu, 15 Jul 2021 09:43:49.619112000 UTC +00:00,
updated_at: Thu, 15 Jul 2021 09:43:49.619112000 UTC +00:00>,
#<Company:0x0000555a94112058
id: 20,
name: "Công ty TNHH Bình Việt Đức (BIVID)",
created_at: Thu, 15 Jul 2021 09:43:50.198834000 UTC +00:00,
updated_at: Thu, 15 Jul 2021 09:43:50.198834000 UTC +00:00>,
#<Company:0x0000555a94111e28
id: 21,
name: "MITSUBISHI VIỆT HỒNG - CÔNG TY CỔ PHẦN QUỐC TẾ VIỆT HỒNG",
created_at: Thu, 15 Jul 2021 09:43:50.885851000 UTC +00:00,
updated_at: Thu, 15 Jul 2021 09:43:50.885851000 UTC +00:00>,
#<Company:0x0000555a94111c98
id: 22,
name: "Công Ty Tài Chính Mirae Asset (Việt Nam)",
created_at: Thu, 15 Jul 2021 09:43:51.540606000 UTC +00:00,
updated_at: Thu, 15 Jul 2021 09:43:51.540606000 UTC +00:00>,
#<Company:0x0000555a94111b30
id: 23,
name: "ABBANK - Ngân Hàng TMCP An Bình",
created_at: Thu, 15 Jul 2021 09:43:52.180605000 UTC +00:00,
updated_at: Thu, 15 Jul 2021 09:43:52.180605000 UTC +00:00>,
#<Company:0x0000555a941119c8 id: 24, name: "Ri Ta Võ", created_at: Thu, 15 Jul 2021 09:43:53.353282000 UTC +00:00, updated_at: Thu, 15 Jul 2021 09:43:53.353282000 UTC +00:00>,
#<Company:0x0000555a941116a8
id: 25,
name: "Công Ty Tài Chính Mirae Asset (Việt Nam)",
created_at: Thu, 15 Jul 2021 09:43:54.855239000 UTC +00:00,
updated_at: Thu, 15 Jul 2021 09:43:54.855239000 UTC +00:00>,
#<Company:0x0000555a94111540
id: 26,
name: "Trung tâm thời trang HerDG - Tổng công ty Đức Giang – CTCP (DUGARCO)",
created_at: Thu, 15 Jul 2021 09:44:14.772894000 UTC +00:00,
updated_at: Thu, 15 Jul 2021 09:44:14.772894000 UTC +00:00>,
#<Company:0x0000555a941112e8
id: 27,
name: "CÔNGTY TNHH ĐẦU TƯ VÀ PHÁT TRIỂN THƯƠNG MẠI QUỐC CƯỜNG",
created_at: Thu, 15 Jul 2021 09:44:32.134721000 UTC +00:00,
updated_at: Thu, 15 Jul 2021 09:44:32.134721000 UTC +00:00>,
#<Company:0x0000555a94111108
id: 28,
name: " CÔNG TY TNHH GIÁO DỤC VÀ THƯƠNG MẠI RIKI VIỆT NAM",
created_at: Thu, 15 Jul 2021 09:44:42.649014000 UTC +00:00,
updated_at: Thu, 15 Jul 2021 09:44:42.649014000 UTC +00:00>,
#<Company:0x0000555a94110f78
id: 29,
name: "Công ty CP đầu tư xây dựng Hạ tầng và Giao thông",
created_at: Thu, 15 Jul 2021 09:44:57.091691000 UTC +00:00,
updated_at: Thu, 15 Jul 2021 09:44:57.091691000 UTC +00:00>,
#<Company:0x0000555a94110e10 id: 30, name: "AkzoNobel Vietnam", created_at: Thu, 15 Jul 2021 09:45:13.406572000 UTC +00:00, updated_at: Thu, 15 Jul 2021 09:45:13.406572000 UTC +00:00>,
#<Company:0x0000555a94110c30
id: 31,
name: "Heineken Vietnam Brewery",
created_at: Thu, 15 Jul 2021 09:45:15.862921000 UTC +00:00,
updated_at: Thu, 15 Jul 2021 09:45:15.862921000 UTC +00:00>,
#<Company:0x0000555a94110a50
id: 32,
name: "Công ty Cổ phần thương mại Vương Quốc Nội Thất",
created_at: Thu, 15 Jul 2021 09:45:22.946815000 UTC +00:00,
updated_at: Thu, 15 Jul 2021 09:45:22.946815000 UTC +00:00>,
#<Company:0x0000555a94110870
id: 33,
name: "CÔNG TY TNHH ÂM NHẠC NGUYỄN ĐỨC",
created_at: Thu, 15 Jul 2021 09:45:23.535459000 UTC +00:00,
updated_at: Thu, 15 Jul 2021 09:45:23.535459000 UTC +00:00>,
#<Company:0x0000555a94110640
id: 34,
name: "Công ty CP đầu tư xây dựng Hạ tầng và Giao thông",
created_at: Thu, 15 Jul 2021 09:45:24.214632000 UTC +00:00,
updated_at: Thu, 15 Jul 2021 09:45:24.214632000 UTC +00:00>,
#<Company:0x0000555a94110460
id: 35,
name: "CÔNG TY TNHH ÂM NHẠC NGUYỄN ĐỨC",
created_at: Thu, 15 Jul 2021 09:45:24.912148000 UTC +00:00,
updated_at: Thu, 15 Jul 2021 09:45:24.912148000 UTC +00:00>,
#<Company:0x0000555a941102d0
id: 36,
name: "CÔNG TY TNHH ÂM NHẠC NGUYỄN ĐỨC",
created_at: Thu, 15 Jul 2021 09:45:25.485787000 UTC +00:00,
updated_at: Thu, 15 Jul 2021 09:45:25.485787000 UTC +00:00>,
#<Company:0x0000555a9410bf50
id: 37,
name: "CÔNG TY TNHH ÂM NHẠC NGUYỄN ĐỨC",
created_at: Thu, 15 Jul 2021 09:45:27.573376000 UTC +00:00,
updated_at: Thu, 15 Jul 2021 09:45:27.573376000 UTC +00:00>,
#<Company:0x0000555a9410bc08 id: 38, name: "Jabil Vietnam", created_at: Thu, 15 Jul 2021 09:45:29.296955000 UTC +00:00, updated_at: Thu, 15 Jul 2021 09:45:29.296955000 UTC +00:00>,
#<Company:0x0000555a9410b9d8 id: 39, name: "Jabil Vietnam", created_at: Thu, 15 Jul 2021 09:45:31.207383000 UTC +00:00, updated_at: Thu, 15 Jul 2021 09:45:31.207383000 UTC +00:00>,
#<Company:0x0000555a9410b708 id: 40, name: "Jabil Vietnam", created_at: Thu, 15 Jul 2021 09:45:33.685726000 UTC +00:00, updated_at: Thu, 15 Jul 2021 09:45:33.685726000 UTC +00:00>,
#<Company:0x0000555a9410b550 id: 41, name: "Jabil Vietnam", created_at: Thu, 15 Jul 2021 09:45:34.307317000 UTC +00:00, updated_at: Thu, 15 Jul 2021 09:45:34.307317000 UTC +00:00>,
#<Company:0x0000555a9410b3c0 id: 42, name: "Jabil Vietnam", created_at: Thu, 15 Jul 2021 09:45:35.672847000 UTC +00:00, updated_at: Thu, 15 Jul 2021 09:45:35.672847000 UTC +00:00>,
#<Company:0x0000555a9410b168 id: 43, name: "Jabil Vietnam", created_at: Thu, 15 Jul 2021 09:45:37.671445000 UTC +00:00, updated_at: Thu, 15 Jul 2021 09:45:37.671445000 UTC +00:00>,
#<Company:0x0000555a9410af38 id: 44, name: "Jabil Vietnam", created_at: Thu, 15 Jul 2021 09:45:41.408229000 UTC +00:00, updated_at: Thu, 15 Jul 2021 09:45:41.408229000 UTC +00:00>,
#<Company:0x0000555a9410ad30 id: 45, name: "Jabil Vietnam", created_at: Thu, 15 Jul 2021 09:45:42.821024000 UTC +00:00, updated_at: Thu, 15 Jul 2021 09:45:42.821024000 UTC +00:00>,
#<Company:0x0000555a9410ab00
id: 46,
name: "Công ty TNHH XNK và TM Đông Thành ",
created_at: Thu, 15 Jul 2021 09:45:43.921532000 UTC +00:00,
updated_at: Thu, 15 Jul 2021 09:45:43.921532000 UTC +00:00>,
#<Company:0x0000555a9410a6c8 id: 47, name: "Jabil Vietnam", created_at: Thu, 15 Jul 2021 09:45:45.748582000 UTC +00:00, updated_at: Thu, 15 Jul 2021 09:45:45.748582000 UTC +00:00>,
#<Company:0x0000555a9410a498 id: 48, name: "Jabil Vietnam", created_at: Thu, 15 Jul 2021 09:45:47.227740000 UTC +00:00, updated_at: Thu, 15 Jul 2021 09:45:47.227740000 UTC +00:00>,
#<Company:0x0000555a9410a178 id: 49, name: "Jabil Vietnam", created_at: Thu, 15 Jul 2021 09:45:48.004157000 UTC +00:00, updated_at: Thu, 15 Jul 2021 09:45:48.004157000 UTC +00:00>]
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment