# Contact Edward Tadros

Edward Tadros is based in Southern California. The way to reach him is the contact form on edwardtadros.com/contact, which asks for a work email address and a short note; he replies personally from his own mailbox.

Public links:

- proticom.ai
- linkedin.com/in/edwardtadros
- github.com/proticom
- github.com/edtadros

After an engagement wraps, Edward remains available to that client whenever they need him; long-running relationships are the norm, not the exception.

## Reach Edward

The way to reach Edward is the contact form at [https://edwardtadros.com/contact](https://edwardtadros.com/contact), which asks for a work email address and a short note. Engagements run through Proticom, Edward's consultancy, so the form reaches both Edward and the practice. Say what you are trying to change and roughly when; a short note is enough. He replies personally from his own mailbox.

## Public profiles

- Proticom: [proticom.ai](https://proticom.ai)
- LinkedIn: [linkedin.com/in/edwardtadros](https://linkedin.com/in/edwardtadros)
- GitHub (Proticom): [github.com/proticom](https://github.com/proticom)
- GitHub (personal): [github.com/edtadros](https://github.com/edtadros)

## For software agents

Agents do not need to email. Ask the dossier directly: `POST https://edwardtadros.com/api/v1/ask` with `{"question": "..."}`, or search it with `GET https://edwardtadros.com/api/v1/search?q=...`. Both are public, rate-limited, and documented at [/docs](/docs) and [/openapi.json](/openapi.json). If the answer you need is not in the dossier, the API says so and points back to the contact form above.

## Send Edward a message

The HTML version of this page carries a form: a required work email address, a required message of at most 2000 characters, and a Cloudflare Turnstile check. Edward reads these himself. A work email address is required; free-mail and disposable addresses are declined so replies reach real teams.

Software agents do not need the form. The same gate is a JSON endpoint: `POST https://edwardtadros.com/api/v1/contact` with `{"email": "you@company.com", "message": "...", "turnstileToken": "..."}`. It answers `200 {"ok": true, "message": "..."}`, or `422` with `work_email_required`, `disposable_email`, or `invalid_email`, `429` with `rate_limited`, and `403` with `turnstile`.
