CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
Overview
This is the Avada Group careers website (https://avadagroup.com), built with Jekyll static site generator. The site serves as both a corporate blog and a job board for recruiting purposes. It features job postings, company blog posts, and information about Avada Group’s work environment and culture.
Technology Stack
- Static Site Generator: Jekyll with Kramdown markdown processor
- Front-end Framework: Bootstrap (with custom CSS)
- JavaScript: jQuery-based with various plugins (Camera slider, Calendario, etc.)
- Styling: LESS (compiled to CSS) + custom CSS
- Deployment: Git-based (see push.sh scripts)
Site Structure
Content Types
- Jobs (
directory)1
_jobs/
- Jekyll collection defined in
1
_config.yml
- Each job is a markdown file with YAML frontmatter
- Key frontmatter fields:
: typically1
layout
or1
new_layout_jd
1
job
: Job title (Vietnamese)1
vi_tri_ung_tuyen
: Company member (e.g., “Avada SaaS”)1
cty_thanh_vien
: Boolean indicating if actively recruiting1
dang_tuyen_dung
: Department value (technical, marketing, sales, service, bo)1
value_phong_ban
: Department label display1
label_phong_ban
: Salary range1
salary
: Experience requirement1
yeu_cau
: Boolean for hot job badge1
jobHot
: Boolean for urgent hiring badge1
jobTuyenGap
- Jekyll collection defined in
- Blog Posts (
directory)1
_posts/
- Standard Jekyll posts following
naming convention1
YYYY-MM-DD-title.md
- Frontmatter includes:
: typically1
layout
or1
new_post
1
blog-single
: Category (e.g., “su_kien_noi_bo”)1
tab
: Display label for category1
label-tabs
: Featured image URL1
image
- Standard Jekyll posts following
- Pages (
directory)1
_pages/
- Static pages like blog, tuyen-dung (recruitment), ve-chung-toi (about us), moi-truong (environment)
- Uses custom permalinks defined in frontmatter
Layout System
- Layouts (
directory):1
_layouts/
: Main homepage layout1
homepage_new.html
: Modern job description layout1
new_layout_jd.html
: Legacy job layout1
job.html
: Blog post layout1
new_post.html
: Alternative blog post layout1
blog-single.html
,1
default.html
: Basic page layouts1
page.html
- Includes (
directory):1
_includes/
- Header variants:
,1
header.html
,1
new_header_landingpage_t12.html
1
2025_20_01_header_default.html
- Footer variants:
,1
footer.html
1
bo_new_footer_t12.html
: Job application form include1
form_ung_tuyen.html
,1
head.html
: HTML head sections1
2025_20_01_head_new.html
: JavaScript includes1
script.html
- Header variants:
Data Files
: Leadership team data1
_data/dataBanLanhDao.json
: Team members information1
_data/members.yml
: Company reviews/testimonials1
_data/reviewAvadaGroup.json
API Endpoints
: JSON API for job search functionality1
/api/avada_career_search.json
- Generated from
1
_pages/api/avada_career_search.html
- Filters jobs where
1
dang_tuyen_dung: true
- Returns job title, department, permalink, salary, and requirements
- Generated from
Common Commands
Local Development
1
2
3
4
5
6
7
8
9
10
11
# Install Jekyll and dependencies (first time setup)
gem install bundler jekyll
# Serve site locally with auto-regeneration
jekyll serve
# Serve with drafts and future posts
jekyll serve --drafts --future
# Build site for production
jekyll build
Deployment
1
2
3
4
5
6
# Auto-commit and push changes
./push.sh
# Individual user push scripts
./sam-push.sh
./sona-push.sh
The script runs: 1
push.sh
1
git pull && git add . && git commit -m "Auto Update" && git push
Key Architectural Patterns
Job Filtering System
The recruitment page () implements a dual filtering mechanism:1
_pages/tuyen-dung.md
- Department Filter: Dropdown filter by
1
value_phong_ban
- Options: technical, marketing, sales, service, bo (back office)
- Jobs are sorted by priority: technical → marketing → sales → service → bo
- Search Filter: Keyword search via
1
/api/avada_career_search.json
- Searches across job title, salary, requirements, and department
- Results replace the default job list dynamically
- URL query parameter
supported for deep linking1
?keyword=
Multi-language Support
- Site is primarily in Vietnamese
- Some content in English (mainly technical terms)
- No formal i18n system; content is manually translated in markdown files
Job Badge System
Two badge types displayed on job cards:
- HOT badge (blue with flame icon):
1
jobHot: true
- TUYỂN GẤP badge (red with lightning):
1
jobTuyenGap: true
Important Configuration
_config.yml Settings
- Site URL:
1
https://avadagroup.com
- Collections:
: output: true1
_pages
: output: true1
_jobs
- Pagination: 5 posts per page on blog
- Excluded files: Gemfile, node_modules, less/, README.md, etc.
- Future posts: Enabled (
)1
future: true
Permalinks
- Posts:
1
/:categories/:title/
- Jobs: Defined per-file in frontmatter (e.g.,
)1
/AI-Engineer/
- Pages: Custom permalinks (e.g.,
)1
/tuyen-dung/
Working with Jobs
Creating a New Job Posting
- Create new file in
with descriptive name (e.g.,1
_jobs/
)1
Senior-Backend-Engineer.md
- Add required frontmatter:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
--- layout: new_layout_jd title: "Job Title" permalink: "/job-slug/" published: true vi_tri_ung_tuyen: "Job Title in Vietnamese" cty_thanh_vien: "Avada SaaS" # or other entity dang_tuyen_dung: true value_cty: "saas" value_phong_ban: "technical" label_phong_ban: "Technical" salary: "Negotiate" # or specific range yeu_cau: "2 năm" # or "0" for no experience jobHot: false jobTuyenGap: false ---
- Write job description content in markdown following existing structure
- Job automatically appears on
page and in search API1
/tuyen-dung/
Deactivating a Job
Set in the job’s frontmatter. This removes it from the active listings and search API.1
dang_tuyen_dung: false
Styling and Assets
- CSS: Main styles in
(compiled from1
style.css
)1
style.less
- LESS source:
directory contains modular LESS files1
less/
- Images: Stored in
directory, some hosted on CDN (cdn2.mageplaza.com)1
images/
- Fonts: Custom fonts loaded via includes
- Icons: SVG icons inline in HTML
Contact and Email
- Job applications: [email protected]
- General contact: [email protected]
- Phone: 0358 116 968 (zalo) / 0345 586 968
Notes
- The site uses
which allows posts with future dates to be published1
future: true
- Google Analytics tracking ID: UA-76130628-7
- Disqus comments enabled with shortname: careermageplaza
- reCAPTCHA may be used on contact forms

