CommunityProgramación y desarrollogithub.com

Nicholas-V-rld/upwork-scout

Encuentra, filtra y puntúa trabajos frescos de Upwork para tu nicho usando el conector MCP oficial de Upwork, luego redacta propuestas honestas para los 3–5 mejores. Solo lectura por defecto; nunca envía ni gasta Conecta sin aprobación explícita. Úsalo cuando el usuario diga "scout upwork", "encuéntrame trabajos", "ejecuta el scout", "scout diario" o quiera borradores de propuestas para su nicho.

¿Qué es upwork-scout?

Upwork Scout es una habilidad para agentes de IA (compatible con Claude Code, Cursor, Codex y otros) que automatiza la búsqueda, filtrado y puntuación de trabajos en Upwork según un nicho definido por el usuario. Su objetivo es ahorrar Conecta identificando solo las ofertas más prometedoras y redactar propuestas honestas basadas en pruebas reales. Soporta búsquedas inteligentes y por título, verifica el saldo de Conecta, filtra trabajos ya aplicados o con malas calificaciones, y puntúa cada trabajo de 0 a 10 según señales clave (trabajos de reparación, clientes con alto gasto, etc.). Luego redacta propuestas personalizadas, citando solo información verificable del perfil del freelancer. Todo el proceso es de solo lectura hasta que el usuario da aprobación explícita para enviar. Es ideal para freelancers que quieren optimizar su tiempo y evitar trabajos de baja calidad.

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Nicholas-V-rld/upwork-ai-playbook/tree/main/skills/upwork-scout

Installed? Explore more Programación y desarrollo skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

Upwork scout

Encuentra trabajos que valen la pena, descarta los que desperdician Conecta y redacta propuestas que solo usan pruebas que el freelancer puede respaldar.

Antes de empezar

  1. Lee me.md (copia me.example.md la primera vez y complétala). Contiene el nicho, tarifa, términos de búsqueda y las únicas pruebas que puedes usar.
  2. Llama a list_accounts y elige la cuenta TALENT mencionada en me.md. El conector puede cambiar de cuenta entre sesiones. Si la cuenta nombrada no aparece, detente y dilo. Nunca redactes para la persona equivocada.
  3. Lee el saldo de Conecta con get_profile action=connects_balance.

1. Buscar

Ejecuta cada búsqueda y luego elimina duplicados por ID de trabajo:

  • find_jobs smart_search mode=most_recent, days_posted=2, verified_payment_only=true
  • find_jobs search con title = cada término de título en me.md, verified_payment_only=true, proposals_max=10
  • find_jobs search con query = las "palabras problema" en me.md (ej. "hacked OR slow OR broken"), mismos filtros

Trucos: title no se puede combinar con query ni con sort=relevance. search no tiene filtro de fecha, así que usa smart_search mode=most_recent para "publicado hoy".

Omite cualquier ID de trabajo ya listado en un archivo anterior en la carpeta de salida.

2. Revisar, luego descartar

Llama a find_jobs get en los ~10 mejores. Descarta un trabajo si:

  • applied es verdadero, o activityStat.jobActivity.totalHired ≥ 1, o totalOffered ≥ 1
  • preferred_locations.location_required es verdadero y excluye el país del freelancer
  • la feedback_score del cliente es inferior a 4.0, o las reseñas recientes son de 1–2★ (márcalo si el trabajo es excelente por lo demás)
  • está fuera del nicho en me.md

3. Puntuar (0–10), mantener los 3–5 mejores

SeñalPuntos
Un trabajo de reparación (roto, hackeado, lento, checkout fallido, migración)+3
Construcción principal en el nicho+2
Trabajo continuo o retainer mencionado+2
Cliente gastó $1K+ con calificación 4.5★++2
0 entrevistados y menos de 5 propuestas+1
Cuesta más de 20 Conecta−1

4. Redactar

Para cada selección:

  • La primera línea trata sobre su trabajo. Si la publicación menciona una URL pública, obténla (timeout de 20s) y abre con algo real que viste. Los clientes solo ven las dos primeras líneas en su lista, así que un inicio genérico nunca se abre.
  • Luego un plan numerado, un precio y una pregunta al final.
  • Responde cada pregunta de selección y obedece exactamente cualquier instrucción de "empieza tu propuesta con X".
  • Las pruebas provienen solo de me.md: enlaces vivos, números medidos, historias confirmadas. Cualquier cosa que solo el freelancer pueda saber (rol en un proyecto, una reparación pasada, tiempo de respuesta, un precio que no ha fijado) se pone como [CONFIRMAR: ...]. Nunca inventes resultados, clientes, números o experiencia.
  • Mientras la cuenta tenga menos de 10 reseñas, fija el precio para ganar y planifica para vender un plan de mantenimiento después de la entrega.

5. Escribir el archivo

Escribe <carpeta de salida>/YYYY-MM-DD.md que contenga:

  1. Una línea de encabezado con el saldo de Conecta del día.
  2. Una tabla clasificada: enlace del trabajo, cliente (país, gasto, calificación), costo en Conecta y por qué fue seleccionado.
  3. Una línea "Omitidos" explicando por qué los demás fueron descartados.
  4. El total de Conecta de todas las selecciones.
  5. Un borrador por selección.

Si nada pasa los filtros, aun así escribe el archivo con una tabla vacía y la razón.

6. Enviar (solo cuando el usuario lo diga)

Haz esto una propuesta a la vez. Upwork mantiene una sola vista previa abierta, y crear una segunda invalida la primera.

  1. list_freelancer_proposals action=invitations y action=list. Si hay una invitación para el trabajo, usa accept_invitation en lugar de create.
  2. manage_proposals create construye una vista previa. Muestra al usuario el texto completo, connects_cost, connects_balance, cualquier unmet_preferred_qualifications y el bloque de boost (current_top_bids y recommended_connects, o "boost no disponible").
  3. Los trabajos a precio fijo necesitan un payment_mode (by_project o by_milestone), y el usuario debe aceptar el texto de Asistencia en Disputas de Upwork antes de enviar.
  4. Pregunta sobre archivos adjuntos y sugiere adjuntar proyectos de portfolio relevantes mediante portfolio_project_ids (de get_profile action=list_highlights).
  5. Llama a confirm_preview solo después de un sí explícito. Luego lee la propuesta de nuevo con list_freelancer_proposals action=get y verifica que connectsBid coincida con el boost aprobado.

Nunca

  • Enviar, editar, retirar, enviar mensajes o aceptar nada sin la aprobación explícita del usuario para esa acción específica.
  • Poner los hechos de una persona en la cuenta de otra.
  • Rellenar un hueco [CONFIRMAR] con una suposición.

Skills relacionados