← all playbooks

Make an old recruitment database searchable again

A review list for the segment you chose: each person's current title and employer from their live profile, the LinkedIn URL where it was missing, likely duplicates paired up, and records that look retired or unreachable flagged. Nothing in your CRM changes until you approve it.

use when
your database is too out of date to search, with old job titles, people who have moved on and the same person in it twice
starts from
Your database

The prompt

Paste it into Claude Code or the Claude desktop app with Hyreflow connected. The first line tells your agent to use Hyreflow, so it reads the play, asks before it spends anything, and hands the work back to you.

paste this into Claude
Use hyreflow and clean up and refresh one segment of my <CRM_NAME> database.

The segment: <SEGMENT, E.G. A SKILL TAG OR ADDED BEFORE A DATE>. Count it
first, and tell me how many records have a LinkedIn URL and how many do not.

For each record:
- Pull the person's live profile and put their current job title and
  employer next to what my record says.
- Where the LinkedIn URL is missing, find it and say how sure the match is.
- Flag likely duplicates as pairs, with the reason. Do not merge anything.
- Flag anyone who looks retired, has left <INDUSTRY_OR_MARKET>, or cannot
  be found at all. Do not delete anything.

Run five rows first and tell me what the full run costs before you do the
rest.

Show me what you would change before you write anything. I want a review
list: record, field, old value, proposed value, how sure you are. Write
back only the rows I approve, one record first, and log every change.

Replace every <PLACEHOLDER> with your own detail. Everything else can stay as written.

What you need first

  • A connected ATS or recruitment CRM
  • A segment to start with, not the whole database
  • LinkedIn URLs on the records where you have them, since they give the most reliable match
  • A Hyreflow workspace with credits

Tools it can reach for

The agent picks per step from what your workspace has. Nothing here is required by name.

What happens when you run it

Free steps are marked free. Anything that spends credits is marked, and the agent asks before the first paid run of any size.

  1. 1

    Count and choose a segment

    free

    The agent reads your records and counts the segment: how many have a LinkedIn URL, how many have only a name and an employer, how many have neither. It is a read of your own system, so it is free, and it tells you how reliable the refresh will be.

  2. 2

    Pair the exact duplicates

    free

    Records that share an email, a mobile or a LinkedIn URL are paired by plain comparison. No judgement is needed and nothing is spent.

  3. 3

    Pilot five records and price the run

    credits

    Five records run end to end so you see the real output and the real cost. The agent then states the most the segment could cost and waits for your go-ahead.

  4. 4

    Refresh title and employer from the live profile

    credits

    Each person's profile is looked up through a chain of providers that stops at the first one to answer with a dated work history, and the current title and employer are set next to what your record says. An answer with no work history counts as a miss and is not billed.

  5. 5

    Add the LinkedIn URL where it is missing

    credits

    A record with an email, or a name and an employer, can often be resolved to a profile. These matches are weaker than a URL you already held, so each one is marked for checking.

  6. 6

    Judge the unclear duplicates

    credits

    Same name with a different email, a changed surname, a nickname. The pairs that plain comparison cannot settle go to the Hyreflow agent with both records and their refreshed employers, and come back as likely, possible or not the same person, with the reason.

  7. 7

    Flag the retired and the unreachable

    free

    Read off the refreshed profile: no current role, a last job that ended long ago, a headline that says retired. Records with no findable profile and no contact detail are flagged unreachable, and nothing is removed.

  8. 8

    Review, then write back what you approve

    free

    You get the review list first. Only the rows you approve are written, one record first and the rest paced to your CRM's API limits, with every change logged against the record id.

What a run costs

Credits are spent per record the play actually works, and a lookup that finds nothing usually costs nothing. The two figures are the run where the first provider answers and the run where every lookup walks its full chain.

recordsif the first provider answersif every lookup walks the chain
25$1.212 credits$330 credits
100$4.545 credits$11110 credits
500$23230 credits$53530 credits
1,000$45450 credits$1051050 credits

Free before anything is charged

  • Count and choose a segment
  • Pair the exact duplicates
  • Flag the retired and the unreachable
  • Review, then write back what you approve

What moves the number

  • Coverage on work history. The chain stops at the first provider that answers, and only that provider bills.
  • How many records survive the free filters. Everything dropped before the paid steps costs nothing.
  • The scoring and drafting steps run on the metered agent, charged on what they read and write rather than per record, so they sit outside this table.
  • Providers you connect with your own key. Those calls bill your account, not your credits.

An estimate, not a quote, priced at the volume credit rate. Your agent sizes the run against your own workspace and tells you what it will cost before it spends anything.

Search only works on data that is still true

Your database search matches on job title, employer and location. Those were true on the day the record was created. Three years on, the Finance Manager you interviewed is a Finance Director somewhere else, and your search for Finance Directors does not find her. The database has not lost people. It has lost the ability to find them.

That is why this play comes before the others. Matching a live role to your own candidates, or filling in missing emails, both lean on the title and the employer being current. Run them on stale records and you get confident answers about where people worked years ago.

What you get back

A review list for your segment, as a file. Per record: the title and employer you hold, the title and employer on the live profile, and whether they differ. The LinkedIn URL, marked as held or found, with how sure the match is. A duplicate pair id and the reason for the pairing. And a flag where one applies: looks retired, left the market, no profile found.

Nothing has changed in your CRM at that point. After you approve rows, those rows are written back and you get a change log.

Variations worth knowing

Movers as a lead list. Everyone whose employer changed has moved, may be a hiring manager today, and has left a seat behind them. Sort the review list on that column before you do anything else.

Check the addresses you hold. A deliverability check on the emails already in the segment tells you which are dead. It is billed per address checked, so point it at records you intend to contact.

Then fill the gaps. With employers current, fill missing contact data in your CRM has the right company to look each person up against.

Then match. A refreshed segment is what makes finding candidates in your own ATS worth running.

Where this goes wrong

A common name and no LinkedIn URL. A common name with a last known employer of acme matches several people, or the wrong one. These come back marked low confidence. Leave them unless you can confirm.

Profiles nobody updates. An unchanged title means the profile has not changed. It does not mean the person has not. Treat unchanged as unknown for anyone you have not spoken to in years.

Treating a flag as a deletion. A retired flag is an inference from a public profile. Review it before you archive anyone. The agent never removes a record.

Doing the whole database at once. It costs the most and returns the least. Pick the segment you would search this month, prove the review list is right on that, then widen.

Questions

Will it delete or merge records?

No, and it could not if you asked. None of the CRM connections expose a delete or a merge, so the agent can only read, flag and update fields you approve. Duplicates come back as pairs with a reason. You merge them in your CRM with its own merge tool, which keeps the notes and history from both records.

How big a database can it handle?

Size is not the limit, usefulness is. The lookups run server-side in batches, so a segment of a few thousand records, or far more, does not have to pass through the chat. But every refreshed profile is a paid lookup, and much of a large, old database is people outside the market you work today. Segment first: the people you could place this year.

What does it cost?

Counting, pairing exact duplicates, the review list and the write-back are free. Profile lookups are billed per profile found, and a lookup that returns no work history is not billed. Judging unclear duplicates is metered by usage and runs only on the pairs that need it. The agent gives you a figure for your segment after the five-record pilot and before the run.

How accurate is the refreshed job title?

As accurate as the person's own public profile. Someone who never updates theirs will look unchanged, which is not the same as confirmed. Records matched on a LinkedIn URL are reliable. Records matched on a name and an old employer are weaker, and each is marked so you can check it before it is written. That is what the review list is for.

Is refreshing old records a GDPR problem?

Keeping personal data accurate is one of the things you are held to, so correcting a stale record is easier to defend than keeping it wrong. Retention is the harder question. A record past your retention period should be removed by you, not refreshed, so leave those out of the segment. The retired and unreachable flags are a useful input to that review. The decision belongs to you and whoever advises you on data protection.