Skip to content

Feature: GPT Action Integration for AI-Powered Resume Generation and Job Automation #33

@vitorhugo-java

Description

@vitorhugo-java

Description

We want to integrate a private Custom GPT with the Spring Boot JobApplyTracker API so the GPT can help analyze job vacancies and pre-fill application data.

This integration should not invent new fields. The GPT must only map information into the fields that already exist in the current application model and request DTO.

The goal is to make the user flow faster by allowing the GPT to:

  • analyze a vacancy description,
  • extract relevant structured information,
  • suggest values for existing application fields,
  • submit or prepare the application data through the API.

At this stage, the application does not generate a CV yet. That capability is planned for a separate future issue. However, this issue should keep that intention documented so the GPT integration can later evolve to support CV generation once that feature exists.

Current Scope

The GPT integration should work only with the existing application data model and API contract.

The GPT must fill only fields that already exist in the system, such as:

  • vacancy name
  • recruiter name
  • organization
  • vacancy link
  • application date
  • RH accepted connection
  • interview scheduled
  • next step date/time
  • status
  • recruiter DM reminder enabled
  • note
  • existing Google Drive-related fields, when applicable

The GPT must not create new business fields like:

  • AI summary
  • company culture score
  • custom vacancy classification
  • generated CV output
  • any other synthetic column that does not already exist in the backend model

Authentication

For now, this GPT will be private.

The GPT must authenticate using the same JWT Bearer token already used by the application's login flow.

Authentication behavior

  • The user logs into the application normally.
  • The user manually provides the access token in the Custom GPT Action authentication configuration.
  • Requests to the GPT endpoints must include:
Authorization: Bearer <jwt_token>

Future authentication note

In a future version, this integration may migrate to OAuth 2.0 Authorization Code flow to support user-specific authorization in a cleaner and more scalable way.

API Contract

The GPT should interact with dedicated API endpoints under /api/gpt/*.

The OpenAPI specification should be exposed so the GPT Actions configuration can consume it.

Example responsibilities for the GPT endpoints:

  • analyze a vacancy
  • map extracted data to the existing application DTO
  • create or update an application using the current backend flow
  • return structured data compatible with the existing frontend and backend model

Expected Behavior

When a vacancy is provided, the GPT should:

  1. analyze the vacancy text or link,
  2. extract relevant information,
  3. map the result only to existing fields,
  4. return structured output aligned with the current API contract,
  5. avoid generating unsupported fields.

Notes About CV Generation

The application currently does not generate CVs.

However, this integration should be documented with the expectation that:

  • CV generation will be implemented in a separate issue,
  • the GPT integration may later be extended to use that feature,
  • the current issue should remain focused only on vacancy analysis and application pre-filling.

Acceptance Criteria

  • GPT Actions can authenticate using a JWT Bearer token from the current login flow.
  • GPT endpoints are protected and require authentication.
  • GPT can analyze vacancies and map data only to existing backend fields.
  • No new unsupported fields are introduced in the request/response contract.
  • The API contract is documented and exposed through OpenAPI.
  • The current lack of CV generation is explicitly noted as a future enhancement.
  • The implementation remains compatible with a future OAuth 2.0 migration.

Future Improvements

  • OAuth 2.0 authentication for the GPT integration.
  • CV generation support once that feature is implemented.
  • Additional automation around vacancy tracking and application enrichment.

Metadata

Metadata

Labels

No labels
No labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions