ARYAMAN.BUILD™
All work

(Case study · 03)

AutoJobs

AutoJobs home screen: search, application counts and an application moving from applied to shortlisted.

Dealership jobs in Lucknow were posted on a website that most candidates only ever opened on a phone. AutoJobs puts the whole loop in one Android app: a candidate finds a sales or service job, applies in one tap and watches the application move; the dealership posts, reviews and shortlists from the same app. It talks to the portal's existing server, so nothing about the business had to change.

Built for AutoJobs (autojobs.in), a job portal for auto dealerships in Lucknow. The screens shown use the app's own test accounts, not real candidates.

Role
Product design · Interface · App build · Play Store kit · Handover
Year
2026
Type
Client work
Built with
Expo · React Native · TypeScript · RTK Query · Material 3

(Why this app)

How do you turn an existing backend into a phone app people actually use?

AutoJobs already had a website, a server and a list of 137 dealership job roles. What it didn't have was a way in for the people it was for.

Most candidates for sales and service jobs at dealerships live on their phones, often small Android ones, and many are more comfortable in Hindi. Applying, and then finding out what happened, usually meant calling the dealership.

So the job wasn't to invent a new system. It was to make the one that existed usable in someone's pocket, without changing how the business runs.

(What I looked at)

Before I designed a screen

This research is real and came first: written on 25 September 2026, before the app was built, from the live site, its production code and read-only calls to its public API. No login was used.

The live website and its code
What does the business actually do online? 55 pages, 118 server endpoints, live employer plans.
The 137 job roles
What do candidates search for? Sales, service, accounts, CRM, and so on, the vocabulary of a dealership.
Google Play policies
What will Play reject? Website-in-a-shell apps, missing account deletion, unclear data use.
Other job apps
What do these candidates already expect? Phone OTP sign-in, Hindi, quick apply.
Competitive scan · from the research notes, 25 Sep 2026
WhoWhat it isWhat it meant for AutoJobs
EyeQAutojobsAn automobile-sector job portal in IndiaThe closest direct competitor
apna · WorkIndia · Job HaiMass hiring apps with vernacular UI and phone-first sign-upNot dealership-specific, but they set the expectation: OTP login, Hindi, quick apply
Naukri · foundit · Indeed · LinkedInGeneral job boardsExpensive for small dealers and not role-specific
autojobs.comA US car-dealership job board with a near-identical nameA naming risk: the store title needed to say India

A summary of the research document, not a new audit.

(What changed because of it)

Finding, decision, screen

From the research notes · each one is in the shipped app

  1. Most candidates are phone-first, often on small Android phones, and prefer Hindi.

    English and Hindi from day one. Every screen checked down to 320 dp, light and dark.

    Hindi screens

  2. Google Play rejects apps that are just a website in a shell, and the site was built for desktops.

    A real native app with Expo and React Native, not a wrapper.

    The whole app

  3. Employer credits are digital goods, and Play's billing rules apply to them.

    No purchase inside the app in v1. Plans stay on the website.

    Dealership side

  4. Candidates had to call to find out what happened.

    Applied, in review, shortlisted, as a track you can see.

    Application status

(Information architecture)

Two apps inside one install

A candidate and a dealership want opposite things, so each gets its own home behind one login screen. Nothing on the candidate side asks them to understand hiring, and the dealership side stays small.

These are the app's real routes.

AutoJobs

  • Candidate
    • Home
    • Jobs
    • Job page: details · apply · share · save
    • Applied
    • Application: status track
    • Saved
    • Profile: resume · photo · language · theme
  • Dealership
    • Sign in
    • Dashboard
    • Post a job
    • Job: applicants · shortlist · reject · call
  • Everyone
    • Onboarding: role · city · experience
    • Sign in · register · forgot password
    • Company page
    • Delete account

Who it's for

  • Candidate Find, apply, track, save
  • Dealership Post, review, shortlist, call
  • Guest Browse jobs before signing up

(Flows)

Three journeys that had to work

01 · Candidate

  1. Onboarding
  2. Role and city
  3. Jobs, filtered
  4. Job page
  5. Apply in one tap
  6. Applied
  7. In review
  8. Shortlisted

02 · Dealership

  1. Sign in
  2. Post a job
  3. Applicants
  4. Shortlist or reject
  5. Call

03 · Release

  1. Signed .aab
  2. Internal testing
  3. Closed test, if the account needs it
  4. Store review
  5. Production

(Scope)

What made v1, and what waited

The research split v1 in two: the candidate side complete, the dealership side lite. Everything else went on a written v2 list, so the app could ship instead of growing.

Payments stayed out on purpose. Selling credits inside an Android app brings Google's billing rules with it, and the website already sells them.

Candidate: complete

  • Search and filters by role and city
  • One-tap apply
  • Application tracking
  • Saved jobs
  • Resume and photo upload
  • English and Hindi

Dealership: lite

  • Sign in
  • Post a job
  • See applicants
  • Shortlist or reject
  • Call a candidate

Waiting for v2

  • Buying plans in the app
  • Resume database search
  • Excel export
  • HR team management
  • Salary guide and interview tips
  • Career chatbot

(What I ruled out)

Three ways to build it, one that made sense

The cheapest option was also the one most likely to fail review, so the decision was made on paper before any code.

Build options · from the research notes
OptionVerdictWhy
Website in an app shellRuled outGoogle Play rejects apps that are just a website, and a 2.9 MB desktop-first bundle would feel slow
FlutterRuled outA new language, and nothing carries over from the existing React web app
React Native with ExpoChosenThe web app is already React and Redux, so the API layer follows the same shape; one codebase can ship iOS later

(Values)

What I wouldn't trade away

(Mood board)

AutoJobs blue, made readable

The brand already had a blue. I generated a full Material 3 scheme from it, so every text pair stays at 4.5:1 or better in both themes, and kept colour for meaning: green when you're shortlisted, amber for a warning, red for an error.

From the app's Material 3 colour file and its screens

  • AutoJobs blue#0A66C2
  • Primary#004E99
  • Container#BFD5FF
  • Background#F9F9FF
  • Text#191C21
  • Shortlisted#006C50
  • Warning#974806
  • Error#BA1A1A
Application card with a three-step track: applied, in review, shortlisted
Status as a track, not a mystery
The jobs search screen in Hindi
Hindi is a first-class language, not a toggle
Counts of applied, shortlisted and saved jobs
Three numbers a candidate checks
A full-width Apply for this job button with a share button
One tap to apply
  • Familiar
  • Readable on a small phone
  • Bilingual
  • Calm, not flashy

(What I built)

One Android app for both sides of hiring

I built AutoJobs v1.0.0 for Android with Expo, React Native and TypeScript, on the portal's existing server, and handed it over with everything Google Play asks for.

  • Job search and filters
  • One-tap apply
  • Application track
  • Saved jobs
  • Resume and photo upload
  • Dealership: post, review, shortlist
  • English and Hindi
  • Light and dark
  • Play Store kit

The screens

One Android app for both sides of dealership hiring — job seekers search, apply and track; dealerships post jobs and shortlist — on the portal's existing server.

(Up close)

The decisions, on the screen

AutoJobs home: search, counts and the latest application's track12345
  1. Says what the app is for, in the candidate's words
  2. Search by job, role or city: the way people actually look
  3. Applied, shortlisted, saved: the three numbers that matter
  4. The latest application's track, on the home screen
  5. Five tabs, labelled, no hidden menus
Application status: applied, in review and shortlisted, with a congratulations note1234
  1. The status is the headline, not a footnote
  2. Good news is said in plain words
  3. Each step explains itself: what happened and what comes next
  4. "Status is updated by the dealership": who's responsible is clear
The jobs screen in Hindi, with an English toggle1234
  1. Switch language from any screen
  2. Hindi written for the task, not machine-translated labels
  3. Role chips in Hindi, the way people search
  4. The tab bar is translated too

(System)

A new front end on an existing system

The app doesn't own any data. It's a phone-shaped front end for the AutoJobs server, so the website and the app share one source of truth.

Simplified

  1. ScreensExpo Router, one file per route
  2. Languagei18next, English and Hindi
  3. DataRTK Query, cached server calls
  4. ServerThe existing AutoJobs API, unchanged
  5. ReleaseEAS build, Play App Signing
  • Expo · React Native · TypeScript
  • Material 3 theme from AutoJobs blue
  • Secure token storage
  • Light and dark
  • Account deletion page

(States)

Beyond the happy path

(Testing)

What I didn't want to leave to chance

Every button on every screen was tapped automatically, as a guest, a candidate and a dealership. Anything that would write data was answered with a test response, so no live record was changed.

Then the same screens at four widths, in two themes and two languages.

Expo health checks
21 of 21
Widths checked
320, 360 and 412 dp, and tablet
Every screen in
English and Hindi, light and dark

(What I learned)

AutoJobs taught me that most mobile work is respecting what already exists. The server stayed as it was. My job was making it usable in someone's pocket, in their language.

Need something like AutoJobs?

Tell me what you want to build. I'll reply with how I'd build it, a rough timeline and a cost range. Free, and no obligation.

Next project

Parsley