Find your future nearby.
Apprentice Atlas is a bilingual, map-first mobile app that helps students and people leaving university without a degree turn uncertainty about their future into a concrete next step. It combines official apprenticeship listings from Germany and the United Kingdom with grounded GPT-5.6 guidance, native discovery, and a private application journey.
Built for the Education category of OpenAI Build Week 2026 with Codex, GPT-5.6, Expo, React Native, and Supabase.
Young people are often asked to choose a career before they understand what the available roles actually involve. Traditional job boards assume that users already know what to search for, present dense employer language, and stop at the application link.
Apprentice Atlas starts one step earlier: What opportunities exist around me, what would I actually do there, and what should I do next?
- Discovers official apprenticeships and early-career opportunities on a native map or searchable list.
- Supports Germany and the United Kingdom in German and English.
- Uses location when permitted and provides a manual city/country fallback when it is not.
- Rewrites dense vacancy text in clear, youth-friendly language with GPT-5.6.
- Produces balanced “Good if…” and “Not so good if…” guidance grounded in the listing.
- Answers focused questions about a role without inventing facts the advert does not contain.
- Generates job-specific interview questions and an honest skill-gap view.
- Lets signed-in users save opportunities, track applications, manage interviews and deadlines, and export their progress.
- Keeps browsing open without an account while protecting personal data with authentication and row-level security.
Post-school uncertainty
↓
Official opportunities nearby
↓
Plain-language understanding
↓
Honest fit guidance
↓
A concrete next action
The map creates awareness, but the product does not end at discovery. Home adapts to the user's journey, saved roles become a shortlist, and the application tracker turns an interesting vacancy into an actionable plan.
GPT-5.6 is a user-facing part of the shipped experience, not a decorative chatbot. The app calls it through protected Supabase Edge Functions using the canonical job record fetched server-side.
| Experience | GPT-5.6 contribution | Product safeguard |
|---|---|---|
| In simple words | Rewrites dense vacancy text for a younger audience. | The original listing and official source remain visible. |
| Good if / Not so good if | Converts stated requirements and conditions into balanced fit guidance. | Structured output is validated and grounded in the advert. |
| Job Q&A | Answers practical questions about duties, requirements, and working life. | The answer explicitly admits when the source does not say. |
| Interview preparation | Creates role-specific practice questions and answer guidance. | The vacancy is fetched server-side and outputs follow a strict schema. |
| Skill-gap view | Compares a short user background with stated requirements. | It distinguishes evidence, learning areas, and positioning advice without inventing qualifications. |
OpenAI credentials never ship in the app. Personal preparation requests use store: false; the editable background draft stays on the device and is processed transiently for the requested analysis.
We used Codex as a persistent, repository-aware product and engineering partner from the first specification to physical-iPhone testing. The collaboration followed a repeatable loop:
- Define the user problem and product boundary.
- Turn the decision into a small, testable specification.
- Implement a focused vertical slice with Codex.
- Test in the browser and on a physical iPhone.
- Give direct product and visual feedback, then iterate.
- Run automated checks and independent review passes before merging.
Codex accelerated work across the stack:
- Specification and architecture: It translated product discussions into acceptance criteria, typed contracts, migrations, API boundaries, and implementation plans.
- Native product development: It implemented and connected Expo Router screens, map/list discovery, bilingual onboarding, authentication, Supabase data flows, and native device features.
- Debugging: It traced an EAS dependency failure to an out-of-sync lockfile, investigated a launch-time iOS crash, fixed overly sensitive map refreshes and an empty filter sheet, and helped make native modules reliable in the development client.
- AI integration: It built protected Edge Functions, structured-output schemas, grounding rules, quotas, and tests for explanations, Q&A, and preparation.
- Quality: It added regression coverage for source normalization, authentication return paths, RLS/RPC ownership, ranking, application states, accessibility, navigation, native fallbacks, and launch readiness.
- Design iteration: It used physical-device screenshots and native reference patterns to rebuild screens that initially felt sparse, text-heavy, or too much like a responsive website.
The key product decisions remained human-led: the audience, countries, official-data-only approach, bilingual experience, anonymous browsing boundary, optional location, map-as-a-dedicated-tab structure, and the requirement that AI admit uncertainty all came from deliberate product choices. Codex made those decisions faster to implement and easier to test; it did not replace them.
The commit history preserves that collaboration from the initial Expo project and written design through full-stack implementation, device debugging, UI critique, and release hardening. The more detailed engineering account is available in the app README.
Expo + React Native mobile app
│
├── anonymous discovery and local preferences
├── Supabase Auth (magic link and Sign in with Apple)
└── Supabase Postgres with owner-only RLS
│
├── official UK apprenticeship API
├── official Bundesagentur für Arbeit endpoints
└── Supabase Edge Functions
│
└── OpenAI Responses API / GPT-5.6
The application consumes official job sources through server-side adapters; it does not scrape job websites. Provider payloads, service-role credentials, OpenAI credentials, AI caches, and synchronization records remain server-side.
- Expo SDK 57, React Native, Expo Router, and TypeScript
- Native Apple Maps on iOS and React Native Maps
- Supabase Auth, Postgres, Storage, Row Level Security, RPCs, and Edge Functions
- OpenAI Responses API with GPT-5.6 and validated structured outputs
- Official German and UK apprenticeship data sources
- Vitest, Expo lint, TypeScript, Expo Doctor, and static platform exports
- EAS development builds tested on a physical iPhone
The repository currently contains 362 automated tests, with 7 environment-gated integration tests skipped in the standard local run. The implemented verification workflow also includes Expo lint, TypeScript, Expo Doctor, static web export, migration/RLS checks, and physical-device testing.
From the application directory:
cd apprentice-atlas
npm ci
npm test
npm run lint
npx tsc --noEmit
npx expo-doctor
npx expo export --platform webRequirements: Node.js, npm, and a Supabase project or local Supabase stack.
cd apprentice-atlas
npm ci
cp .env.example .env.local
# Add EXPO_PUBLIC_SUPABASE_URL and EXPO_PUBLIC_SUPABASE_ANON_KEY
npx expo start --webFor native calendar, notification, sharing, StoreKit, map, and haptic behavior, use a fresh EAS development client on a physical device:
cd apprentice-atlas
npx eas build --platform ios --profile development
npx expo start --dev-clientServer-only credentials such as OPENAI_API_KEY, source API keys, and SUPABASE_SERVICE_ROLE_KEY must be configured as Supabase project secrets. Never expose them as EXPO_PUBLIC_* variables.
Full setup, migration order, source configuration, security boundaries, native-build notes, and limitations are documented in the application README.
.
├── README.md # Project and Build Week overview
├── LICENSE # PolyForm Noncommercial 1.0.0
└── apprentice-atlas/
├── src/ # Expo application and shared product code
├── supabase/ # Migrations, Edge Functions, and local fixtures
├── docs/ # Product design, implementation, and demo notes
├── assets/ # App-owned visual and animation assets
└── README.md # Detailed engineering and operations guide
- Anonymous users can browse without creating an account.
- Favorites and application records are owner-only through Supabase RLS.
- The original vacancy and official source remain available beside AI guidance.
- AI outputs use strict schemas and return an explicit unknown state when evidence is missing.
- Personal preparation text is not stored in the shared job AI cache.
- Calendar entries, local reminders, PDFs, and share cards are created only after a user action.
- Users can export or delete their account data from the app.
Apprentice Atlas is a functional Build Week release tested through native development builds on a physical iPhone. AI availability and live source synchronization depend on correctly configured server-side credentials and network access. The app supports discovery and preparation; final applications are completed on the official provider page.
Copyright © 2026 Estopia Engineering Ltd. Apprentice Atlas is source-available under the PolyForm Noncommercial License 1.0.0. Noncommercial use, study, modification, and distribution are permitted under its terms. Commercial use, commercial deployment, and commercial redistribution require a separate written license from Estopia Engineering Ltd.
Third-party packages such as Expo and React Native, official-source content, trademarks, APIs, and provider data are not claimed as property of Estopia Engineering Ltd and remain subject to their respective licenses, terms, and ownership rights.