Skip to main content

URL Path Strategy

Multi-Country rollout

Stick to jodapp.com (root) for SG market.

When expanding to other countries, prefix /{geo_country.iso2}/ for the new country pages.

TimeframeURLContentTechnical Status
Nowjodapp.com/jobsSingapore Jobscountry_code defaults to sg
Futurejodapp.com/jobsSingapore Jobscountry_code defaults to sg
Futurejodapp.com/id/jobsIndonesia Jobscountry_code explicitly id

Backend Implications

Models need country reference

Models like Listings::Job, Org::Copmany Marketing::Campaign must have an associated country.

CurrentRequest needs country reference

# app/controllers/application_controller.rb
class ApplicationController < ActionController::API
around_action :set_market_context

private

def set_market_context
# If params[:country_code] is present, use it.
# IF NOT, default to 'sg'.
code = params[:country_code] || 'sg'

Current.country_code = code
yield
end
end

Frontend Implications

Phase 1: SG only

// routes.ts (Phase 1)
export default [
// No /:countryCode prefix here!
route("jobs", "routes/jobs/index.tsx"),
route("jobs/:company/:location/:role", "routes/jobs/show.tsx"),
];

Phase 2: Adding a new country (e.g. ID)

// routes.ts (Phase 2 - Future)
export default [
// 1. Singapore (Legacy/Default) - Keeps existing SEO URLs
route("jobs", "routes/jobs/index.tsx"),

// 2. Indonesia (New) - Uses the prefix
route("id/jobs", "routes/jobs/index.tsx"), // Reuses same component!
];

URL Paths

When migrating pages from jodapp.com (squarespace) to jodapp-web, we improve the urls.

Here's the jodapp-web-paths.gsheets

  • use paths tab

URL Path Groupings

Each URL Paths is part of a "grouping" to fulfil a business need.

  • Job Engine
  • Growth & Retention
  • Corporate Identity
  • Support
  • Legal

Job Engine

Urls in this group serves the core purpose of our product.

  • /jobs: lists all jobs
  • /jobs/company-a/location-x/cashier: lists details of a single job

Growth and Retention

Content that is our "sales pitch"

  • our features like next-day payments, loyalty points for fulfilling jobs, insurance, etc.

These need to provide a strong signal to google, so we generally place them at the top level path.

Instead of /helpcenter/workerinsurance, we place it in the top level /insurance

We should also include FAQ for each "sales pitch" or "service offering" in each of these pages to increase time spent on the page to boost signals that it is an important page.

Support

Help pages, FAQ would be nested under /help, keeping it simple.