remoteintech/remote-jobs
主な特徴
- 845社以上のリモート対応企業を収録
- 企業ごとの詳細なプロファイルページ
- 地域別・技術別の検索機能
- コミュニティ駆動による最新情報の維持
- 商用利用も可能なCC0ライセンス
- 静的サイトジェネレーターによるWebサイト生成
- 標準化されたデータフォーマット
- GitHubを通じた透明な貢献プロセス
リポジトリ解析: remoteintech/remote-jobs
基本情報
- リポジトリ名: remoteintech/remote-jobs
- 主要言語: JavaScript
- スター数: 33,942
- フォーク数: 3,457
- 最終更新: 2025年7月(活発に開発中)
- ライセンス: Creative Commons Zero v1.0 Universal
- トピックス: remote-work, remote-jobs, tech-companies, job-search, community-driven
概要
一言で言うと
テック業界のリモートワーク対応企業845社以上を網羅した、コミュニティ主導のオープンソースリポジトリで、求職者と企業を繋ぐ最大級のリソース。
詳細説明
remote-jobsは、テック業界におけるリモートワーク対応企業の包括的なリストを提供するオープンソースプロジェクトです。CC0ライセンス(パブリックドメイン)により、誰でも自由に利用・改変・配布が可能です。各企業の詳細なプロファイル、リモートワークポリシー、採用地域、技術スタック、応募方法などの情報を標準化されたフォーマットで提供し、リモートワークを探す開発者と、リモート人材を求める企業の両方に価値を提供しています。
主な特徴
- 845社以上のリモート対応企業を収録
- 企業ごとの詳細なプロファイルページ
- 地域別・技術別の検索機能
- コミュニティ駆動による最新情報の維持
- 商用利用も可能なCC0ライセンス
- 静的サイトジェネレーターによるWebサイト生成
- 標準化されたデータフォーマット
- GitHubを通じた透明な貢献プロセス
使用方法
インストール
前提条件
- Node.js 14+(ローカル開発用)
- Git
- テキストエディタ
インストール手順
# 方法1: Webサイトを利用
# https://remoteintech.company へアクセス
# 方法2: ローカル開発環境の構築
git clone https://github.com/remoteintech/remote-jobs.git
cd remote-jobs
npm install
# サイトのビルド
npm run build
# ローカルサーバーの起動
npm start
# http://localhost:8080 でアクセス
# 方法3: Dockerを使用
docker build -t remote-jobs .
docker run -p 8080:8080 remote-jobs
基本的な使い方
企業情報の閲覧
# README.mdの企業リストを参照
| Company | Website | Region |
|---------|---------|--------|
| 10up | https://10up.com/ | Worldwide |
| Aiven | https://aiven.io/ | Europe, North America |
| GitHub | https://github.com/ | Worldwide |
実践的な使用例
# 企業プロファイルの参照例: company-profiles/github.md
# GitHub
## Company blurb
GitHub is the world's leading software development platform...
## Company size
1,000-5,000
## Remote status
GitHub is a remote-first company with employees across the globe.
## Region
Worldwide
## Company technologies
Ruby, Go, JavaScript, MySQL, Redis, Elasticsearch
## How to apply
Visit https://github.com/careers
高度な使い方
# 新しい企業の追加
# 1. 企業プロファイルの作成
cp company-profiles/example.md company-profiles/new-company.md
# エディタで編集
# 2. README.mdの更新(アルファベット順を維持)
# 3. 検証の実行
npm test
# 検索機能の使用(Webサイト上)
# - 企業名で検索
# - 地域でフィルタリング
# - 技術スタックで検索
# データのAPI利用(非公式)
# GitHubAPIを使用してrawファイルを取得
curl https://raw.githubusercontent.com/remoteintech/remote-jobs/main/README.md
ドキュメント・リソース
公式ドキュメント
- README.md: プロジェクト概要、企業リスト、貢献方法
- 公式サイト: https://remoteintech.company - 検索可能なWebインターフェース
- CONTRIBUTING.md: 貢献ガイドライン
- LICENSE: CC0 1.0 Universal(パブリックドメイン)
サンプル・デモ
- company-profiles/example.md: 企業プロファイルのテンプレート
- index.md: サイトのトップページソース
- bin/ディレクトリ: ビルド・検証スクリプト
チュートリアル・ガイド
- 貢献ガイドラインに従ったプルリクエスト作成
- 企業プロファイルテンプレートの活用
- GitHubのIssueでの議論参加
- Twitter @RemoteInTechCo での最新情報
技術的詳細
アーキテクチャ
全体構造
静的サイトジェネレーターを使用したシンプルなアーキテクチャ。MarkdownファイルからHTMLを生成し、クライアントサイド検索を実装。GitHubをデータストアとして活用し、コミュニティによる更新を受け付ける。
ディレクトリ構成
remote-jobs/
├── company-profiles/ # 企業別詳細プロファイル
│ ├── 10up.md
│ ├── github.md
│ ├── example.md # テンプレート
│ └── ...(845社以上)
├── bin/ # ビルド・検証スクリプト
│ ├── build-site.js # サイト生成
│ ├── serve-site.js # 開発サーバー
│ └── validate.js # データ検証
├── assets/ # Webサイトアセット
├── test/ # テストスイート
├── README.md # メイン企業リスト
├── index.md # Webサイトトップ
├── package.json # Node.js設定
└── Dockerfile # Docker設定
主要コンポーネント
-
データレイヤー: Markdownファイルによる企業情報
- 場所:
company-profiles/ディレクトリ - 依存: 標準化されたフォーマット
- インターフェース: Markdownファイル形式
- 場所:
-
サイトジェネレーター: 静的HTML生成
- 場所:
bin/build-site.js - 依存: marked、swig-templates、cheerio
- インターフェース: build()関数
- 場所:
-
検索システム: クライアントサイド全文検索
- 場所:
assets/search.js - 依存: lunr.js
- インターフェース: 検索インデックス生成
- 場所:
技術スタック
コア技術
- 言語: JavaScript (Node.js)
- マークアップ: Markdown(データフォーマット)
- 主要ライブラリ:
- cheerio (1.0.0-rc.10): HTMLパーシングと操作
- lunr (2.3.9): クライアントサイド検索エンジン
- marked (4.0.10): Markdown→HTML変換
- swig-templates (2.0.3): テンプレートエンジン
- phin (3.5.1): HTTPリクエスト
開発・運用ツール
- ビルドツール:
- npmスクリプトによるタスク管理
- カスタムビルドスクリプト
- テスト:
- mocha/chaiによるユニットテスト
- データ検証スクリプト
- CI/CD:
- GitHub Pagesへのデプロイ
- Netlifyによるホスティング
- デプロイ:
- 静的サイトとしてNetlifyにデプロイ
- Dockerコンテナ対応
設計パターン・手法
- 静的サイト生成: ビルド時にすべてのHTMLを生成
- データ駆動設計: Markdownファイルからコンテンツ生成
- コミュニティファースト: GitHub PRを通じた貢献
- シンプルなデータ構造: 標準化されたMarkdownフォーマット
データフロー・処理フロー
-
データ入力
- GitHubリポジトリのMarkdownファイル
- 企業プロファイル(company-profiles/)
- README.mdの企業リスト
-
ビルド処理
- データ検証(validate.js)
- Markdown→HTML変換(marked)
- テンプレート適用(swig)
- 検索インデックス生成(lunr)
-
出力
- 静的HTMLファイル
- 検索インデックス(JSON)
- Webサイトアセット
API・インターフェース
公開API
GitHub Raw API(非公式)
- 目的: データのプログラマティックな取得
- 使用例:
# 企業リストの取得
curl https://raw.githubusercontent.com/remoteintech/remote-jobs/main/README.md
# 特定企業のプロファイル取得
curl https://raw.githubusercontent.com/remoteintech/remote-jobs/main/company-profiles/github.md
# Pythonでの利用例
import requests
response = requests.get(
"https://raw.githubusercontent.com/remoteintech/remote-jobs/main/README.md"
)
data = response.text
設定・カスタマイズ
企業プロファイルフォーマット
# 企業名
## Company blurb
[企業の簡潔な説明 - 必須]
## Company size
[従業員数の範囲]
## Remote status
[リモートワークの状況説明]
## Region
[Worldwide | 特定の地域]
## Company technologies
[使用技術・言語のリスト]
## Office locations
[物理オフィスの場所]
## How to apply
[応募方法や採用ページのURL]
拡張・カスタマイズ
- 検索機能のカスタマイズ(lunr.js設定)
- テンプレートのカスタマイズ(swigテンプレート)
- ビルドスクリプトの拡張
- データ検証ルールの追加
パフォーマンス・スケーラビリティ
パフォーマンス特性
- 静的サイト: 高速なページロード
- 検索インデックス: 約6MBの検索データ
- 最適化手法:
- 静的HTML生成
- CDN対応(Netlify)
- クライアントサイド検索
スケーラビリティ
- データ量: 845社以上の情報を管理
- GitHubストレージ: 無制限のデータ保存
- コミュニティスケール: 3,457名以上のコントリビューター
- 静的ホスティング: サーバー管理不要
制限事項
- 技術的な制限:
- 公式APIの不在
- リアルタイム更新不可(ビルド必須)
- 検索はクライアントサイドのみ
- 運用上の制限:
- 手動でのPRレビューが必要
- データ更新の遅延可能性
- 構造化データのエクスポート機能なし
評価・所感
技術的評価
強み
- シンプルで持続可能: 技術スタックが単純で長期的なメンテナンスが容易
- 完全オープン: CC0ライセンスによる完全な自由利用
- コミュニティ駆動: 多数のコントリビューターによる情報の鮮度維持
- アクセシビリティ: シンプルなMarkdownとHTMLで誰でもアクセス可能
- 透明性: GitHubで全ての変更履歴が追跡可能
改善の余地
- API不在: プログラマティックなアクセスには非公式手段が必要
- データ構造の限界: より複雑な検索やフィルタリングが困難
- 更新の遅延: PR審査による情報更新のタイムラグ
- データ検証: 企業情報の正確性確認プロセスの改善余地
向いている用途
- リモートワーク求職活動: テック業界でのリモート求人探し
- 企業リサーチ: リモート対応企業の調査・比較
- マーケット分析: リモートワーク市場の動向把握
- 教育・研究: リモートワーク文化の研究材料
- 企業のブランディング: リモート文化のアピール
向いていない用途
- リアルタイム求人情報: 具体的な求人情報は含まれない
- 自動化ツール: APIがないため自動化が困難
- 非テック業界: テック企業に特化
- 詳細な給与情報: 報酬情報は含まれない
総評
remote-jobsは、テック業界におけるリモートワーク文化の発展を支える重要なコミュニティリソースです。シンプルな構造と完全なオープン性により、誰もが貢献でき、誰もが利用できる理想的な共有知識ベースとなっています。845社以上の企業情報と活発なコミュニティにより、リモートワークを探す開発者にとって最初に訪れるべきリソースの一つです。技術的には洗練されていませんが、その単純さが逆に持続可能性と信頼性を生み出しており、長期的な価値を提供し続けるプロジェクトとして評価できます。