Case study
Founder’s contract engagementApplic AI
AI SaaS · Resume Technology · Application Automation
An AI-powered resume and job-application platform designed to help users prepare tailored resumes and manage automated application workflows.
- Role
- Sole backend engineer (contract)
- Engagement
- Founder’s contract engagement
- Period
- Sep 2025 – Jan 2026
Backend built by Tovra’s founder as an independent contractor before Tovra. Frontend work was not part of this engagement.
Product overview
Applic AI is an AI resume builder with automated job applications. Tovra’s founder was the sole backend engineer on a contract engagement, building the service that parses and tailors resumes and runs applications in the background.
Objective
Help users turn one resume into applications tailored to specific roles, and give them a reliable view of what has been submitted, what is in progress, and what failed.
Key user flow
- 1
Upload a resume
The user uploads an existing resume, which is parsed into structured data.
- 2
Target a role
The user adds a job description to tailor against.
- 3
Generate
A tailored resume is generated from the user’s experience and the target role.
- 4
Apply and track
Applications run automatically in the background, each with its own visible status.
Engineering challenges
Unstructured input
Uploaded resumes vary widely in layout and format. Useful tailoring depends on first extracting a reliable structure.
Many upstreams, one queue
Job boards respond at different speeds and enforce different limits. A naive shared queue lets the slowest board block everything.
Partial runs
Background application runs can stop midway. Without careful modeling that becomes an inconsistency someone has to reconcile by hand.
Solution & implementation
Queue-backed Celery workers with per-board rate limiting, so one slow upstream degrades only that board, and a data model in which every application has an explicit, queryable status.
- 01
Parsing and tailoring
Uploads are parsed into structured resume data with the OpenAI API, then tailored against a target job description to generate a new version.
- 02
Queue-backed workers
Applications run as queue-backed Celery workers, separate from the request path, so the API stays responsive.
- 03
Per-board rate limiting
Limits are applied per job board, so a slow or strict upstream degrades only its own work.
- 04
Explicit status model
Users, resumes, versions, job targets and per-application status are modeled in PostgreSQL, so a partial run is a queryable state rather than an inconsistency.
Architecture
- InterfaceResume & application UIUpload, tailor, track (not built by Tovra)
- APIFastAPI serviceResumes, versions, job targets
- AIOpenAI APIParsing and tailored generation
- WorkersCelery + RedisAuto-apply with per-board rate limits
- DataPostgreSQLPer-application status model
- InfrastructureDocker on AWSContainerised services
Technologies
- Python
- FastAPI
- PostgreSQL
- Celery
- Redis
- OpenAI API
- Docker
- AWS
Founder’s role
Oluwakorede Erinle · Sole backend engineer (contract) · Sep 2025 – Jan 2026
- Built the entire backend service as the sole backend engineer.
- Implemented resume parsing and generation on the OpenAI API — extracting structure from uploads, then tailoring against a target job description.
- Built the auto-apply pipeline as queue-backed Celery workers.
- Added per-board rate limiting so one slow upstream degrades that board instead of stalling the whole queue.
- Owned the data model — users, resumes, versions, job targets and per-application status.
Engineering considerations
- Isolate failure domains: a limit per upstream keeps one slow dependency from becoming everyone’s outage.
- Model in-between states explicitly — the interface can only be honest about progress if the data is.
- Versioning resumes lets users compare and reuse tailored output instead of regenerating it.
Building something with similar challenges?
Tovra brings the same engineering care to your product — from the interface to the infrastructure.