A shortcut to the good stuff
Arrow keys to explore Enter to go
Back to selected work

CASE 12 / Product & systems

Your next move, straight from the source.

A solo-built career discovery workspace: find roles from company career pages, follow employers, and track applications. Live public preview, starting with India.

THE PROJECT
Rolecall
THE CONTEXT
Independent product
THE CHAPTER
Live public preview
THE PROBLEM
Job hunting across company career pages leaves discovery and application tracking scattered.
WHAT I OWNED
Solo product design, ingestion pipeline, PostgreSQL search, API, interface, and private career workspace.
THE RESULT
A live India-first preview with real listings, direct employer links, and application tracking.

From the live product

Rolecall's live India-first search page showing filters, real company job listings, and a role detail panel.

Public Rolecall search, captured 28 October 2026 without signing in. Listing counts and availability are a point-in-time view.

My contribution: Solo implementation of the discovery interface, source-backed job index, search API, and connected career workspace.

COMPONENTS / RESPONSIBILITIES / SCOPE

How the parts fit together.

The ingestion foundation and public product share a PostgreSQL job index. The hosted preview serves an imported snapshot; its continuous ingestion worker is not running.

  1. 01

    Company sources

    Adapters read public ATS APIs first, structured JobPosting data second, and use a browser fallback where needed.

    The boundary
    Each source and job retains a stable identity and its original application destination.
    Implementation note
    API-first collection reduces browser work, but source availability and indexing permissions still vary.
  2. 02

    Ingestion and storage

    PostgreSQL holds the source registry, leased work queue, normalized jobs, and fetch logs.

    The boundary
    Expiring leases and owner checks prevent a stale worker from completing another worker's assignment.
    Implementation note
    One database keeps the system small. The scheduler exists in the foundation but is not a continuous service in the public preview.
  3. 03

    Search and discovery

    FastAPI combines full-text search, trigram matching, normalized locations, filters, and deterministic sorting.

    The boundary
    Public results link back to the employer and show source-check information rather than promising a role is still open.
    Implementation note
    The product disables the POC's page-one company cap to keep one consistent ordering across pages.
  4. 04

    Private career workspace

    Next.js connects account-backed saved jobs, application stages, notes, company follows, saved searches, and an inbox.

    The boundary
    Browsing is public; personal workspace operations require an authenticated account.
    Implementation note
    Alerts are future-only and in-app, not job-alert email. Account export gives users a copy independent of the free preview.

Conceptual responsibility map. Not a production deployment diagram or a screenshot.

01 / The problem.

I built Rolecall to help me, my friends, and other people looking for their next opportunity. Finding a role meant moving between company career pages and keeping a separate record of applications. I wanted to bring discovery and a private career workspace together, preserve the original source, and send applications directly to the employer.

02 / My role.

I designed and built Rolecall solo, from the Python ingestion pipeline and PostgreSQL search to the FastAPI backend and Next.js product interface. My scope includes source discovery, job normalization, search and filters, company pages, account and application workflows, saved searches, employer follows, in-app alerts, and the free public deployment.

My contribution
Solo product design and end-to-end implementation across ingestion, search, the web interface, private workspaces, and deployment.
Shared scope
Job listings belong to their company sources. Next.js, FastAPI, and PostgreSQL provide the application foundation; Vercel, Render, Supabase, and Brevo provide hosting and email services.
What changed
A live India-first public preview with real indexed listings, direct employer application links, and private career tracking.

03 / Start at the company, not another repost.

I began with a career-page ingestion POC, then built a product around its real job database. Sources are identified by their platform and source key; jobs are upserted by source and external job ID. Greenhouse, Lever, and Ashby can expose public structured endpoints, so a browser crawl is a fallback rather than the default.

The public interface adds India-first discovery, filters, shareable role pages, and company pages. A source-check timestamp helps people judge freshness, and the apply link goes to the employer. It is not a guarantee that a vacancy remains available or that every remote role accepts applicants from every location.

05 / Keep the search public and the next steps private.

People can browse without an account. Signing in adds saved jobs, application stages, and private notes, so the product supports the work after finding a promising listing. Company follows and saved searches connect discovery to a future-only in-app inbox.

I also built verification and password-recovery email, password changes, JSON account export, and password-confirmed deletion. Verification and recovery use Brevo in the public deployment; job alerts stay in the application and are generated when alert processing runs.

06 / Ship the product without hiding the preview limits.

The public deployment uses Vercel, Render, and Supabase free services. Only public job-index and logo data was transferred from the local environment, not local accounts or private workspaces. Public users create their own accounts.

I kept collection separate from the public product. Source-check timestamps stay visible, and account exports let users retain a copy of their workspace. The current hosting and refresh limits are listed below.

07 / The result.

  • Turned a career-page ingestion POC into a hosted discovery product with real company-source listings.
  • Connected public search, filters, company pages, and direct application links.
  • Built private application tracking, employer follows, saved searches, and an in-app inbox.
  • Shipped account recovery, export, and deletion alongside explicit source-freshness and free-hosting limits.

05 / CONTACT

ROLES & FREELANCE PROJECTS

Have a role
or project?

I'm open to senior SDE roles and freelance work.
Send the problem, your team's needs, and any timeline.

HITEC City, Hyderabad, India
SEND ME A NOTE

What's on your mind?

Sends via Formspree.
A conversation, not a mailing list.

HAVE A PROJECT IN MIND?

What I can help with.

Focused freelance work, with scope and deliverables agreed before the build.

Backend & APIs

Node.js, TypeScript, and Fastify services, PostgreSQL and Drizzle data models, and fixes to existing backend behavior.

Example deliverablesTyped API contracts, backend implementation, and focused tests.

Third-party integrations

Email, calling, messaging, payments, and product-aware AI integrations, including authenticated webhooks and receipt deduplication.

Example deliverablesProvider integration, webhook handling, and a recovery/runbook handoff.

Workflow systems

Order stages, partial-progress tracking, and role-specific interfaces for operations teams.

Example deliverablesWorkflow modeling, scoped permissions, and an operational interface.

Tell me what you're building