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.