DEV Community

Gerardo Andrés Ruiz Castillo
Gerardo Andrés Ruiz Castillo

Posted on • Originally published at geanruca.gitvlg.com

Enhancing User Profiles with AI-Powered Data Extraction in Landing

The devlog-ist/landing project focuses on creating landing pages and portfolio sites. Recently, efforts have been made to enhance user profiles by adding new fields and integrating AI-powered data extraction from CV uploads.

New Profile Fields

Two new profile fields, technologies and notable_projects, have been added to user profiles. These fields allow users to showcase their skills and accomplishments more effectively. A database migration was implemented to accommodate these new fields.

Filament Repeaters and Visibility Toggles

Filament repeaters were used to manage the input of multiple technologies and notable projects. Visibility toggles provide users with control over which sections are displayed on their portfolio.

AI-Powered CV Upload

A key feature is the AI-powered CV upload functionality. When a user uploads their CV, the system extracts profile data using Prism's structured output capabilities. This automates the population of profile fields, saving users time and effort.

Let's illustrate a simple example of how data extraction could be handled in Go:

package main

import (
    "fmt"
)

type ProfileData struct {
    Technologies []string `json:"technologies"`
    Projects    []string `json:"projects"`
}

func extractDataFromCV(cvContent string) (ProfileData, error) {
    // Simulate AI-powered data extraction
    data := ProfileData{
        Technologies: []string{"Go", "React", "Docker"},
        Projects:    []string{"Landing Page", "API Service"},
    }
    return data, nil
}

func main() {
    cvContent := ""
    profileData, err := extractDataFromCV(cvContent)
    if err != nil {
        fmt.Println("Error extracting data:", err)
        return
    }
    fmt.Printf("%+v\n", profileData)
}
Enter fullscreen mode Exit fullscreen mode

This Go example simulates the extractDataFromCV function, which would ideally use a service like Prism to extract structured data from a CV's text content. The extracted data is then mapped to a ProfileData struct.

Display and Translation

The new sections for technologies and notable projects are displayed in all eight portfolio theme stats views. Translations for these sections have been added in four languages to support a global audience.

Takeaway: Consider integrating AI-powered data extraction to streamline user profile creation and enhance the user experience in your projects.

Top comments (0)