Javier Rodeiro

Building a Personal Brand Audit Tool with Firecrawl, Gemini and Lovable

January 23, 2026

I built Personal Brand Audit (BrandAudit), a tool that tells you what the internet says about you. Enter your name and job title, and it searches the web, scrapes the results, and gives you a score.

The idea came from a simple question: what do recruiters, investors, and clients actually see when they Google your name?

Brand audit result card for Javier Rodeiro: score 100, grade S, 5 of 5 categories passed. Deep scan results: brand uniqueness 50 of 100, AI readiness 50 of 100, 1 name collision found.

The Stack

The app runs on three services:

Lovable handles the frontend and backend. I built the React app and Supabase Edge Functions entirely through prompts. Lovable also provides an AI Gateway for accessing models like Gemini.

Firecrawl handles web intelligence. I use three endpoints: /search to find mentions of your name, /scrape to probe personal domains (automatically checking firstname+lastname.com/.es/.io), and /agent to run deeper analysis.

Gemini handles the analysis — scoring, grading, and category evaluation. It uses gemini-2.0-flash with user-provided keys, with automatic fallback to gemini-3-flash-preview via Lovable’s AI Gateway when quota limits are hit. Your digital presence is evaluated across five categories: visibility, authority, consistency, recency, and personal domain ownership.

The Basic Audit

When you submit your name, the edge function calls Firecrawl’s /search endpoint:

const response = await fetch('https://api.firecrawl.dev/v1/search', {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${FIRECRAWL_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    query: `"${name}" ${context}`,
    limit: 10,
    scrapeOptions: { formats: ['markdown'] },
  }),
});

One call returns search results with full page content as markdown. For personal domains, the app probes possible URLs (firstname+lastname.com, .es, .io) with /scrape. If a valid site exists, it boosts the score.

The markdown content goes to Gemini for analysis. You start at 100 points and lose points for each category where issues are found (penalties range from -10 to -20 per category). Users with minimal digital presence see a special “ghost” state encouraging them to build their online footprint.

The Deep Scan

The basic audit tells you what exists. The Deep Scan tells you how defensible your name is.

This feature uses Firecrawl’s /agent endpoint:

const response = await fetch('https://api.firecrawl.dev/v2/agent', {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${FIRECRAWL_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    prompt: agentPrompt,
    schema: {
      type: 'object',
      properties: {
        interference_score: { type: 'number' },
        collision_count: { type: 'number' },
        personal_website: { type: 'string' },
        has_schema: { type: 'boolean' },
      },
    },
    model: 'spark-1-mini',
  }),
});

The agent uses Firecrawl’s spark-1-mini model internally (not Gemini) and runs autonomously: searching, navigating, and extracting structured data. It analyzes name collisions, detects personal websites, checks for Schema.org markup, and returns actionable recommendations.

Deep Scans use approximately 10–15 Firecrawl credits per run (agent jobs are more expensive than simple searches). There’s a 24-hour cooldown between scans, which is bypassed if you provide your own Firecrawl key.

The AI Layer

The app uses your Gemini key first (gemini-2.0-flash) to keep costs on your free tier. If your quota is exceeded (429/403 errors), it falls back to Lovable’s AI Gateway, which happens to run a newer model (gemini-3-flash-preview), but exists primarily as a reliability safety net:

const response = await fetch('https://ai.gateway.lovable.dev/v1/chat/completions', {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${LOVABLE_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    model: 'google/gemini-3-flash-preview',
    messages: [
      { role: 'system', content: systemPrompt },
      { role: 'user', content: userPrompt },
    ],
  }),
});

Getting Started with the Stack

If you want to build something similar, here is how to get set up.

Lovable

Lovable is an AI app builder. You describe what you want, and it generates a full-stack app with React frontend and Supabase backend.

  1. Go to lovable.dev and sign up
  2. Create a new project and describe your app
  3. Lovable generates the code and deploys it automatically
  4. Use the built-in editor to refine through prompts

For backend functions, Lovable creates Supabase Edge Functions. The AI Gateway is available through ai.gateway.lovable.dev.

Google AI Studio (Gemini)

Google AI Studio provides free access to Gemini models.

  1. Go to aistudio.google.com/apikey
  2. Sign in with your Google account
  3. Click “Create API Key”
  4. Copy the key (starts with AIza)

The free tier includes 1,500 requests per day.

Firecrawl

Firecrawl turns websites into structured data for AI.

  1. Go to firecrawl.dev and sign up
  2. Navigate to the API Keys section in your dashboard
  3. Create a new key (starts with fc-)
  4. Copy the key

The free tier includes 500 credits per month. A /search call uses about 10 credits. Deep Scan agent jobs use 10-15 credits per run.

Reliability Features

The backend includes retry logic with exponential backoff for transient network errors, automatic fallback to the Lovable AI Gateway when user Gemini keys hit quota limits, and a ghost state for users with minimal digital presence.

Why This Stack

Lovable removes the boilerplate. You focus on the product, not the infrastructure.

Firecrawl removes the parsing. You get clean markdown from /search and structured JSON from /agent. No HTML cleanup. No brittle selectors.

Try It

The tool is free. You just need your own API keys from:

Affiliate disclosure: The Firecrawl link is an affiliate link.

Project: Personal Brand Audit