Thank you for your interest in contributing to HireAI! This document provides guidelines and instructions for contributing.
- Getting Started
- Development Setup
- Project Structure
- Adding a New Product
- Writing Analysis Articles
- Creating Tag Pages
- Code Style Guidelines
- Submitting Changes
- Ruby 2.7 or higher
- Bundler gem
- Git
-
Clone the repository
git clone https://github.com/Digidai/HireAI.git cd HireAI -
Install dependencies
bundle install
-
Run the development server
bundle exec jekyll serve --livereload -
Open in browser
http://localhost:4000
HireAI/
├── _analyses/ # Product analysis articles (150+ files)
├── _data/
│ ├── products.yml # Main product database
│ └── tag_checklists.yml # Tag evaluation checklists
├── _includes/ # Reusable HTML components
├── _layouts/ # Page layout templates
├── _sass/ # SCSS modules
│ ├── _variables.scss # CSS custom properties
│ ├── _base.scss # Reset and base styles
│ ├── _sidebar.scss # Navigation sidebar
│ ├── _components.scss # Cards, buttons, tags
│ ├── _layouts.scss # Page layouts
│ ├── _product-detail.scss
│ ├── _markdown.scss # Markdown content
│ └── _responsive.scss # Media queries
├── _scripts/ # Build and validation scripts
├── assets/
│ ├── css/main.scss # Main stylesheet entry
│ ├── js/main.js # JavaScript functionality
│ └── images/ # Static images
├── tags/ # Tag pages (95+ files)
└── *.md # Root-level pages
Edit _data/products.yml and add your product under the appropriate era category:
- era: "2020s - Intelligence Platforms"
icon: "🧠"
products:
- name: "Your Product Name"
url: "https://product-website.com"
description: "Brief description (max 100 chars)"
tags:
- "ATS"
- "AI"
analysis: "_analyses/your-product-analysis.md"Create a new file in _analyses/:
---
layout: analysis
title: "Your Product Name Analysis"
description: "Deep-dive analysis of Your Product Name"
permalink: /your-product-analysis/
---
## Overview
Your analysis content here...If you introduced new tags, create corresponding pages in tags/:
---
layout: tag_page
tag: "Your New Tag"
title: "Your New Tag"
description: "Products with Your New Tag capability"
permalink: /tags/your-new-tag/
---
Optional introductory content about this tag.Run the validation script:
ruby _scripts/check_site_data.rbExpected output:
products=X
analysis_pages=X
tag_pages=X
OK
Run the enrichment script to add related products and checklists:
ruby _scripts/bake_analysis_enrichment.rb---
layout: analysis
title: "Product Name Analysis"
description: "Concise description for SEO"
permalink: /product-name-analysis/
product_name: "Product Name"
website: "https://product.com"
tags:
- "Tag1"
- "Tag2"
---- Overview - What the product does
- Key Features - Main capabilities
- Use Cases - Ideal scenarios
- Pros & Cons - Balanced assessment
- Pricing - If publicly available
- Alternatives - Similar products
- Be objective and factual
- Include specific feature names
- Cite official sources when possible
- Update
last_updatedwhen making changes
---
layout: tag_page
tag: "Tag Name"
title: "Tag Name"
description: "Description for SEO"
permalink: /tags/tag-slug/
---
Introduction paragraph about what this tag represents.Edit _data/tag_checklists.yml:
tag-slug:
- "Checklist item 1"
- "Checklist item 2"
- "Checklist item 3"- Use CSS custom properties (variables) from
_variables.scss - Follow BEM-like naming:
.block,.block-element,.block--modifier - Keep selectors shallow (max 3 levels)
- Mobile-first media queries
- Use ES6+ syntax
- Implement debounce for search inputs
- Check for element existence before attaching listeners
- No jQuery dependency
- Escape user-generated content:
{{ value | escape }} - Use
{% if %}guards for optional values - Prefer includes for repeated HTML
- Run validation:
ruby _scripts/check_site_data.rb - Test locally:
bundle exec jekyll serve - Check mobile responsiveness
- Verify all links work
- Fork the repository
- Create a feature branch:
git checkout -b feature/your-feature - Make your changes
- Commit with clear messages
- Push to your fork
- Open a Pull Request
type: brief description
- Detail 1
- Detail 2
Types: feat, fix, docs, style, refactor, test
- Passes validation scripts
- Follows code style guidelines
- Mobile-responsive
- No broken links
- Clear documentation for new features
- Open an Issue
- Check existing Discussions
Thank you for contributing!