-- Enable the pgvector extension to work with embedding vectors create extension if not exists vector; -- Create a table to store embeddings for each profile column -- We use 1024 dimensions for the BAAI/bge-m3 model create table if not exists profile_embeddings ( id uuid references profiles(id) on delete cascade primary key, headline vector(1024), summary vector(1024), skills vector(1024), technical_skills vector(1024), experience vector(1024), certifications vector(1024), languages vector(1024), created_at timestamp with time zone default timezone('utc'::text, now()) not null, updated_at timestamp with time zone default timezone('utc'::text, now()) not null ); -- Enable Row Level Security (RLS) alter table profile_embeddings enable row level security; -- Create policies (Adjust based on your actual auth requirements) -- Allow read access to everyone (or authenticated users) create policy "Allow read access for all users" on profile_embeddings for select using ( true ); -- Allow update/insert only for service_role or the user who owns the profile -- (Assuming auth.uid() matches the profile id) create policy "Users can update their own embeddings" on profile_embeddings for all using ( auth.uid() = id );